TaskCheckDetails.vue 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447
  1. <template>
  2. <div>
  3. <!-- 客户信息-->
  4. <a-page-header
  5. style="background-color: #FFFFFF;margin-bottom:10px"
  6. title="客户详情"
  7. sub-title=""
  8. @back="back"
  9. >
  10. <a-descriptions :title="info.customerName" :column="3" :bordered="false">
  11. <a-descriptions-item label="客户编号">{{ info.customerNo }}</a-descriptions-item>
  12. <a-descriptions-item label="服务号码">{{ info.smsNumber }}</a-descriptions-item>
  13. <a-descriptions-item label="用户编号">{{ info.userNo }}</a-descriptions-item>
  14. <a-descriptions-item label="入网时间">{{ info.networkAccessTime }}</a-descriptions-item>
  15. <a-descriptions-item label="用户状态" :span="2">{{ info.userState }}</a-descriptions-item>
  16. <a-descriptions-item label="员工姓名">{{ info.staffName }}</a-descriptions-item>
  17. <a-descriptions-item label="员工工号" :span="2">{{ info.staffNo }}</a-descriptions-item>
  18. </a-descriptions>
  19. </a-page-header>
  20. <!-- 步骤条-->
  21. <div>
  22. <a-card style="margin-bottom:10px;width: 15%;float: left">
  23. <a-steps direction="vertical" :current="current" size="small" @change="stepsClick">
  24. <a-step v-for="item in steps" :key="item.title" :title="item.title" :status="item.status"/>
  25. </a-steps>
  26. <a-alert v-if="info.checkState == '5'" :message="info.statusFilter" type="success" show-icon/>
  27. <a-alert v-if="info.checkState == '0' || info.checkState == '1'" :message="info.statusFilter" type="warning"
  28. show-icon/>
  29. <a-alert v-if="info.checkState == '2' || info.checkState == '3'" :message="info.statusFilter" type="info"
  30. show-icon/>
  31. <a-alert v-if="info.checkState == '4'" :message="info.statusFilter" type="error" show-icon/>
  32. </a-card>
  33. <!-- 合同-->
  34. <a-card v-if="current == 0 && lotData.blockType == 1"
  35. style="margin-bottom:10px;
  36. float: left;width: 83%;left: 2%">
  37. <div slot="title">
  38. <span style="float: left;position: relative;top: 4px">合同资料</span>
  39. </div>
  40. <!-- 稽核结果-->
  41. <div style="float: left;width: 30%">
  42. <div class="markdown" style="position: relative;top:0px">
  43. <ul>
  44. <li>1)是否在有效期</li>
  45. <li>2)是否明确场景,如车联网,水表等,且与风险评估表一致</li>
  46. <li>3)是否明确开通功能,如语音,短信,流量等</li>
  47. <li>4)是否明确功能限制,如定向、机卡绑定、卡片限定、限额管控、黑名单限制等</li>
  48. <li>5)是否明确白名单数量,具体号码,地址等</li>
  49. <li>6)是否明确禁止二次销售</li>
  50. <li>7)是否明确防范垃圾短信和骚扰电话条款</li>
  51. <li>8)是否无低级错误,如缺少签字,日期等</li>
  52. <li>9)合同签署是否是法人,是否有授权书</li>
  53. </ul>
  54. </div>
  55. </div>
  56. <!-- 轮播-->
  57. <div style="width: 65%;float:left;margin-left: 5%">
  58. <div style="height: 70%">
  59. <div class="thumb-example">
  60. <!-- swiper1 -->
  61. <swiper
  62. class="swiper gallery-top"
  63. :options="swiperOptionTop"
  64. ref="swiperTop"
  65. >
  66. <swiper-slide class="slide-1" v-for="(item, index) in lotData.contract" :key="item.id">
  67. <iframe
  68. v-if="item.urlBase"
  69. frameborder="1"
  70. :src="item.urlBase"
  71. ref="ifr"
  72. width="604px"
  73. height="445px"
  74. scrolling="auto">
  75. </iframe>
  76. <img style="width: 95%;height: 70%;border: 1px solid;"
  77. v-if="!item.urlBase" :src="noDataPng" border="1">
  78. </swiper-slide>
  79. <div
  80. class="swiper-button-next swiper-button-white"
  81. slot="button-next"
  82. ></div>
  83. <div
  84. class="swiper-button-prev swiper-button-white"
  85. slot="button-prev"
  86. ></div>
  87. </swiper>
  88. <!-- swiper2 Thumbs -->
  89. <swiper
  90. class="swiper gallery-thumbs"
  91. :options="swiperOptionThumbs"
  92. ref="swiperThumbs"
  93. >
  94. <swiper-slide
  95. class="slide"
  96. style="width:100px;height:100px;"
  97. v-for="(item, index) in lotData.contract"
  98. :key="item.id"
  99. >
  100. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  101. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  102. </div>
  103. <img style="width: 95%;height: 96px"
  104. v-if="!item.urlBase" :src="noDataPng" border="1">
  105. </swiper-slide>
  106. <div class="swiper-button-next swiper-button-white" slot="button-next">
  107. <div>
  108. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  109. </div>
  110. </div>
  111. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  112. <div>
  113. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  114. </div>
  115. </div>
  116. </swiper>
  117. </div>
  118. </div>
  119. </div>
  120. </a-card>
  121. <!-- 测试卡申请单-->
  122. <a-card v-if="current == 0 && lotData.blockType == 0"
  123. style="margin-bottom:10px;
  124. float: left;width: 83%;left: 2%">
  125. <div slot="title">
  126. <span style="float: left;position: relative;top: 4px">合同资料</span>
  127. </div>
  128. <!-- 稽核结果-->
  129. <div style="float: left;width: 30%">
  130. <div class="markdown" style="position: relative;top:30px">
  131. <ul>
  132. <li>1)测试卡申请单是否加盖公章</li>
  133. <li>2)测试卡申请单中经办人、责任人身份证是否一致</li>
  134. </ul>
  135. </div>
  136. </div>
  137. <!-- 轮播-->
  138. <div style="width: 65%;float:left;margin-left: 5%">
  139. <div style="height: 70%">
  140. <div class="thumb-example">
  141. <!-- swiper1 -->
  142. <swiper
  143. class="swiper gallery-top"
  144. :options="swiperOptionTop"
  145. ref="swiperTop"
  146. >
  147. <swiper-slide class="slide-1" v-for="(item, index) in lotData.testCardApplication" :key="item.id">
  148. <iframe
  149. v-if="item.urlBase"
  150. frameborder="1"
  151. :src="item.urlBase"
  152. ref="ifr"
  153. width="604px"
  154. height="445px"
  155. scrolling="auto">
  156. </iframe>
  157. <img style="width: 95%;height: 70%;border: 1px solid;"
  158. v-if="!item.urlBase" :src="noDataPng" border="1">
  159. </swiper-slide>
  160. <div
  161. class="swiper-button-next swiper-button-white"
  162. slot="button-next"
  163. ></div>
  164. <div
  165. class="swiper-button-prev swiper-button-white"
  166. slot="button-prev"
  167. ></div>
  168. </swiper>
  169. <!-- swiper2 Thumbs -->
  170. <swiper
  171. class="swiper gallery-thumbs"
  172. :options="swiperOptionThumbs"
  173. ref="swiperThumbs"
  174. >
  175. <swiper-slide
  176. class="slide"
  177. style="width:100px;height:100px;"
  178. v-for="(item, index) in lotData.testCardApplication"
  179. :key="item.id"
  180. >
  181. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  182. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  183. </div>
  184. <img style="width: 95%;height: 96px"
  185. v-if="!item.urlBase" :src="noDataPng" border="1">
  186. </swiper-slide>
  187. <div class="swiper-button-next swiper-button-white" slot="button-next">
  188. <div>
  189. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  190. </div>
  191. </div>
  192. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  193. <div>
  194. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  195. </div>
  196. </div>
  197. </swiper>
  198. </div>
  199. </div>
  200. </div>
  201. </a-card>
  202. <!-- 责任人和经办人授权书-->
  203. <a-card v-if="current == 1"
  204. style="margin-bottom:10px;
  205. float: left;width: 83%;left: 2%">
  206. <div slot="title">
  207. <span style="float: left;position: relative;top: 4px">责任人和经办人授权书</span>
  208. </div>
  209. <!-- 稽核结果-->
  210. <div style="float: left;width: 30%">
  211. <div class="markdown" style="position: relative;top:30px">
  212. <ul>
  213. <li>1)经办人和责任人授权书齐全并且加盖公章</li>
  214. <li>2)经办人和责任人与授权书一致</li>
  215. </ul>
  216. </div>
  217. </div>
  218. <!-- 轮播-->
  219. <div style="width: 65%;float:left;margin-left: 5%">
  220. <div style="height: 70%">
  221. <div class="thumb-example">
  222. <!-- swiper1 -->
  223. <swiper
  224. class="swiper gallery-top"
  225. :options="swiperOptionTop"
  226. ref="swiperTop"
  227. >
  228. <swiper-slide class="slide-1" v-for="(item, index) in lotData.empower" :key="item.id">
  229. <iframe
  230. v-if="item.urlBase"
  231. frameborder="1"
  232. :src="item.urlBase"
  233. ref="ifr"
  234. width="604px"
  235. height="445px"
  236. scrolling="auto">
  237. </iframe>
  238. <img style="width: 95%;height: 70%;border: 1px solid;"
  239. v-if="!item.urlBase" :src="noDataPng" border="1">
  240. </swiper-slide>
  241. <div
  242. class="swiper-button-next swiper-button-white"
  243. slot="button-next"
  244. ></div>
  245. <div
  246. class="swiper-button-prev swiper-button-white"
  247. slot="button-prev"
  248. ></div>
  249. </swiper>
  250. <!-- swiper2 Thumbs -->
  251. <swiper
  252. class="swiper gallery-thumbs"
  253. :options="swiperOptionThumbs"
  254. ref="swiperThumbs"
  255. >
  256. <swiper-slide
  257. class="slide"
  258. style="width:100px;height:100px;"
  259. v-for="(item, index) in lotData.empower"
  260. :key="item.id"
  261. >
  262. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  263. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  264. </div>
  265. <img style="width: 95%;height: 96px"
  266. v-if="!item.urlBase" :src="noDataPng" border="1">
  267. </swiper-slide>
  268. <div class="swiper-button-next swiper-button-white" slot="button-next">
  269. <div>
  270. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  271. </div>
  272. </div>
  273. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  274. <div>
  275. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  276. </div>
  277. </div>
  278. </swiper>
  279. </div>
  280. </div>
  281. </div>
  282. </a-card>
  283. <!-- 责任人和经办人身份证 -->
  284. <a-card v-if="current == 2"
  285. style="margin-bottom:10px;
  286. float: left;width: 83%;left: 2%">
  287. <div slot="title">
  288. <span style="float: left;position: relative;top: 4px">责任人和经办人身份证</span>
  289. </div>
  290. <!-- 稽核结果-->
  291. <div style="float: left;width: 30%">
  292. <div class="markdown" style="position: relative;top:30px">
  293. <ul>
  294. <li>1)经办人和责任人身份证复印件加盖公章</li>
  295. </ul>
  296. </div>
  297. </div>
  298. <!-- 轮播-->
  299. <div style="width: 65%;float:left;margin-left: 5%">
  300. <div style="height: 70%">
  301. <div class="thumb-example">
  302. <!-- swiper1 -->
  303. <swiper
  304. class="swiper gallery-top"
  305. :options="swiperOptionTop"
  306. ref="swiperTop"
  307. >
  308. <swiper-slide class="slide-1" v-for="(item, index) in lotData.idCard" :key="item.id">
  309. <iframe
  310. v-if="item.urlBase"
  311. frameborder="1"
  312. :src="item.urlBase"
  313. ref="ifr"
  314. width="604px"
  315. height="445px"
  316. scrolling="auto">
  317. </iframe>
  318. <img style="width: 95%;height: 70%;border: 1px solid;"
  319. v-if="!item.urlBase" :src="noDataPng" border="1">
  320. </swiper-slide>
  321. <div
  322. class="swiper-button-next swiper-button-white"
  323. slot="button-next"
  324. ></div>
  325. <div
  326. class="swiper-button-prev swiper-button-white"
  327. slot="button-prev"
  328. ></div>
  329. </swiper>
  330. <!-- swiper2 Thumbs -->
  331. <swiper
  332. class="swiper gallery-thumbs"
  333. :options="swiperOptionThumbs"
  334. ref="swiperThumbs"
  335. >
  336. <swiper-slide
  337. class="slide"
  338. style="width:100px;height:100px;"
  339. v-for="(item, index) in lotData.idCard"
  340. :key="item.id"
  341. >
  342. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  343. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  344. </div>
  345. <img style="width: 95%;height: 96px"
  346. v-if="!item.urlBase" :src="noDataPng" border="1">
  347. </swiper-slide>
  348. <div class="swiper-button-next swiper-button-white" slot="button-next">
  349. <div>
  350. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  351. </div>
  352. </div>
  353. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  354. <div>
  355. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  356. </div>
  357. </div>
  358. </swiper>
  359. </div>
  360. </div>
  361. </div>
  362. </a-card>
  363. <!-- 客户证件扫描-->
  364. <a-card v-if="current == 3"
  365. style="margin-bottom:10px;
  366. float: left;width: 83%;left: 2%">
  367. <div slot="title">
  368. <span style="float: left;position: relative;top: 4px">客户证件扫描</span>
  369. </div>
  370. <!-- 稽核结果-->
  371. <div style="float: left;width: 30%">
  372. <div class="markdown" style="position: relative;top:30px">
  373. <ul>
  374. <li>1)客户证件复印件加盖公章</li>
  375. </ul>
  376. </div>
  377. </div>
  378. <!-- 轮播-->
  379. <div style="width: 65%;float:left;margin-left: 5%">
  380. <div style="height: 70%">
  381. <div class="thumb-example">
  382. <!-- swiper1 -->
  383. <swiper
  384. class="swiper gallery-top"
  385. :options="swiperOptionTop"
  386. ref="swiperTop"
  387. >
  388. <swiper-slide class="slide-1" v-for="(item, index) in lotData.customerId" :key="item.id">
  389. <iframe
  390. v-if="item.urlBase"
  391. frameborder="1"
  392. :src="item.urlBase"
  393. ref="ifr"
  394. width="604px"
  395. height="445px"
  396. scrolling="auto">
  397. </iframe>
  398. <img style="width: 95%;height: 70%;border: 1px solid;"
  399. v-if="!item.urlBase" :src="noDataPng" border="1">
  400. </swiper-slide>
  401. <div
  402. class="swiper-button-next swiper-button-white"
  403. slot="button-next"
  404. ></div>
  405. <div
  406. class="swiper-button-prev swiper-button-white"
  407. slot="button-prev"
  408. ></div>
  409. </swiper>
  410. <!-- swiper2 Thumbs -->
  411. <swiper
  412. class="swiper gallery-thumbs"
  413. :options="swiperOptionThumbs"
  414. ref="swiperThumbs"
  415. >
  416. <swiper-slide
  417. class="slide"
  418. style="width:100px;height:100px;"
  419. v-for="(item, index) in lotData.customerId"
  420. :key="item.id"
  421. >
  422. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  423. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  424. </div>
  425. <img style="width: 95%;height: 96px"
  426. v-if="!item.urlBase" :src="noDataPng" border="1">
  427. </swiper-slide>
  428. <div class="swiper-button-next swiper-button-white" slot="button-next">
  429. <div>
  430. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  431. </div>
  432. </div>
  433. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  434. <div>
  435. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  436. </div>
  437. </div>
  438. </swiper>
  439. </div>
  440. </div>
  441. </div>
  442. </a-card>
  443. <!-- 风险评估表-->
  444. <a-card v-if="current == 4"
  445. style="margin-bottom:10px;
  446. float: left;width: 83%;left: 2%">
  447. <div slot="title">
  448. <span style="float: left;position: relative;top: 4px">风险评估表</span>
  449. </div>
  450. <!-- 稽核结果-->
  451. <div style="float: left;width: 30%">
  452. <div class="markdown" style="position: relative;top:30px">
  453. <ul>
  454. <li>1)是否进行入网风险评估</li>
  455. <li>2)安全管理能力是否填写最小必要数据</li>
  456. <li>3)是否明确使用场景(与产品形态表一致),如车联网、水表等</li>
  457. <li>4)是否明确开通功能,如语音,短信,流量等</li>
  458. <li>5)是否明确功能限制情况,如定向,机卡绑定,卡片绑定,限额管控,黑名单限制等</li>
  459. <li>6)是否无低级错误,如缺少签字、日期等</li>
  460. <li>7)风险评估表中卡类型需写清三要素:网络制式、商业级或消费级、贴片机或插卡机</li>
  461. <li>8)现场考察部分截图是否清晰</li>
  462. <li>9)合同、入网评估表、系统受理是否一致</li>
  463. </ul>
  464. </div>
  465. </div>
  466. <!-- 轮播-->
  467. <div style="width: 65%;float:left;margin-left: 5%">
  468. <div style="height: 70%">
  469. <div class="thumb-example">
  470. <!-- swiper1 -->
  471. <swiper
  472. class="swiper gallery-top"
  473. :options="swiperOptionTop"
  474. ref="swiperTop"
  475. >
  476. <swiper-slide class="slide-1" v-for="(item, index) in lotData.risk" :key="item.id">
  477. <iframe
  478. v-if="item.urlBase"
  479. frameborder="1"
  480. :src="item.urlBase"
  481. ref="ifr"
  482. width="604px"
  483. height="445px"
  484. scrolling="auto">
  485. </iframe>
  486. <img style="width: 95%;height: 70%;border: 1px solid;"
  487. v-if="!item.urlBase" :src="noDataPng" border="1">
  488. </swiper-slide>
  489. <div
  490. class="swiper-button-next swiper-button-white"
  491. slot="button-next"
  492. ></div>
  493. <div
  494. class="swiper-button-prev swiper-button-white"
  495. slot="button-prev"
  496. ></div>
  497. </swiper>
  498. <!-- swiper2 Thumbs -->
  499. <swiper
  500. class="swiper gallery-thumbs"
  501. :options="swiperOptionThumbs"
  502. ref="swiperThumbs"
  503. >
  504. <swiper-slide
  505. class="slide"
  506. style="width:100px;height:100px;"
  507. v-for="(item, index) in lotData.risk"
  508. :key="item.id"
  509. >
  510. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  511. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  512. </div>
  513. <img style="width: 95%;height: 96px"
  514. v-if="!item.urlBase" :src="noDataPng" border="1">
  515. </swiper-slide>
  516. <div class="swiper-button-next swiper-button-white" slot="button-next">
  517. <div>
  518. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  519. </div>
  520. </div>
  521. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  522. <div>
  523. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  524. </div>
  525. </div>
  526. </swiper>
  527. </div>
  528. </div>
  529. </div>
  530. </a-card>
  531. <!-- 价格审批表-->
  532. <a-card v-if="current == 5"
  533. style="margin-bottom:10px;
  534. float: left;width: 83%;left: 2%">
  535. <div slot="title">
  536. <span style="float: left;position: relative;top: 4px">省/集团价格审批</span>
  537. </div>
  538. <!-- 稽核结果-->
  539. <div style="float: left;width: 30%">
  540. <div class="markdown" style="position: relative;top:30px">
  541. <ul>
  542. <li>1)最终审批价格不低于1元/户/月(对2020年1月1日前签署合同的存量客户,若存量价格审批表中只约定了保底流量无功能费的,按存量审批表执行)</li>
  543. <li>2)不参与打折,最低优惠至1元/户/月(2020年1月1日前签署合同的存量客户,池功能费可以按照池成员流量价格授权同步享受折扣)</li>
  544. <li>3)同客户同项目测试卡数量不得超100张,最高不得超500张。</li>
  545. <li>4)物联网开卡时提供公免卡审批表,开卡张数和公免额度与审批表一致。物联网公免卡的审批人员和流程同大网公免卡一致。</li>
  546. <li>5)累计限免有效期原则上不得大于15个月</li>
  547. </ul>
  548. </div>
  549. </div>
  550. <!-- 轮播-->
  551. <div style="width: 65%;float:left;margin-left: 5%">
  552. <div style="height: 70%">
  553. <div class="thumb-example">
  554. <!-- swiper1 -->
  555. <swiper
  556. class="swiper gallery-top"
  557. :options="swiperOptionTop"
  558. ref="swiperTop"
  559. >
  560. <swiper-slide class="slide-1" v-for="(item, index) in lotData.priceApproval" :key="item.id">
  561. <iframe
  562. v-if="item.urlBase"
  563. frameborder="1"
  564. :src="item.urlBase"
  565. ref="ifr"
  566. width="604px"
  567. height="445px"
  568. scrolling="auto">
  569. </iframe>
  570. <img style="width: 95%;height: 70%;border: 1px solid;"
  571. v-if="!item.urlBase" :src="noDataPng" border="1">
  572. </swiper-slide>
  573. <div
  574. class="swiper-button-next swiper-button-white"
  575. slot="button-next"
  576. ></div>
  577. <div
  578. class="swiper-button-prev swiper-button-white"
  579. slot="button-prev"
  580. ></div>
  581. </swiper>
  582. <!-- swiper2 Thumbs -->
  583. <swiper
  584. class="swiper gallery-thumbs"
  585. :options="swiperOptionThumbs"
  586. ref="swiperThumbs"
  587. >
  588. <swiper-slide
  589. class="slide"
  590. style="width:100px;height:100px;"
  591. v-for="(item, index) in lotData.priceApproval"
  592. :key="item.id"
  593. >
  594. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  595. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  596. </div>
  597. <img style="width: 95%;height: 96px"
  598. v-if="!item.urlBase" :src="noDataPng" border="1">
  599. </swiper-slide>
  600. <div class="swiper-button-next swiper-button-white" slot="button-next">
  601. <div>
  602. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  603. </div>
  604. </div>
  605. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  606. <div>
  607. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  608. </div>
  609. </div>
  610. </swiper>
  611. </div>
  612. </div>
  613. </div>
  614. </a-card>
  615. <!-- 承诺函/其它资料-->
  616. <a-card v-if="lotData.isShow.commitmentShow"
  617. style="margin-bottom:10px;
  618. float: left;width: 83%;left: 2%">
  619. <div slot="title">
  620. <span style="float: left;position: relative;top: 4px">承诺函/其他材料(非必填)</span>
  621. </div>
  622. <!-- 稽核结果-->
  623. <div style="float: left;width: 30%">
  624. <div class="markdown" style="position: relative;top:30px">
  625. <ul>
  626. <li>1)请上传承诺函或其它资料</li>
  627. </ul>
  628. </div>
  629. </div>
  630. <!-- 轮播-->
  631. <div style="width: 65%;float:left;margin-left: 5%">
  632. <div style="height: 70%">
  633. <div class="thumb-example">
  634. <!-- swiper1 -->
  635. <swiper
  636. class="swiper gallery-top"
  637. :options="swiperOptionTop"
  638. ref="swiperTop"
  639. >
  640. <swiper-slide class="slide-1" v-for="(item, index) in lotData.commitment" :key="item.id">
  641. <iframe
  642. v-if="item.urlBase"
  643. frameborder="1"
  644. :src="item.urlBase"
  645. ref="ifr"
  646. width="604px"
  647. height="445px"
  648. scrolling="auto">
  649. </iframe>
  650. <img style="width: 95%;height: 70%;border: 1px solid;"
  651. v-if="!item.urlBase" :src="noDataPng" border="1">
  652. </swiper-slide>
  653. <div
  654. class="swiper-button-next swiper-button-white"
  655. slot="button-next"
  656. ></div>
  657. <div
  658. class="swiper-button-prev swiper-button-white"
  659. slot="button-prev"
  660. ></div>
  661. </swiper>
  662. <!-- swiper2 Thumbs -->
  663. <swiper
  664. class="swiper gallery-thumbs"
  665. :options="swiperOptionThumbs"
  666. ref="swiperThumbs"
  667. >
  668. <swiper-slide
  669. class="slide"
  670. style="width:100px;height:100px;"
  671. v-for="(item, index) in lotData.commitment"
  672. :key="item.id"
  673. >
  674. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  675. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  676. </div>
  677. <img style="width: 95%;height: 96px"
  678. v-if="!item.urlBase" :src="noDataPng" border="1">
  679. </swiper-slide>
  680. <div class="swiper-button-next swiper-button-white" slot="button-next">
  681. <div>
  682. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  683. </div>
  684. </div>
  685. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  686. <div>
  687. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  688. </div>
  689. </div>
  690. </swiper>
  691. </div>
  692. </div>
  693. </div>
  694. </a-card>
  695. </div>
  696. </div>
  697. </template>
  698. <script>
  699. import {httpAction, getAction, postAction} from '@api/manage'
  700. /*无数据图片*/
  701. import noDataPng from '@/assets/nodata.png'
  702. import {JeecgListMixin} from "@/mixins/JeecgListMixin";
  703. let Base64 = require('js-base64').Base64
  704. export default {
  705. name: "TaskCheckDetails",
  706. mixins: [JeecgListMixin],
  707. inject: ['closeCurrent'],
  708. data() {
  709. return {
  710. //无数据图片
  711. noDataPng: noDataPng,
  712. //客户信息
  713. info: {},
  714. url: {
  715. queryInfo: "/smsCheck/customerInfo/queryById",
  716. lotInfo: "/smsLot/customerData/query/infoId",
  717. checkInfo: "/smsLot/customerData/check/info",
  718. checkDataId: "/smsLot/customerData/query/check/dataId",
  719. list: "/smsCheck/customerData/list",
  720. },
  721. //轮播配置
  722. swiperOptionTop: {
  723. zoom: true,
  724. loop: false,
  725. loopedSlides: 5, // looped slides should be the same
  726. spaceBetween: 10,
  727. observer: true, //修改swiper自己或子元素时,自动初始化swiper
  728. observeParents: true, //修改swiper的父元素时,自动初始化swiper
  729. // autoplay: { //自动轮播
  730. // delay: 2000,
  731. // disableOnInteraction: false
  732. // },
  733. navigation: {
  734. nextEl: '.swiper-button-next',
  735. prevEl: '.swiper-button-prev'
  736. }
  737. },
  738. swiperOptionThumbs: {
  739. loop: false,
  740. loopedSlides: 5, // looped slides should be the same
  741. spaceBetween: 10,
  742. centeredSlides: true,
  743. slidesPerView: 'auto',
  744. touchRatio: 0.2,
  745. slideToClickedSlide: true,
  746. navigation: {
  747. nextEl: '.swiper-button-next',
  748. prevEl: '.swiper-button-prev'
  749. }
  750. },
  751. //物联网资料
  752. lotData: {
  753. isShow: {
  754. commitmentShow: false
  755. },
  756. //合同稽核状态
  757. contractModel: {
  758. //备注
  759. basicCheckNote: "",
  760. //稽核结果
  761. basicCheckState: null,
  762. },
  763. //责任人和经办人授权书稽核状态
  764. empowerModel: {
  765. //备注
  766. basicCheckNote: "",
  767. //稽核结果
  768. basicCheckState: null,
  769. },
  770. //责任人和经办人身份证
  771. idCardModel: {
  772. //备注
  773. basicCheckNote: "",
  774. //稽核结果
  775. basicCheckState: null,
  776. },
  777. //客户证件扫描
  778. customerIdModel: {
  779. //备注
  780. basicCheckNote: "",
  781. //稽核结果
  782. basicCheckState: null,
  783. },
  784. //风险评估表
  785. riskModel: {
  786. //备注
  787. basicCheckNote: "",
  788. //稽核结果
  789. basicCheckState: null,
  790. },
  791. //省/集团价格审批
  792. priceApprovalModel: {
  793. //备注
  794. basicCheckNote: "",
  795. //稽核结果
  796. basicCheckState: null,
  797. },
  798. //测试卡申请单
  799. testCardApplicationModel: {
  800. //备注
  801. basicCheckNote: "",
  802. //稽核结果
  803. basicCheckState: null,
  804. },
  805. //卡类型
  806. blockType: "",
  807. //是否突破价格管控
  808. control: "",
  809. //合同
  810. contract: [],
  811. //责任人经办人授权书
  812. empower: [],
  813. //责任人经办人身份证
  814. idCard: [],
  815. //客户证件
  816. customerId: [],
  817. //风险评估表
  818. risk: [],
  819. //价格审批表
  820. priceApproval: [],
  821. //测试卡申请单
  822. testCardApplication: [],
  823. //其他资料
  824. commitment: [],
  825. },
  826. //步骤条
  827. current: 0,
  828. steps: [{}],
  829. //正式卡 是否突破价格管控
  830. stepsControlY: [
  831. {
  832. title: '合同',
  833. content: 'First-content',
  834. status: "wait"
  835. },
  836. {
  837. title: '责任人和经办人授权书',
  838. content: 'First-content',
  839. status: "wait"
  840. },
  841. {
  842. title: '责任人和经办人身份证',
  843. content: 'First-content',
  844. status: "wait"
  845. },
  846. {
  847. title: '客户证件扫描',
  848. content: 'First-content',
  849. status: "wait"
  850. },
  851. {
  852. title: '风险评估表',
  853. content: 'First-content',
  854. status: "wait"
  855. },
  856. {
  857. title: '价格审批表',
  858. content: 'First-content',
  859. status: "wait"
  860. },
  861. {
  862. title: '承诺涵(其他材料(非必填))',
  863. content: 'First-content',
  864. id: "commitment",
  865. status: "wait"
  866. }
  867. ],
  868. stepsControlN: [
  869. {
  870. title: '合同',
  871. content: 'First-content',
  872. status: "wait"
  873. },
  874. {
  875. title: '责任人和经办人授权书',
  876. content: 'First-content',
  877. status: "wait"
  878. },
  879. {
  880. title: '责任人和经办人身份证',
  881. content: 'First-content',
  882. status: "wait"
  883. },
  884. {
  885. title: '客户证件扫描',
  886. content: 'First-content',
  887. status: "wait"
  888. },
  889. {
  890. title: '风险评估表',
  891. content: 'First-content',
  892. status: "wait"
  893. },
  894. {
  895. title: '承诺涵(其他材料(非必填))',
  896. content: 'First-content',
  897. id: "commitment",
  898. status: "wait"
  899. }
  900. ],
  901. //测试卡步骤条
  902. stepsTest: [
  903. {
  904. title: '测试卡申请单',
  905. content: 'First-content',
  906. status: "wait"
  907. },
  908. {
  909. title: '责任人和经办人授权书',
  910. content: 'First-content',
  911. status: "wait"
  912. },
  913. {
  914. title: '责任人和经办人身份证',
  915. content: 'First-content',
  916. status: "wait"
  917. },
  918. {
  919. title: '客户证件扫描',
  920. content: 'First-content',
  921. status: "wait"
  922. },
  923. {
  924. title: '风险评估表',
  925. content: 'First-content',
  926. status: "wait"
  927. },
  928. {
  929. title: '承诺涵(其他材料(非必填))',
  930. content: 'First-content',
  931. id: "commitment",
  932. status: "wait"
  933. }
  934. ],
  935. alertWarning: [
  936. "没有在有效期",
  937. "没有明确场景,如车联网,水表等,与风险评估表不一致",
  938. "没有明确开通功能,如语音,短信,流量等",
  939. "没有明确功能限制,如定向、机卡绑定、卡片限定、限额管控、黑名单限制等",
  940. "没有明确白名单数量,具体号码,地址等",
  941. "没有明确防范垃圾短信和骚扰电话条款",
  942. "缺少签字,日期等",
  943. "合同签署不是是法人,没有有授权书",
  944. "经办人和责任人与授权书不一致",
  945. "经办人和责任人授权书未加盖公章",
  946. "经办人和责任人身份证复印件未加盖公章",
  947. "客户证件复印件未加盖公章",
  948. "没有进行入网风险评估",
  949. "安全管理能力没有填写最小必要数据",
  950. "没有明确使用场景(与产品形态表一致),如车联网、水表等",
  951. "没有明确开通功能,如语音,短信,流量等",
  952. "没有明确功能限制情况,如定向,机卡绑定,卡片绑定,限额管控,黑名单限制等",
  953. "存在低级错误,如缺少签字、日期等",
  954. "风险评估表中卡类型没有写清三要素:网络制式、商业级或消费级、贴片机或插卡机",
  955. "现场考察部分截图不清晰",
  956. "合同、入网评估表、系统受理不一致",
  957. "同客户同项目测试卡数量超过100张",
  958. "物联网开卡时提供公免卡审批表,开卡张数和公免额度与审批表不一致",
  959. "累计限免有效期原则上大于15个月",
  960. "测试卡申请单没有加盖公章",
  961. "测试卡申请单中经办人、责任人身份证不一致"
  962. ]
  963. }
  964. },
  965. components: {},
  966. created() {
  967. this.info.id = this.$route.query.id;
  968. this.queryInfoById(this.info.id);
  969. this.lotInfoById(this.info.id);
  970. },
  971. methods: {
  972. /**节点状态*/
  973. basicCheckClick(state) {
  974. let boolean = state == "1" ? true : false;
  975. if (boolean) {
  976. this.steps[this.current]["status"] = "finish";
  977. } else {
  978. this.steps[this.current].status = "error";
  979. }
  980. },
  981. /**提醒点击事件*/
  982. alertText(text) {
  983. let that = this;
  984. let current = that.current;
  985. //卡类型
  986. let blockType = that.lotData.blockType;
  987. switch (current) {
  988. case 0:
  989. if (blockType == 0) {
  990. //测试卡
  991. let basicCheckNote = this.testCardApplicationModel.basicCheckNote;
  992. basicCheckNote = basicCheckNote + " " + text;
  993. this.lotData.testCardApplicationModel.basicCheckNote = basicCheckNote
  994. } else {
  995. //正式卡
  996. let basicCheckNote = this.lotData.contractModel.basicCheckNote;
  997. basicCheckNote = basicCheckNote + " " + text;
  998. this.lotData.contractModel.basicCheckNote = basicCheckNote
  999. }
  1000. break;
  1001. case 1:
  1002. let basicCheckNote = this.lotData.empowerModel.basicCheckNote;
  1003. basicCheckNote = basicCheckNote + " " + text;
  1004. this.lotData.empowerModel.basicCheckNote = basicCheckNote
  1005. break;
  1006. case 2:
  1007. let basicCheckNote2 = this.lotData.idCardModel.basicCheckNote;
  1008. basicCheckNote2 = basicCheckNote2 + " " + text;
  1009. this.lotData.idCardModel.basicCheckNote = basicCheckNote2
  1010. break;
  1011. case 3:
  1012. let basicCheckNote3 = this.lotData.customerIdModel.basicCheckNote;
  1013. basicCheckNote3 = basicCheckNote3 + " " + text;
  1014. this.lotData.customerIdModel.basicCheckNote = basicCheckNote3
  1015. break;
  1016. case 4:
  1017. let basicCheckNote4 = this.lotData.riskModel.basicCheckNote;
  1018. basicCheckNote4 = basicCheckNote4 + " " + text;
  1019. this.lotData.riskModel.basicCheckNote = basicCheckNote4
  1020. break;
  1021. case 5:
  1022. let basicCheckNote5 = this.lotData.priceApprovalModel.basicCheckNote;
  1023. basicCheckNote5 = basicCheckNote5 + " " + text;
  1024. this.lotData.priceApprovalModel.basicCheckNote = basicCheckNote5
  1025. break;
  1026. }
  1027. },
  1028. /**步骤条点击事件*/
  1029. stepsClick(current) {
  1030. this.current = current;
  1031. this.currentFileType(current);
  1032. },
  1033. /**步骤文件类型对应*/
  1034. currentFileType(current) {
  1035. let that = this;
  1036. this.swiperImg = {}
  1037. //卡类型
  1038. let blockType = that.lotData.blockType;
  1039. switch (current) {
  1040. case 0:
  1041. if (blockType == 0) {
  1042. that.swiperImg = that.lotData.testCardApplication
  1043. } else {
  1044. that.swiperImg = that.lotData.contract
  1045. }
  1046. break;
  1047. case 1:
  1048. that.swiperImg = that.lotData.empower
  1049. break;
  1050. case 2:
  1051. that.swiperImg = that.lotData.idCard
  1052. break;
  1053. case 3:
  1054. that.swiperImg = that.lotData.customerId
  1055. break;
  1056. case 4:
  1057. that.swiperImg = that.lotData.risk
  1058. break;
  1059. case 5:
  1060. that.swiperImg = that.lotData.priceApproval
  1061. break;
  1062. default:
  1063. if (that.steps[current].id == "commitment") {
  1064. that.swiperImg = that.lotData.commitment;
  1065. }
  1066. }
  1067. //拒绝下标为空 影响轮播样式
  1068. if (that.swiperImg.length == 0) {
  1069. that.swiperImg.push({})
  1070. }
  1071. },
  1072. /**返回上一级*/
  1073. back() {
  1074. //关闭当前页
  1075. this.$router.go(-1);
  1076. this.closeCurrent();
  1077. },
  1078. /**获取客户信息*/
  1079. queryInfoById(id) {
  1080. let url = this.url.queryInfo;
  1081. let params = {
  1082. id: id
  1083. }
  1084. let that = this;
  1085. getAction(url, params).then(res => {
  1086. if (res.success) {
  1087. that.info = res.result
  1088. //当前状态
  1089. let checkState = that.info.checkState;
  1090. that.info.statusFilter = this.statusFilter(checkState);
  1091. }
  1092. }).finally(() => {
  1093. })
  1094. },
  1095. statusFilter(status) {
  1096. const statusMap = {
  1097. '0': '未完善',
  1098. '1': '未完善',
  1099. '2': '待稽核',
  1100. '3': '待稽核',
  1101. '4': '待整改',
  1102. '5': '通过'
  1103. }
  1104. return statusMap[status]
  1105. },
  1106. /**获取稽核结果*/
  1107. lotCheckById(id) {
  1108. let that = this;
  1109. let url = this.url.checkDataId;
  1110. let params = {
  1111. infoId: id
  1112. }
  1113. postAction(url, params).then(res => {
  1114. if (res.success) {
  1115. let data = res.result;
  1116. if (data != null) {
  1117. for (var i in that.steps) {
  1118. that.stepsStatus(i, data);
  1119. }
  1120. }
  1121. }
  1122. }).finally(() => {
  1123. })
  1124. },
  1125. stepsStatus(current, data) {
  1126. let that = this;
  1127. //卡类型
  1128. let blockType = that.lotData.blockType;
  1129. switch (current) {
  1130. case '0':
  1131. if (blockType == 0) {
  1132. //测试卡
  1133. that.steps[current].status = data.testCardApplicationState == '0' ? "error" : "finish";
  1134. } else {
  1135. //正式卡
  1136. that.steps[current].status = data.contractState == '0' ? "error" : "finish";
  1137. }
  1138. break;
  1139. case '1':
  1140. that.steps[current].status = data.empowerState == '0' ? "error" : "finish";
  1141. break;
  1142. case '2':
  1143. that.steps[current].status = data.idCardState == '0' ? "error" : "finish";
  1144. break;
  1145. case '3':
  1146. that.steps[current].status = data.customerIdState == '0' ? "error" : "finish";
  1147. break;
  1148. case '4':
  1149. that.steps[current].status = data.riskState == '0' ? "error" : "finish";
  1150. break;
  1151. case '5' && that.steps[current].id != "commitment":
  1152. that.steps[current].status = data.priceApprovalState == '0' ? "error" : "finish";
  1153. break;
  1154. default:
  1155. if (that.steps[current].id == "commitment") {
  1156. that.steps[current].status = data.commitmentState == '0' ? "error" : "finish";
  1157. }
  1158. break;
  1159. }
  1160. },
  1161. /**获取物联网文件数据*/
  1162. lotInfoById(id) {
  1163. let that = this;
  1164. let url = this.url.lotInfo;
  1165. let params = {
  1166. infoId: id
  1167. }
  1168. postAction(url, params).then(res => {
  1169. if (res.success) {
  1170. let data = res.result;
  1171. that.info.dataId = data.id
  1172. //合同
  1173. that.lotData.contract = that.packageArr(data.contract);
  1174. //责任人经办人授权书
  1175. that.lotData.empower = that.packageArr(data.empower)
  1176. //责任人经办人身份证
  1177. that.lotData.idCard = that.packageArr(data.idCard)
  1178. //客户证件
  1179. that.lotData.customerId = that.packageArr(data.customerId)
  1180. //风险评估表
  1181. that.lotData.risk = that.packageArr(data.risk)
  1182. //省集团价格审批表
  1183. that.lotData.priceApproval = that.packageArr(data.priceApproval)
  1184. //测试卡申请单
  1185. that.lotData.testCardApplication = that.packageArr(data.testCardApplication)
  1186. //其他资料
  1187. that.lotData.commitment = that.packageArr(data.commitment)
  1188. //卡类型
  1189. that.lotData.blockType = data.blockType;
  1190. //是否突破价格管控
  1191. that.lotData.control = data.control;
  1192. let control = that.lotData.control;
  1193. let blockType = that.lotData.blockType;
  1194. //步骤条数据源
  1195. //是否突破价格管控
  1196. if (control == 0 && blockType == 1) {
  1197. this.steps = this.stepsControlN;
  1198. } else if (control == 1 && blockType == 1) {
  1199. this.steps = this.stepsControlY;
  1200. } else if (blockType == 0) {
  1201. this.steps = this.stepsTest;
  1202. } else {
  1203. this.steps = this.stepsControlN;
  1204. }
  1205. this.lotCheckById(id);
  1206. }
  1207. }).finally(() => {
  1208. })
  1209. },
  1210. /**包装轮播数据*/
  1211. packageArr(data) {
  1212. let id = 0;
  1213. let newArr = []
  1214. if (data == null) {
  1215. newArr.push({})
  1216. return newArr;
  1217. }
  1218. let splice = data.split(",");
  1219. for (var i in splice) {
  1220. id = id + 1;
  1221. let filePath = splice[i];
  1222. if (filePath == "") {
  1223. break;
  1224. }
  1225. let fileName = filePath.split("/");
  1226. fileName = fileName[fileName.length - 1];
  1227. let swipData = {
  1228. id: id,
  1229. urlBase: window._CONFIG['onlinePreviewDomainURL'] + '?url='
  1230. + encodeURIComponent(
  1231. Base64.encode(
  1232. (filePath)
  1233. )),
  1234. url: filePath,
  1235. fileName: fileName
  1236. }
  1237. newArr.push(swipData);
  1238. }
  1239. return newArr;
  1240. },
  1241. },
  1242. }
  1243. </script>
  1244. <style lang="less" scoped>
  1245. .noDataPng {
  1246. width: 70%;
  1247. height: 70%;
  1248. border: 1px solid;
  1249. }
  1250. .alert-warning {
  1251. cursor: pointer;
  1252. margin-bottom: 10px !important;
  1253. box-sizing: border-box;
  1254. margin: 0;
  1255. padding: 0;
  1256. color: rgba(0, 0, 0, 0.65);
  1257. font-size: 14px;
  1258. font-variant: tabular-nums;
  1259. line-height: 1.5;
  1260. list-style: none;
  1261. font-feature-settings: 'tnum';
  1262. position: relative;
  1263. padding: 8px 15px 8px 37px;
  1264. word-wrap: break-word;
  1265. border-radius: 4px;
  1266. background-color: #fffbe6;
  1267. border: 1px solid #ffe58f;
  1268. padding: 8px 15px;
  1269. }
  1270. h3 {
  1271. margin: 20px 0 0 10px;
  1272. }
  1273. .thumb-example {
  1274. width: 800px;
  1275. margin-top: 20px;
  1276. // background: #000;
  1277. }
  1278. .swiper-slide {
  1279. background-size: cover;
  1280. background-position: center;
  1281. }
  1282. .gallery-top {
  1283. // height: 80% !important;
  1284. /*height: 600px;*/
  1285. width: 70%;
  1286. /*left: 15%;*/
  1287. margin-bottom: 50px
  1288. }
  1289. .gallery-thumbs {
  1290. height: 20% !important;
  1291. box-sizing: border-box;
  1292. padding: 10px 0px;
  1293. /* width: 864px;*/
  1294. margin-left: 2px;
  1295. .swiper-button-next {
  1296. right: 0px;
  1297. }
  1298. .swiper-button-prev {
  1299. left: 0px;
  1300. }
  1301. .swiper-button-next,
  1302. .swiper-button-prev {
  1303. background: #fff;
  1304. width: 45px;
  1305. text-align: center;
  1306. height: 101px;
  1307. top: 26%;
  1308. div {
  1309. margin-top: 30px;
  1310. background: rgb(207, 205, 205);
  1311. height: 45px;
  1312. border-radius: 50%;
  1313. img {
  1314. margin: 7px 0 0 2px;
  1315. width: 30px;
  1316. }
  1317. }
  1318. }
  1319. .swiper-button-next:hover div {
  1320. background: rgb(189, 186, 186);
  1321. }
  1322. .swiper-button-prev:hover div {
  1323. background: rgb(189, 186, 186);
  1324. }
  1325. }
  1326. .gallery-thumbs .swiper-slide {
  1327. width: 20%;
  1328. height: 80px;
  1329. // opacity: 0.4;
  1330. }
  1331. .gallery-thumbs .swiper-slide-active {
  1332. border: 2px solid red;
  1333. }
  1334. .markdown ul > li {
  1335. color: #000000d9;
  1336. font-size: 15px;
  1337. line-height: 3;
  1338. margin-left: 20px;
  1339. padding-left: 4px;
  1340. list-style-type: circle;
  1341. }
  1342. margin-bottom-10 {
  1343. margin-bottom: 10px;
  1344. }
  1345. </style>