history_gas_sealing.vue 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223
  1. <template>
  2. <!-- 带气封堵工程 -->
  3. <scroll-view>
  4. <view>
  5. <view class="background">
  6. <view class="uni-list">
  7. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  8. <view style="font-size: 16px;display: flex; justify-content: space-between;">
  9. {{projectTypeLabel}}
  10. </view>
  11. </view>
  12. </view>
  13. <view class="uni-list">
  14. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  15. <view>
  16. 工程名称
  17. </view>
  18. <view v-if="this.isEmpty(this.enginName)">
  19. <span style="color: darkgray;">请选择工程</span>
  20. <image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
  21. </view>
  22. <view v-else>
  23. <span style="color: black;">{{enginName}}</span>
  24. <image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
  25. </view>
  26. </view>
  27. </view>
  28. <view class="uni-list">
  29. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  30. <text>工程地点</text>
  31. <input class="uni-input" type="digit" v-model="address" placeholder="请输入工程地点" maxlength="100"
  32. style="margin-left: 10px;text-align: right;"></input>
  33. </view>
  34. </view>
  35. <view class="uni-list">
  36. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  37. <text>作业方式</text>
  38. <input class="uni-input" type="digit" v-model="workType" placeholder="请输入作业方式" maxlength="100"
  39. style="margin-left: 10px;text-align: right;"></input>
  40. </view>
  41. </view>
  42. <view class="uni-list">
  43. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  44. <text>施工内容</text>
  45. <input class="uni-input" type="digit" v-model="workContent" placeholder="请输入施工内容"
  46. maxlength="100" style="margin-left: 10px;text-align: right;"></input>
  47. </view>
  48. </view>
  49. <view class="uni-list">
  50. <view class="container" style="border-bottom: 1px solid #f8f8f8;">
  51. <text>管道压力</text>
  52. <input class="uni-input" type="digit" v-model="pipePressure" placeholder="请输入管道压力"
  53. maxlength="100" style="margin-left: 10px;text-align: right;"></input>
  54. </view>
  55. </view>
  56. <view class="uni-list">
  57. <view class="align-items" style="margin-bottom: 20px;">
  58. <view class="container" style="color: #b2b2b2;">*请上传开孔照片</view>
  59. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  60. <image :src="loadImgSrc('updateimg.png')" mode=""
  61. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('fileOpenArr')">
  62. </image>
  63. <view v-for="(item,index) in fileOpenArr" :key="index" style="position: relative;">
  64. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  65. <image
  66. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  67. :src="item" @click="this.showPhoto(fileOpenArr.indexOf(item),fileOpenArr)"
  68. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  69. </image>
  70. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  71. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  72. </video>
  73. <text v-else @click="chooseModel(item,item.fileName)">
  74. {{item.fileName}}
  75. </text>
  76. </view>
  77. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileOpenArr)"
  78. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  79. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  80. </image>
  81. </view>
  82. </view>
  83. </view>
  84. </view>
  85. </view>
  86. <view class="uni-list">
  87. <view class="align-items" style="margin-bottom: 20px;">
  88. <view class="container" style="color: #b2b2b2;">*请上传封堵照片</view>
  89. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  90. <image :src="loadImgSrc('updateimg.png')" mode=""
  91. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  92. @click="choose('filePluggingArr')">
  93. </image>
  94. <view v-for="(item,index) in filePluggingArr" :key="index" style="position: relative;">
  95. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  96. <image
  97. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  98. :src="item"
  99. @click="this.showPhoto(filePluggingArr.indexOf(item),filePluggingArr)"
  100. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  101. </image>
  102. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  103. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  104. </video>
  105. <text v-else @click="chooseModel(item,item.fileName)">
  106. {{item.fileName}}
  107. </text>
  108. </view>
  109. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePluggingArr)"
  110. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  111. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  112. </image>
  113. </view>
  114. </view>
  115. </view>
  116. </view>
  117. </view>
  118. <view class="uni-list">
  119. <view class="align-items" style="margin-bottom: 20px;">
  120. <view class="container" style="color: #b2b2b2;">*请上传作业完成照片</view>
  121. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  122. <image :src="loadImgSrc('updateimg.png')" mode=""
  123. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('fileWorkArr')">
  124. </image>
  125. <view v-for="(item,index) in fileWorkArr" :key="index" style="position: relative;">
  126. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  127. <image
  128. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  129. :src="item" @click="this.showPhoto(fileWorkArr.indexOf(item),fileWorkArr)"
  130. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  131. </image>
  132. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  133. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  134. </video>
  135. <text v-else @click="chooseModel(item,item.fileName)">
  136. {{item.fileName}}
  137. </text>
  138. </view>
  139. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileWorkArr)"
  140. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  141. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  142. </image>
  143. </view>
  144. </view>
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. <view class="background" v-if="projectType==='pe'">
  150. <view class="uni-list">
  151. <view class="align-items" style="margin-bottom: 20px;">
  152. <view class="container" style="color: #b2b2b2;">*请上传鞍型焊接照片</view>
  153. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  154. <image :src="loadImgSrc('updateimg.png')" mode=""
  155. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('filePE01Arr')">
  156. </image>
  157. <view v-for="(item,index) in filePE01Arr" :key="index" style="position: relative;">
  158. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  159. <image
  160. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  161. :src="item" @click="this.showPhoto(filePE01Arr.indexOf(item),filePE01Arr)"
  162. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  163. </image>
  164. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  165. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  166. </video>
  167. <text v-else @click="chooseModel(item,item.fileName)">
  168. {{item.fileName}}
  169. </text>
  170. </view>
  171. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePE01Arr)"
  172. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  173. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  174. </image>
  175. </view>
  176. </view>
  177. </view>
  178. </view>
  179. </view>
  180. <view class="uni-list">
  181. <view class="align-items" style="margin-bottom: 20px;">
  182. <view class="container" style="color: #b2b2b2;">*请上传气密实验照片</view>
  183. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  184. <image :src="loadImgSrc('updateimg.png')" mode=""
  185. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('filePE02Arr')">
  186. </image>
  187. <view v-for="(item,index) in filePE02Arr" :key="index" style="position: relative;">
  188. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  189. <image
  190. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  191. :src="item" @click="this.showPhoto(filePE02Arr.indexOf(item),filePE02Arr)"
  192. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  193. </image>
  194. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  195. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  196. </video>
  197. <text v-else @click="chooseModel(item,item.fileName)">
  198. {{item.fileName}}
  199. </text>
  200. </view>
  201. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePE02Arr)"
  202. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  203. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  204. </image>
  205. </view>
  206. </view>
  207. </view>
  208. </view>
  209. </view>
  210. <view class="uni-list">
  211. <view class="align-items" style="margin-bottom: 20px;">
  212. <view class="container" style="color: #b2b2b2;">*请上传清扫照片</view>
  213. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  214. <image :src="loadImgSrc('updateimg.png')" mode=""
  215. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('filePE03Arr')">
  216. </image>
  217. <view v-for="(item,index) in filePE03Arr" :key="index" style="position: relative;">
  218. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  219. <image
  220. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  221. :src="item" @click="this.showPhoto(filePE03Arr.indexOf(item),filePE03Arr)"
  222. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  223. </image>
  224. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  225. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  226. </video>
  227. <text v-else @click="chooseModel(item,item.fileName)">
  228. {{item.fileName}}
  229. </text>
  230. </view>
  231. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePE03Arr)"
  232. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  233. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  234. </image>
  235. </view>
  236. </view>
  237. </view>
  238. </view>
  239. </view>
  240. <view class="uni-list">
  241. <view class="align-items" style="margin-bottom: 20px;">
  242. <view class="container" style="color: #b2b2b2;">*请上传碰口作业照片</view>
  243. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  244. <image :src="loadImgSrc('updateimg.png')" mode=""
  245. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('filePE04Arr')">
  246. </image>
  247. <view v-for="(item,index) in filePE04Arr" :key="index" style="position: relative;">
  248. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  249. <image
  250. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  251. :src="item" @click="this.showPhoto(filePE04Arr.indexOf(item),filePE04Arr)"
  252. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  253. </image>
  254. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  255. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  256. </video>
  257. <text v-else @click="chooseModel(item,item.fileName)">
  258. {{item.fileName}}
  259. </text>
  260. </view>
  261. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePE04Arr)"
  262. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  263. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  264. </image>
  265. </view>
  266. </view>
  267. </view>
  268. </view>
  269. </view>
  270. <view class="uni-list">
  271. <view class="align-items" style="margin-bottom: 20px;">
  272. <view class="container" style="color: #b2b2b2;">*请上传恢复通气捡漏照片</view>
  273. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  274. <image :src="loadImgSrc('updateimg.png')" mode=""
  275. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose('filePE05Arr')">
  276. </image>
  277. <view v-for="(item,index) in filePE05Arr" :key="index" style="position: relative;">
  278. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  279. <image
  280. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  281. :src="item" @click="this.showPhoto(filePE05Arr.indexOf(item),filePE05Arr)"
  282. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  283. </image>
  284. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  285. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  286. </video>
  287. <text v-else @click="chooseModel(item,item.fileName)">
  288. {{item.fileName}}
  289. </text>
  290. </view>
  291. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,filePE05Arr)"
  292. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  293. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  294. </image>
  295. </view>
  296. </view>
  297. </view>
  298. </view>
  299. </view>
  300. </view>
  301. <view class="background" v-else>
  302. <view class="uni-list">
  303. <view class="align-items" style="margin-bottom: 20px;">
  304. <view class="container" style="color: #b2b2b2;">*请上传管道壁厚照片</view>
  305. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  306. <!-- -->
  307. <image :src="loadImgSrc('updateimg.png')" mode=""
  308. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  309. @click="choose('fileSteel01Arr')">
  310. </image>
  311. <view v-for="(item,index) in fileSteel01Arr" :key="index" style="position: relative;">
  312. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  313. <image
  314. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  315. :src="item" @click="this.showPhoto(fileSteel01Arr.indexOf(item),fileSteel01Arr)"
  316. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  317. </image>
  318. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  319. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  320. </video>
  321. <text v-else @click="chooseModel(item,item.fileName)">
  322. {{item.fileName}}
  323. </text>
  324. </view>
  325. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel01Arr)"
  326. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  327. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  328. </image>
  329. </view>
  330. </view>
  331. </view>
  332. </view>
  333. </view>
  334. <view class="uni-list">
  335. <view class="align-items" style="margin-bottom: 20px;">
  336. <view class="container" style="color: #b2b2b2;">*请上传焊接四通照片</view>
  337. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  338. <image :src="loadImgSrc('updateimg.png')" mode=""
  339. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  340. @click="choose('fileSteel02Arr')">
  341. </image>
  342. <view v-for="(item,index) in fileSteel02Arr" :key="index" style="position: relative;">
  343. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  344. <image
  345. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  346. :src="item" @click="this.showPhoto(fileSteel02Arr.indexOf(item),fileSteel02Arr)"
  347. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  348. </image>
  349. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  350. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  351. </video>
  352. <text v-else @click="chooseModel(item,item.fileName)">
  353. {{item.fileName}}
  354. </text>
  355. </view>
  356. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel02Arr)"
  357. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  358. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  359. </image>
  360. </view>
  361. </view>
  362. </view>
  363. </view>
  364. </view>
  365. <view class="uni-list">
  366. <view class="align-items" style="margin-bottom: 20px;">
  367. <view class="container" style="color: #b2b2b2;">*请上传焊接旁通照片</view>
  368. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  369. <image :src="loadImgSrc('updateimg.png')" mode=""
  370. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  371. @click="choose('fileSteel03Arr')">
  372. </image>
  373. <view v-for="(item,index) in fileSteel03Arr" :key="index" style="position: relative;">
  374. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  375. <image
  376. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  377. :src="item" @click="this.showPhoto(fileSteel03Arr.indexOf(item),fileSteel03Arr)"
  378. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  379. </image>
  380. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  381. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  382. </video>
  383. <text v-else @click="chooseModel(item,item.fileName)">
  384. {{item.fileName}}
  385. </text>
  386. </view>
  387. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel03Arr)"
  388. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  389. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  390. </image>
  391. </view>
  392. </view>
  393. </view>
  394. </view>
  395. </view>
  396. <view class="uni-list">
  397. <view class="align-items" style="margin-bottom: 20px;">
  398. <view class="container" style="color: #b2b2b2;">*请上传氮气吹扫照片</view>
  399. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  400. <image :src="loadImgSrc('updateimg.png')" mode=""
  401. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  402. @click="choose('fileSteel04Arr')">
  403. </image>
  404. <view v-for="(item,index) in fileSteel04Arr" :key="index" style="position: relative;">
  405. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  406. <image
  407. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  408. :src="item" @click="this.showPhoto(fileSteel04Arr.indexOf(item),fileSteel04Arr)"
  409. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  410. </image>
  411. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  412. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  413. </video>
  414. <text v-else @click="chooseModel(item,item.fileName)">
  415. {{item.fileName}}
  416. </text>
  417. </view>
  418. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel04Arr)"
  419. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  420. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  421. </image>
  422. </view>
  423. </view>
  424. </view>
  425. </view>
  426. </view>
  427. <view class="uni-list">
  428. <view class="align-items" style="margin-bottom: 20px;">
  429. <view class="container" style="color: #b2b2b2;">*请上传管道置换照片</view>
  430. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  431. <image :src="loadImgSrc('updateimg.png')" mode=""
  432. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  433. @click="choose('fileSteel05Arr')">
  434. </image>
  435. <view v-for="(item,index) in fileSteel05Arr" :key="index" style="position: relative;">
  436. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  437. <image
  438. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  439. :src="item" @click="this.showPhoto(fileSteel05Arr.indexOf(item),fileSteel05Arr)"
  440. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  441. </image>
  442. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  443. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  444. </video>
  445. <text v-else @click="chooseModel(item,item.fileName)">
  446. {{item.fileName}}
  447. </text>
  448. </view>
  449. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel05Arr)"
  450. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  451. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  452. </image>
  453. </view>
  454. </view>
  455. </view>
  456. </view>
  457. </view>
  458. <view class="uni-list">
  459. <view class="align-items" style="margin-bottom: 20px;">
  460. <view class="container" style="color: #b2b2b2;">*请上传下堵照片</view>
  461. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  462. <image :src="loadImgSrc('updateimg.png')" mode=""
  463. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  464. @click="choose('fileSteel06Arr')">
  465. </image>
  466. <view v-for="(item,index) in fileSteel06Arr" :key="index" style="position: relative;">
  467. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  468. <image
  469. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  470. :src="item" @click="this.showPhoto(fileSteel06Arr.indexOf(item),fileSteel06Arr)"
  471. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  472. </image>
  473. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  474. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  475. </video>
  476. <text v-else @click="chooseModel(item,item.fileName)">
  477. {{item.fileName}}
  478. </text>
  479. </view>
  480. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel06Arr)"
  481. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  482. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  483. </image>
  484. </view>
  485. </view>
  486. </view>
  487. </view>
  488. </view>
  489. <view class="uni-list">
  490. <view class="align-items" style="margin-bottom: 20px;">
  491. <view class="container" style="color: #b2b2b2;">*请上传四通防腐照片</view>
  492. <view style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
  493. <image :src="loadImgSrc('updateimg.png')" mode=""
  494. style="width: 200rpx; height: 150rpx; margin: 0 12rpx; "
  495. @click="choose('fileSteel07Arr')">
  496. </image>
  497. <view v-for="(item,index) in fileSteel07Arr" :key="index" style="position: relative;">
  498. <view style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  499. <image
  500. v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 4) == 'jpeg' "
  501. :src="item" @click="this.showPhoto(fileSteel07Arr.indexOf(item),fileSteel07Arr)"
  502. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  503. </image>
  504. <video v-else-if="item.substring(item.length - 3) == 'mp4'" :src="item"
  505. style="width: 100rpx; height: 100rpx; margin: 0 12rpx;">
  506. </video>
  507. <text v-else @click="chooseModel(item,item.fileName)">
  508. {{item.fileName}}
  509. </text>
  510. </view>
  511. <view v-if="isShowRemoveFile(item)" @click="removeFile(index,fileSteel07Arr)"
  512. style="position: absolute; top: 0; right: 0rpx; border-radius: 50%;">
  513. <image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
  514. </image>
  515. </view>
  516. </view>
  517. </view>
  518. </view>
  519. </view>
  520. </view>
  521. </view>
  522. <view class="action-btn">
  523. <button @click="submit" class="btn cu-btn block bg-blue lg round">提交</button>
  524. </view>
  525. </scroll-view>
  526. </template>
  527. <script>
  528. import SelectPicker from '../../components/selectPicker/select_picker.vue'
  529. import bottomSheet from '../../components/bottomSheet/bottomSheetGasSealing.vue'
  530. import {
  531. getToken
  532. } from '../../utils/auth';
  533. import {
  534. getGasSealingProjectList,
  535. submitGasSealingProject,
  536. getGasSealingHistoryList
  537. } from '@/api/common'
  538. export default {
  539. components: {
  540. SelectPicker,
  541. bottomSheet
  542. },
  543. data() {
  544. return {
  545. headers: {
  546. Authorization: "Bearer " + getToken()
  547. },
  548. file: [], // 附件
  549. pics: [], // 附件返回
  550. open: false,
  551. currentTime: '',
  552. fileArr: [],
  553. id: '',
  554. enginName: '',
  555. address: '',
  556. workType: '',
  557. workContent: '',
  558. pipePressure: '',
  559. projectType: '',
  560. projectTypeLabel: '',
  561. fileOpenArr: [], //开孔照片
  562. fileWorkArr: [], //作业完成照片
  563. filePluggingArr: [], //封堵照片
  564. filePE01Arr: [], //鞍型焊接照片
  565. filePE02Arr: [], //气密实验照片
  566. filePE03Arr: [], //清扫照片
  567. filePE04Arr: [], //碰口作业照片
  568. filePE05Arr: [], //恢复通气检漏照片
  569. fileSteel01Arr: [], //管道壁厚照片
  570. fileSteel02Arr: [], //焊接四通照片
  571. fileSteel03Arr: [], //焊接旁通照片
  572. fileSteel04Arr: [], //氮气吹扫照片
  573. fileSteel05Arr: [], //管道置换照片
  574. fileSteel06Arr: [], //下堵照片
  575. fileSteel07Arr: [], //四通防腐照片
  576. historyList: {},
  577. projectTime: "",
  578. imgList: [],
  579. popupText: '', //对话框内容
  580. titleText: '',
  581. cancelText: '',
  582. confirmText: '',
  583. show_loding: false,
  584. fileUrl: '', //点击的文件地址
  585. fileName: '', //点击的文件名称
  586. objValue: {},
  587. }
  588. },
  589. created() {
  590. // this.currentTime = this.traversalTime(new Date().getTime()); //在data里定义变量-nowTime
  591. },
  592. onLoad(options) {
  593. if ('params' in options) {
  594. this.objValue = JSON.parse(decodeURIComponent(options.params));
  595. this.id = this.objValue.id;
  596. this.projectType = this.objValue.value;
  597. if (this.projectType === 'pe') {
  598. this.projectTypeLabel = 'PE封堵';
  599. } else {
  600. this.projectTypeLabel = '钢管带气封堵';
  601. }
  602. }
  603. uni.setNavigationBarTitle({
  604. title: '带气封堵施工'
  605. })
  606. history();
  607. },
  608. methods: {
  609. isEmpty(str) {
  610. return (!str || 0 === str.length);
  611. },
  612. chooseModel(url, name) {
  613. this.cancelText = '复制';
  614. this.confirmText = "下载";
  615. this.titleText = "温馨提示"
  616. this.popupText = "下载或者复制链接";
  617. this.show_loding = true;
  618. this.fileName = name;
  619. this.fileUrl = url; //文件名称和下载地址赋值
  620. },
  621. //取消按钮
  622. cancel_loding() {
  623. let _this = this;
  624. _this.show_loding = false;
  625. if (!_this.isEmpty(_this.fileUrl)) {
  626. uni.setClipboardData({
  627. data: _this.fileUrl,
  628. success() {
  629. uni.showToast({
  630. title: '已复制' + _this.fileName + '地址成功 请在浏览器打开',
  631. icon: 'none'
  632. });
  633. },
  634. fail(e) {
  635. uni.showToast({
  636. title: '复制失败',
  637. icon: 'none'
  638. });
  639. }
  640. });
  641. }
  642. },
  643. //确定按钮
  644. confirm_loding() {
  645. this.show_loding = false;
  646. this.download(this.fileUrl, this.fileName);
  647. },
  648. getDownLoadFilePath() {
  649. let cachePath = `${uni.env.USER_DATA_PATH}/downloads`
  650. let fm = uni.getFileSystemManager()
  651. try {
  652. // 访问成功则存在
  653. fm.accessSync(cachePath)
  654. } catch (error) {
  655. // 不存在则新建
  656. fm.mkdirSync(cachePath, true)
  657. }
  658. return cachePath
  659. },
  660. download(url, name) {
  661. let savePath = this.getDownLoadFilePath();
  662. //var savePath = uni.env.USER_DATA_PATH + '/savePath'
  663. uni.downloadFile({
  664. url: url,
  665. success: response => {
  666. if (response.statusCode === 200) {
  667. uni.getFileSystemManager().saveFile({
  668. tempFilePath: response.tempFilePath,
  669. filePath: `${savePath}/${name}`,
  670. success: (resData) => {
  671. uni.showToast({
  672. title: '下载成功'
  673. })
  674. },
  675. fail: error => {}
  676. })
  677. }
  678. }
  679. })
  680. },
  681. showPhoto(index, list) {
  682. uni.previewImage({
  683. current: index,
  684. urls: list,
  685. })
  686. },
  687. pickerShow() {
  688. this.open = true;
  689. },
  690. changeSelect(e) {
  691. },
  692. close() {
  693. this.open = false;
  694. },
  695. history() {
  696. if (this.isEmpty(this.id)) {
  697. this.$modal.msg('请选择工程')
  698. return;
  699. }
  700. getGasSealingHistoryList(this.id, this.projectType).then(res => {
  701. if (res.data.zEngineeringNodeBo.zEngineeringInfoBoList != null) {
  702. this.historyList = res.data;
  703. this.$refs.refShare.handleShowShare();
  704. } else {
  705. this.$modal.msg("暂无历史信息")
  706. }
  707. })
  708. },
  709. projectListSelect(item, index) {
  710. this.open = false;
  711. this.enginName = item.enginName;
  712. this.id = item.id;
  713. },
  714. choose(fileType) {
  715. if (this.isEmpty(this.id)) {
  716. this.$modal.msg('请选择工程')
  717. return;
  718. }
  719. let _this = this;
  720. uni.showActionSheet({
  721. title: '上传',
  722. itemList: ['图片', '视频'],
  723. success: (res) => {
  724. if (res.tapIndex == 0) {
  725. this.chooseimage(fileType)
  726. } else {
  727. this.choosevideo(fileType)
  728. }
  729. }
  730. })
  731. },
  732. chooseimage(fileType) {
  733. let _this = this;
  734. uni.chooseImage({
  735. sizeType: ['album', 'camera'],
  736. success(resp) {
  737. resp.tempFiles.forEach((item, index) => {
  738. const task = uni.uploadFile({
  739. url: _this.$HTTP + `/obs`,
  740. filePath: item.path,
  741. name: 'file',
  742. formData: {},
  743. header: _this.headers,
  744. success: res => {
  745. let data = JSON.parse(res.data);
  746. if (![200].includes(data.code)) {
  747. _this.$modal.msg(data.msg)
  748. } else {
  749. if (_this.progress === 100) {
  750. if (fileType === 'fileOpenArr') { //开孔
  751. _this.fileOpenArr.push(data.data.url)
  752. } else if (fileType === 'filePluggingArr') { //封堵
  753. _this.filePluggingArr.push(data.data.url)
  754. } else if (fileType === 'fileWorkArr') { //作业
  755. _this.fileWorkArr.push(data.data.url)
  756. } else if (fileType === 'filePE01Arr') { //PE01
  757. _this.filePE01Arr.push(data.data.url)
  758. } else if (fileType === 'filePE02Arr') { //PE02
  759. _this.filePE02Arr.push(data.data.url)
  760. } else if (fileType === 'filePE03Arr') { //PE03
  761. _this.filePE03Arr.push(data.data.url)
  762. } else if (fileType === 'filePE04Arr') { //PE04
  763. _this.filePE04Arr.push(data.data.url)
  764. } else if (fileType === 'filePE05Arr') { //PE05
  765. _this.filePE05Arr.push(data.data.url)
  766. } else if (fileType ===
  767. 'fileSteel01Arr') { //fileSteel01Arr
  768. _this.fileSteel01Arr.push(data.data.url)
  769. } else if (fileType ===
  770. 'fileSteel02Arr') { //fileSteel02Arr
  771. _this.fileSteel02Arr.push(data.data.url)
  772. } else if (fileType ===
  773. 'fileSteel03Arr') { //fileSteel03Arr
  774. _this.fileSteel03Arr.push(data.data.url)
  775. } else if (fileType ===
  776. 'fileSteel04Arr') { //fileSteel04Arr
  777. _this.fileSteel04Arr.push(data.data.url)
  778. } else if (fileType ===
  779. 'fileSteel05Arr') { //fileSteel05Arr
  780. _this.fileSteel05Arr.push(data.data.url)
  781. } else if (fileType ===
  782. 'fileSteel06Arr') { //fileSteel06Arr
  783. _this.fileSteel06Arr.push(data.data.url)
  784. } else if (fileType ===
  785. 'fileSteel07Arr') { //fileSteel07Arr
  786. _this.fileSteel07Arr.push(data.data.url)
  787. }
  788. _this.$modal.msg('上传成功!')
  789. }
  790. }
  791. },
  792. fail: e => {
  793. _this.$modal.msg('上传失败!')
  794. },
  795. complete: res => {
  796. uni.hideLoading();
  797. _this.uploading = false;
  798. }
  799. });
  800. task.onProgressUpdate(res => {
  801. _this.progress = res.progress;
  802. uni.showLoading({
  803. title: '上传中'
  804. })
  805. if (_this.progress != 100) {
  806. _this.loading = false
  807. } else {
  808. _this.loading = true
  809. }
  810. });
  811. })
  812. },
  813. })
  814. },
  815. choosevideo(fileType) {
  816. let _this = this;
  817. uni.chooseVideo({
  818. sourceType: ['album', 'camera'],
  819. maxDuration: 30,
  820. success(resp) {
  821. const task = uni.uploadFile({
  822. url: _this.$HTTP + `/obs`,
  823. filePath: resp.tempFilePath,
  824. name: 'file',
  825. formData: {},
  826. header: _this.headers,
  827. success: res => {
  828. // 判断是否json字符串,将其转为json格式
  829. let data = JSON.parse(res.data);
  830. if (![200].includes(res.statusCode)) {
  831. this.uploadError(index, data);
  832. } else {
  833. //上传成功
  834. if (_this.progress === 100) {
  835. if (fileType === 'fileOpenArr') { //开孔
  836. _this.fileOpenArr.push(data.data.url)
  837. } else if (fileType === 'filePluggingArr') { //封堵
  838. _this.filePluggingArr.push(data.data.url)
  839. } else if (fileType === 'fileWorkArr') { //作业
  840. _this.fileWorkArr.push(data.data.url)
  841. } else if (fileType === 'filePE01Arr') { //PE01
  842. _this.filePE01Arr.push(data.data.url)
  843. } else if (fileType === 'filePE02Arr') { //PE02
  844. _this.filePE02Arr.push(data.data.url)
  845. } else if (fileType === 'filePE03Arr') { //PE03
  846. _this.filePE03Arr.push(data.data.url)
  847. } else if (fileType === 'filePE04Arr') { //PE04
  848. _this.filePE04Arr.push(data.data.url)
  849. } else if (fileType === 'filePE05Arr') { //PE05
  850. _this.filePE05Arr.push(data.data.url)
  851. } else if (fileType ===
  852. 'fileSteel01Arr') { //fileSteel01Arr
  853. _this.fileSteel01Arr.push(data.data.url)
  854. } else if (fileType ===
  855. 'fileSteel02Arr') { //fileSteel02Arr
  856. _this.fileSteel02Arr.push(data.data.url)
  857. } else if (fileType ===
  858. 'fileSteel03Arr') { //fileSteel03Arr
  859. _this.fileSteel03Arr.push(data.data.url)
  860. } else if (fileType ===
  861. 'fileSteel04Arr') { //fileSteel04Arr
  862. _this.fileSteel04Arr.push(data.data.url)
  863. } else if (fileType ===
  864. 'fileSteel05Arr') { //fileSteel05Arr
  865. _this.fileSteel05Arr.push(data.data.url)
  866. } else if (fileType ===
  867. 'fileSteel06Arr') { //fileSteel06Arr
  868. _this.fileSteel06Arr.push(data.data.url)
  869. } else if (fileType ===
  870. 'fileSteel07Arr') { //fileSteel07Arr
  871. _this.fileSteel07Arr.push(data.data.url)
  872. }
  873. _this.$modal.msg('上传成功!')
  874. //_this.photo = false;
  875. }
  876. }
  877. },
  878. fail: e => {
  879. _this.$modal.msg('上传失败!')
  880. this.uploadError(index, e);
  881. },
  882. complete: res => {
  883. uni.hideLoading();
  884. _this.uploading = false;
  885. }
  886. });
  887. task.onProgressUpdate(res => {
  888. _this.progress = res.progress;
  889. uni.showLoading({
  890. title: '上传中'
  891. })
  892. if (_this.progress != 100) {
  893. _this.loadingFile = false
  894. } else {
  895. _this.loadingFile = true
  896. }
  897. });
  898. },
  899. })
  900. },
  901. isShowRemoveFile(item) {
  902. var isShow = true;
  903. // var isShow = item.createBy == this.$user.state.name;
  904. return isShow;
  905. },
  906. removeFile(index, fileArr) {
  907. uni.showModal({
  908. title: '提示',
  909. content: '是否删除该文件?',
  910. success: (res) => {
  911. if (res.confirm) {
  912. fileArr.splice(index, 1)
  913. }
  914. }
  915. })
  916. },
  917. submit() {
  918. // if (this.isEmpty(this.address)) {
  919. // this.$modal.msg('请输入地点')
  920. // return;
  921. // }
  922. // if (this.isEmpty(this.workType)) {
  923. // this.$modal.msg('请输入作业方式')
  924. // return;
  925. // }
  926. // if (this.isEmpty(this.pipePressure)) {
  927. // this.$modal.msg('请输入管道压力')
  928. // return;
  929. // }
  930. // if (this.projectType !== 'pe' && this.isEmpty(this.workContent)) {
  931. // this.$modal.msg('请输入施工内容')
  932. // return;
  933. // }
  934. // if (this.fileOpenArr.length <= 0) {
  935. // this.$modal.msg('请选择附件')
  936. // return;
  937. // }
  938. let param = {
  939. id: this.id,
  940. zEngineeringNodeBo: {
  941. zEngineeringInfoBo: {
  942. headName: this.enginName, //工程名称
  943. constructAddre: this.address, //地点
  944. segmentedCompressionQualified: this.workType, //作业方式
  945. constructAccordingDrawings: this.pipePressure, //管道压力
  946. remark: this.workContent, //施工内容 PE
  947. peHolesOpening: this.fileOpenArr, //开孔照片 PE
  948. peHomeworkDone: this.fileWorkArr, //作业完成照片 PE
  949. pePlugging: this.filePluggingArr, //封堵照片 PE
  950. peSaddleWelding: this.filePE01Arr, //鞍型焊接照片 PE
  951. peAirtightTest: this.filePE02Arr, //气密实验照片 PE
  952. peCleaning: this.filePE03Arr, //清扫照片 PE
  953. peCollisionOperating: this.filePE04Arr, //碰口作业照片 PE
  954. peAirrecovering: this.filePE05Arr, //恢复通气检漏照片 PE
  955. ironHolesOpening: this.fileOpenArr, //开孔照片
  956. ironHomeworkDone: this.fileWorkArr, //作业完成照片
  957. ironCleaning: this.filePluggingArr, //封堵照片
  958. ironPipelineThickness: this.fileSteel01Arr, //管道壁厚照片
  959. iron4Welding: this.fileSteel02Arr, //焊接四通照片
  960. ironBypassWelding: this.fileSteel03Arr, //焊接旁通照片
  961. ironNitrogenPurging: this.fileSteel04Arr, //氮气吹扫照片
  962. ironPipelineReplacing: this.fileSteel05Arr, //管道置换照片
  963. ironLowerEndCap: this.fileSteel06Arr, //下堵照片
  964. iron4Aczoiling: this.fileSteel07Arr, //四通防腐照片
  965. }
  966. }
  967. }
  968. uni.showLoading();
  969. submitGasSealingProject(param).then(res => {
  970. uni.hideLoading()
  971. this.$modal.msg(res.msg);
  972. setTimeout(() => {
  973. uni.navigateBack();
  974. }, 1000);
  975. })
  976. },
  977. // 打开picker
  978. openDatetimePicker() {
  979. if (this.isEmpty(this.id)) {
  980. this.$modal.msg('请选择工程')
  981. } else {
  982. this.$refs.myPicker.show();
  983. }
  984. },
  985. }
  986. }
  987. </script>
  988. <style>
  989. .container {
  990. display: flex;
  991. align-items: center;
  992. justify-content: space-between;
  993. padding: 10px;
  994. position: relative;
  995. }
  996. .uni-list {
  997. border: 1xp solid #eee;
  998. }
  999. .to-right-icon {
  1000. width: 15px;
  1001. height: 15px;
  1002. position: absolute;
  1003. top: 50%;
  1004. transform: translateY(-50%);
  1005. }
  1006. .marginLeft5 {
  1007. margin-left: 5px;
  1008. }
  1009. .title-txt {
  1010. font-size: 15px;
  1011. font-weight: bold;
  1012. color: black;
  1013. }
  1014. .content-txt {
  1015. font-size: 10px;
  1016. font-weight: bold;
  1017. color: black;
  1018. }
  1019. .background {
  1020. // border: 15px solid hsla(0, 0%, 100%, .5);
  1021. background: white;
  1022. background-clip: padding-box;
  1023. padding: 20rpx;
  1024. border-radius: 20rpx;
  1025. margin: 20rpx;
  1026. /*从padding开始往外面裁剪背景*/
  1027. }
  1028. .uni-list-cell {
  1029. position: relative;
  1030. display: flex;
  1031. flex-direction: row;
  1032. justify-content: space-between;
  1033. align-items: center;
  1034. }
  1035. .uni-list-cell-left {
  1036. white-space: nowrap;
  1037. font-size: 28rpx;
  1038. }
  1039. .centered {
  1040. text-align: center;
  1041. background-color: #e2f4ff;
  1042. }
  1043. .text {
  1044. background-color: #e2f4ff;
  1045. height: 20rpx;
  1046. }
  1047. .view_bg_build {
  1048. background-color: #e2f4ff;
  1049. padding: 10rpx;
  1050. margin: 20rpx;
  1051. }
  1052. .grid-text {
  1053. font-size: 14px;
  1054. color: #000000;
  1055. text-align: center;
  1056. padding-left: 30rpx;
  1057. padding-right: 30rpx;
  1058. padding-top: 20rpx;
  1059. padding-bottom: 20rpx;
  1060. }
  1061. .name {
  1062. flex: 0;
  1063. font-size: 14px;
  1064. color: #000000;
  1065. overflow: hidden;
  1066. text-overflow: ellipsis;
  1067. white-space: nowrap;
  1068. }
  1069. .table-item {
  1070. overflow: hidden;
  1071. text-overflow: ellipsis;
  1072. white-space: nowrap;
  1073. }
  1074. .block-iv {
  1075. width: 10px;
  1076. height: 10px;
  1077. }
  1078. .btn {
  1079. width: 715rpx;
  1080. height: 69rpx;
  1081. background: #79A4F0;
  1082. border-radius: 6rpx;
  1083. font-size: 25rpx;
  1084. font-family: Microsoft YaHei;
  1085. font-weight: 400;
  1086. color: #FFFFFF;
  1087. line-height: 69rpx;
  1088. margin-top: 40rpx;
  1089. margin-bottom: 100rpx;
  1090. }
  1091. .number {
  1092. display: flex;
  1093. /* 水平居中显示子元素 */
  1094. align-items: flex-start;
  1095. /* 垂直居中显示子元素 */
  1096. justify-content: space-between;
  1097. /* 左右间距等于间距大小 */
  1098. padding: 10px;
  1099. /* 设置padding以提高视觉效果 */
  1100. }
  1101. .tj-btn {
  1102. height: 69rpx;
  1103. background: #3184f0;
  1104. border-radius: 6rpx;
  1105. font-size: 25rpx;
  1106. font-weight: 400;
  1107. color: #FFFFFF;
  1108. line-height: 69rpx;
  1109. margin: 40rpx 70rpx;
  1110. }
  1111. .sc-btn {
  1112. height: 69rpx;
  1113. background: #f0686b;
  1114. border-radius: 6rpx;
  1115. font-size: 25rpx;
  1116. font-weight: 400;
  1117. color: #FFFFFF;
  1118. line-height: 69rpx;
  1119. margin: 40rpx;
  1120. }
  1121. .num-style {
  1122. background: #e8f4f9;
  1123. margin: 20rpx;
  1124. padding: 10rpx;
  1125. border-radius: 20rpx;
  1126. border: 1px solid #d4e3f0;
  1127. }
  1128. .textarea {
  1129. margin-top: 10upx;
  1130. width: 100%;
  1131. border: 1rpx solid red;
  1132. min-height: 100upx;
  1133. line-height: 20px;
  1134. }
  1135. .text {
  1136. font-size: 16px;
  1137. color: #333;
  1138. }
  1139. input {
  1140. flex-grow: 1;
  1141. font-size: 28rpx;
  1142. color: #808080;
  1143. }
  1144. </style>