PressureRegulatingBox.vue 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031
  1. <template>
  2. <view>
  3. <image src="/static/icon/background.png" class="background"></image>
  4. <view class="project-content">
  5. <u-form :model="form" ref="form">
  6. <view class="top">
  7. <u-icon class="top-icon" name="map-fill"></u-icon>
  8. <u-form-item label=" " borderBottom ref="item1" placeholder=" " labelWidth="20" label-align="left">
  9. <u-input v-model="communityName" disabled placeholder=" " disabled trim="false"></u-input>
  10. </u-form-item>
  11. <u-icon class="top-icon" name="calendar"></u-icon>
  12. <u-form-item label=" " borderBottom ref="item1" placeholder=" " labelWidth="20">
  13. <u-input v-model="time" disabled style="font-size: 2rpx" length='30px' trim="true"
  14. placeholder=" "></u-input>
  15. </u-form-item>
  16. </view>
  17. <view class="small-title">调压箱部分</view>
  18. <u-row gutter="12">
  19. <u-col>
  20. <u-form-item label="管理所" borderBottom ref="item1" labelWidth="140">
  21. <u-input v-model="AdministrativeOfficeLabel" placeholder="请输入管理所名称"
  22. disabled borderBottom @click="showadministrativeOffice= true&&type!=1"></u-input>
  23. <u-select v-model="showadministrativeOffice" :list="AdministrativeOfficeList" label-name="name"
  24. value-name="value" @confirm="AdministrativeOffice()"> </u-select>
  25. <u-icon slot="right" name="arrow-right"></u-icon>
  26. </u-form-item>
  27. </u-col>
  28. <u-col>
  29. <u-form-item label="编号" borderBottom ref="item1" labelWidth="140">
  30. <u-input :disabled="type==1" v-model="form.number" placeholder="请输入编号" ></u-input>
  31. </u-form-item>
  32. </u-col>
  33. <u-col>
  34. <u-form-item label="商服" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  35. <u-switch v-model="form.businessService" :disabled="type==1"></u-switch>
  36. </u-form-item>
  37. </u-col>
  38. <u-col>
  39. <u-form-item label="外观" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  40. <u-radio-group v-model="form.appearance" :disabled="type==1">
  41. <u-radio @change="appearance" v-for="(item, index) in typelist.appearance" :key="index"
  42. :name="item.dictValue">
  43. {{item.dictLabel}}
  44. </u-radio>
  45. </u-radio-group>
  46. </u-form-item>
  47. </u-col>
  48. <u-col>
  49. <u-form-item label="方砖" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  50. <u-radio-group v-model="form.squareBrick" :disabled="type==1">
  51. <u-radio @change="squareBrick" v-for="(item, index) in typelist.square_brick"
  52. :key="index" :name="item.dictValue">
  53. {{item.dictLabel}}
  54. </u-radio>
  55. </u-radio-group>
  56. </u-form-item>
  57. </u-col>
  58. <u-col>
  59. <u-form-item label="护栏" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  60. <u-radio-group v-model="form.guardrail" :disabled="type==1">
  61. <u-radio @change="guardrail" v-for="(item, index) in typelist.guardrail" :key="index"
  62. :name="item.dictValue">
  63. {{item.dictLabel}}
  64. </u-radio>
  65. </u-radio-group>
  66. </u-form-item>
  67. </u-col>
  68. <u-col>
  69. <u-form-item label="基础" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  70. <u-radio-group v-model="form.foundation" :disabled="type==1">
  71. <u-radio @change="foundation" v-for="(item, index) in typelist.foundation" :key="index"
  72. :name="item.dictValue">
  73. {{item.dictLabel}}
  74. </u-radio>
  75. </u-radio-group>
  76. </u-form-item>
  77. </u-col>
  78. <u-col>
  79. <u-form-item label="压力表" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  80. <u-radio-group v-model="form.pressureGage" :disabled="type==1">
  81. <u-radio @change="pressureGage" v-for="(item, index) in typelist.pressure_gage"
  82. :key="index" :name="item.dictValue">
  83. {{item.dictLabel}}
  84. </u-radio>
  85. </u-radio-group>
  86. </u-form-item>
  87. </u-col>
  88. <u-col>
  89. <u-form-item label="阀门" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  90. <u-radio-group v-model="form.valve" :disabled="type==1">
  91. <u-radio @change="valve" v-for="(item, index) in typelist.valve" :key="index"
  92. :name="item.dictValue">
  93. {{item.dictLabel}}
  94. </u-radio>
  95. </u-radio-group>
  96. </u-form-item>
  97. </u-col>
  98. <u-col>
  99. <u-form-item label="是否泄露" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  100. <u-switch v-model="form.isThereALeak" :disabled="type==1"></u-switch>
  101. </u-form-item>
  102. </u-col>
  103. <u-col>
  104. <u-form-item label="调压器" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  105. <u-radio-group v-model="form.voltageRegulator" :disabled="type==1">
  106. <u-radio @change="voltageRegulator" v-for="(item, index) in typelist.voltage_regulator"
  107. :key="index" :name="item.dictValue">
  108. {{item.dictLabel}}
  109. </u-radio>
  110. </u-radio-group>
  111. </u-form-item>
  112. </u-col>
  113. </u-row>
  114. <u-row class="un-row" gutter="12" style="text-align:left;">
  115. <u-col span="10">
  116. <u-form-item label="入口压力" borderBottom ref="item1" placeholder="请输入编号" labelWidth="140">
  117. <u-input v-model="form.inletPressure" length='20px' placeholder="请输入入口压力"
  118. :disabled="type==1"></u-input>
  119. </u-form-item>
  120. </u-col>
  121. <u-col span="2">
  122. <viwe class="danwei">Mpa</viwe>
  123. </u-col>
  124. </u-row>
  125. <u-row gutter="12">
  126. <u-col span="5">
  127. <u-form-item label="出口压力 主路" borderBottom ref="item1" placeholder=" " labelWidth="200">
  128. <u-input v-model="form.exportPressureMain" placeholder=" " :disabled="type==1"></u-input>
  129. </u-form-item>
  130. </u-col>
  131. <u-col span="2">
  132. <viwe class="danwei">KPa</viwe>
  133. </u-col>
  134. <u-col span="3">
  135. <u-form-item label="副路" borderBottom ref="item1" placeholder=" " labelWidth="80">
  136. <u-input v-model="form.exportPressureAccessory" length='20px' trim="false" aceholder=""
  137. :disabled="type==1"></u-input>
  138. </u-form-item>
  139. </u-col>
  140. <u-col span="1">
  141. <viwe class="danwei">KPa</viwe>
  142. </u-col>
  143. </u-row>
  144. <u-row gutter="12">
  145. <u-col span="5">
  146. <u-form-item label="关闭压力 主路" borderBottom ref="item1" placeholder=" " labelWidth="200">
  147. <u-input v-model="form.closingPressureMain" placeholder=" " trim="false"
  148. :disabled="type==1"></u-input>
  149. </u-form-item>
  150. </u-col>
  151. <u-col span="2">
  152. <viwe class="danwei">KPa</viwe>
  153. </u-col>
  154. <u-col span="3">
  155. <u-form-item label="副路" borderBottom ref="item1" placeholder=" " labelWidth="80">
  156. <u-input v-model="form.closingPressureAccessory" length='20px' trim="false" placeholder=" "
  157. :disabled="type==1"></u-input>
  158. </u-form-item>
  159. </u-col>
  160. <u-col span="1">
  161. <viwe class="danwei">KPa</viwe>
  162. </u-col>
  163. </u-row>
  164. <u-row>
  165. <u-col>
  166. <u-form-item label="伴热带" labelWidth="140" borderBottom ref="item1">
  167. <u-input v-model="xtvLabel" disabled @click="showxtv= true&&type!=1" borderBottom
  168. placeholder="请选择伴热带"></u-input>
  169. <u-select v-model="showxtv" :list="typelist.xtv" @confirm="xtv()" :show="showxtv"
  170. label-name="dictLabel" value-name="dictValue"> </u-select>
  171. <u-icon slot="right" name="arrow-right"></u-icon>
  172. </u-form-item>
  173. </u-col>
  174. <u-col>
  175. <u-form-item label="有无温控器" borderBottom ref="item1" placeholder="" labelWidth="180">
  176. <u-switch v-model="form.thermostat" :disabled="type==1"></u-switch>
  177. </u-form-item>
  178. </u-col>
  179. <u-col>
  180. <u-form-item label="有无防爆开关" borderBottom ref="item1" placeholder="" labelWidth="180">
  181. <u-switch v-model="form.explosionProofSwitch" :disabled="type==1"></u-switch>
  182. </u-form-item>
  183. </u-col>
  184. </u-row>
  185. <view class="small-title">切断器测证部分</view>
  186. <u-row>
  187. <u-col>
  188. <u-form-item label="未测试" borderBottom ref="item1" placeholder="" labelWidth="120">
  189. <u-switch v-model="form.cutterTested" :disabled="type==1"></u-switch>
  190. </u-form-item>
  191. </u-col>
  192. <u-col>
  193. <u-form-item label="切断器(放散阀)测试情况" borderBottom ref="item1" placeholder="" labelWidth="320">
  194. <u-radio-group v-model="form.disconnectorTestStatus" :disabled="type==1">
  195. <u-radio @change="disconnectorTestStatus"
  196. v-for="(item, index) in typelist.disconnector_test_status" :key="index"
  197. :name="item.dictValue">
  198. {{item.dictLabel}}
  199. </u-radio>
  200. </u-radio-group>
  201. </u-form-item>
  202. </u-col>
  203. </u-row>
  204. <u-row gutter="12">
  205. <u-col span="5">
  206. <u-form-item label="切断压力 主路" borderBottom ref="item1" placeholder=" " labelWidth="200">
  207. <u-input v-model="form.cutOffPressureMain" placeholder=" " :disabled="type==1"></u-input>
  208. </u-form-item>
  209. </u-col>
  210. <u-col span="2">
  211. <viwe class="danwei">KPa</viwe>
  212. </u-col>
  213. <u-col span="3">
  214. <u-form-item label="副路" borderBottom ref="item1" placeholder="" labelWidth="80">
  215. <u-input v-model="form.cutOffPressureAccessory" length='20px' placeholder="请输入副路"
  216. :disabled="type==1"></u-input>
  217. </u-form-item>
  218. </u-col>
  219. <u-col span="1">
  220. <viwe class="danwei">KPa</viwe>
  221. </u-col>
  222. </u-row>
  223. <u-row gutter="12" style="text-align: center;">
  224. <u-col span="10">
  225. <u-form-item label="放散压力" borderBottom ref="item1" placeholder="请输入放散压力" labelWidth="140">
  226. <u-input v-model="form.releasePressure" length='20px' placeholder="请输入放散压力"
  227. :disabled="type==1"></u-input>
  228. </u-form-item>
  229. </u-col>
  230. <u-col span="2">
  231. <viwe class="danwei">Mpa</viwe>
  232. </u-col>
  233. </u-row>
  234. <view class="small-title">主副路交替部分</view>
  235. <u-row>
  236. <u-col>
  237. <u-form-item label="未交替" borderBottom ref="item1" placeholder="请输入编号" labelWidth="120">
  238. <u-switch v-model="form.manOfAccessoryAlternating" :disabled="type==1"></u-switch>
  239. </u-form-item>
  240. </u-col>
  241. <u-col>
  242. <u-form-item label="过滤器" borderBottom ref="item1" placeholder="请输入编号" labelWidth="120">
  243. <u-radio-group v-model="form.filter" :disabled="type==1">
  244. <u-radio @change="filter" v-for="(item, index) in typelist.filter" :key="index"
  245. :name="item.dictValue">
  246. {{item.dictLabel}}
  247. </u-radio>
  248. </u-radio-group>
  249. </u-form-item>
  250. </u-col>
  251. </u-row>
  252. <u-row gutter="12" style="text-align: center;">
  253. <u-col span="12">
  254. <u-form-item label="操作结果主副路已交替完毕,现" borderBottom ref="item1" placeholder="请输入编号"
  255. labelWidth="420">
  256. <u-input v-model="form.mainRoad" length='20px' placeholder="请输入"
  257. :disabled="type==1"></u-input>
  258. </u-form-item>
  259. </u-col>
  260. <u-col span="12">
  261. <viwe class="danwei">路为主路</viwe>
  262. </u-col>
  263. </u-row>
  264. <view class="small-title">特殊情况说明</view>
  265. <u-row>
  266. <u-col>
  267. <u-form-item label="调压设施特例" borderBottom ref="item1" placeholder="请输入编号" labelWidth="200">
  268. <u-radio-group v-model="form.specialCaseOfPressureRegulatingFacilities" :disabled="type==1">
  269. <u-radio @change="specialCaseOfPressureRegulatingFacilities"
  270. v-for="(item, index) in typelist.special_case_of_pressure_regulating_facilities"
  271. :key="index" :name="item.dictValue">
  272. {{item.dictLabel}}
  273. </u-radio>
  274. </u-radio-group>
  275. </u-form-item>
  276. </u-col>
  277. <u-col>
  278. <u-form-item label="超期巡检天数" borderBottom ref="item1" placeholder="请输入编号" labelWidth="200">
  279. <u-radio-group v-model="form.overdueInspectionDays" :disabled="type==1">
  280. <u-radio @change="overdueInspectionDays"
  281. v-for="(item, index) in typelist.overdue_inspection_days" :key="index"
  282. :name="item.dictValue">
  283. {{item.dictLabel}}
  284. </u-radio>
  285. </u-radio-group>
  286. </u-form-item>
  287. </u-col>
  288. <u-col>
  289. <u-form-item label="超期巡检原因" borderBottom ref="item1" placeholder="请输入编号" labelWidth="200">
  290. <u-radio-group v-model="form.reasonForOverdueInspection" :disabled="type==1">
  291. <u-radio @change="reasonForOverdueInspection"
  292. v-for="(item, index) in typelist.reason_for_overdue_inspection" :key="index"
  293. :name="item.dictValue">
  294. {{item.dictLabel}}
  295. </u-radio>
  296. </u-radio-group>
  297. </u-form-item>
  298. </u-col>
  299. <u-col>
  300. <u-form-item label="其他原因" borderBottom ref="item1" labelWidth="160">
  301. <u-input v-model="form.otherReasonsForOverdueInspection" placeholder="(非必填项)"
  302. :disabled="type==1"></u-input>
  303. </u-form-item>
  304. </u-col>
  305. </u-row>
  306. <view class="small-title">阀井测试部分</view>
  307. <u-row>
  308. <u-col>
  309. <u-form-item label="未测试" borderBottom ref="item1" placeholder="请输入编号" labelWidth="120">
  310. <u-switch v-model="form.valveWellTesting" :disabled="type==1"></u-switch>
  311. </u-form-item>
  312. </u-col>
  313. <u-col>
  314. <u-form-item label="阀井情况" labelWidth="140" borderBottom ref="item1">
  315. <u-input v-model="valveWellConditioLabel" disabled
  316. @click=" showvalveWellCondition= true&& type!=1" borderBottom
  317. placeholder="请选择阀井情况"></u-input>
  318. <u-select v-model="showvalveWellCondition" :list="typelist.valve_well_condition"
  319. @confirm="valveWellCondition()" label-name="dictLabel" value-name="dictValue">
  320. </u-select>
  321. <u-icon slot="right" name="arrow-right"></u-icon>
  322. </u-form-item>
  323. </u-col>
  324. </u-row>
  325. <view class="small-title">备注信息</view>
  326. <u-row>
  327. <u-col>
  328. <u-form-item label=" " labelWidth="0" borderBottom ref="item1">
  329. <u-input v-model="form.remarks" type="textarea" borderBottom placeholder="请填写备注信息内容"
  330. :disabled="type==1"></u-input>
  331. </u-form-item>
  332. </u-col>
  333. <u-col>
  334. <u-form-item label=" " labelWidth="0" borderBottom ref="item1">
  335. <u-input v-model="form.WarningColumnInformation" disabled placeholder="请上传巡检照片"></u-input>
  336. <view class="" style="display: flex; flex-wrap: wrap; margin: 0 55rpx;">
  337. <image src="/static/icon/chooseimg.png" mode=""
  338. style="width: 190rpx; height: 190rpx; margin: 0 12rpx; " @click="choose()"
  339. v-if="type!=1"></image>
  340. <view v-for="(item,index) in imgymxs" :key="index" style="position: relative;">
  341. <view v-if="item.type == 'image'">
  342. <image :src="item.url" mode=""
  343. style="width: 190rpx; height: 190rpx; margin: 0 20rpx;"
  344. @click="showPhoto(index)">
  345. </image>
  346. </view>
  347. <view v-else>
  348. <video :src="item"
  349. style="width: 190rpx; height: 190rpx; margin: 0 20rpx;"></video>
  350. </view>
  351. <view @click="remove(index)" v-if="type!=1"
  352. style="position: absolute; top: 0; right: 14rpx; border-radius: 50%; background-color: #FF0000;">
  353. <u-icon name="close" color="#FFFFFF" size="35" v-if="type!=1"></u-icon>
  354. </view>
  355. </view>
  356. </view>
  357. </u-form-item>
  358. </u-col>
  359. </u-row>
  360. </u-form>
  361. <u-button class="from-but" style="margin: 40rpx 0;" @click="save()" v-if="type!=1"
  362. type='primary'>确认上传</u-button>
  363. </view>
  364. </u-form>
  365. </view>
  366. </view>
  367. </template>
  368. <script>
  369. import service from '@/api/index.js'
  370. export default {
  371. data() {
  372. return {
  373. action: this.$HTTP.webUrl + `/obs`,
  374. headers: {
  375. MAuthorization: "wxBearer " + uni.getStorageSync('token')
  376. },
  377. url: [],
  378. showadministrativeOffice:false,
  379. uploading: false,
  380. imgArr: [],
  381. PhotoList: [],
  382. community: '',
  383. building: '',
  384. unit: '',
  385. imgymxs: [],
  386. progress: 0, //图片或视频上传百分比
  387. showxtv: false,
  388. showvalveWellCondition: false,
  389. form: {},
  390. xtvLabel: null,
  391. valveWellConditioLabel: null,
  392. // 表单校验
  393. rules: {
  394. areaId: [{
  395. required: true,
  396. message: "所属小区不能为空",
  397. trigger: "blur"
  398. }],
  399. buildingId: [{
  400. required: true,
  401. message: "所属楼宇不能为空",
  402. trigger: "blur"
  403. }],
  404. unitId: [{
  405. required: true,
  406. message: "单元id不能为空",
  407. trigger: "change"
  408. }],
  409. number: [{
  410. required: true,
  411. message: "编号不能为空",
  412. trigger: "blur"
  413. }],
  414. businessService: [{
  415. required: true,
  416. message: "商服不能为空",
  417. trigger: "blur"
  418. }],
  419. appearance: [{
  420. required: true,
  421. message: "外观不能为空",
  422. trigger: "change"
  423. }],
  424. squareBrick: [{
  425. required: true,
  426. message: "方砖不能为空",
  427. trigger: "change"
  428. }],
  429. guardrail: [{
  430. required: true,
  431. message: "护栏不能为空",
  432. trigger: "change"
  433. }],
  434. foundation: [{
  435. required: true,
  436. message: "基础不能为空",
  437. trigger: "change"
  438. }],
  439. pressureGage: [{
  440. required: true,
  441. message: "压力表不能为空",
  442. trigger: "change"
  443. }],
  444. mainRoad: [{
  445. required: true,
  446. message: "当前主路不能为空",
  447. trigger: "change"
  448. }],
  449. valve: [{
  450. required: true,
  451. message: "阀门不能为空",
  452. trigger: "change"
  453. }],
  454. isThereALeak: [{
  455. required: true,
  456. message: "是否泄露不能为空",
  457. trigger: "blur"
  458. }],
  459. voltageRegulator: [{
  460. required: true,
  461. message: "调压器不能为空",
  462. trigger: "change"
  463. }],
  464. inletPressure: [{
  465. required: true,
  466. message: "入口压力不能为空",
  467. trigger: "blur"
  468. }],
  469. exportPressureMain: [{
  470. required: true,
  471. message: "出口压力(主路)不能为空",
  472. trigger: "blur"
  473. }],
  474. exportPressureAccessory: [{
  475. required: true,
  476. message: "出口压力(副路)不能为空",
  477. trigger: "blur"
  478. }],
  479. closingPressureMain: [{
  480. required: true,
  481. message: "关闭压力(主路)不能为空",
  482. trigger: "blur"
  483. }],
  484. closingPressureAccessory: [{
  485. required: true,
  486. message: "关闭压力(副路)不能为空",
  487. trigger: "blur"
  488. }],
  489. xtv: [{
  490. required: true,
  491. message: "伴热带不能为空",
  492. trigger: "change"
  493. }],
  494. thermostat: [{
  495. required: true,
  496. message: "有无控温器不能为空",
  497. trigger: "blur"
  498. }],
  499. explosionProofSwitch: [{
  500. required: true,
  501. message: "有无防爆开关不能为空",
  502. trigger: "blur"
  503. }],
  504. cutterTested: [{
  505. required: true,
  506. message: "切断器测试不能为空",
  507. trigger: "blur"
  508. }],
  509. disconnectorTestStatus: [{
  510. required: true,
  511. message: "切断器(放散阀)测试情况不能为空",
  512. trigger: "change"
  513. }],
  514. cutOffPressureMain: [{
  515. required: true,
  516. message: "切断压力(主路)不能为空",
  517. trigger: "blur"
  518. }],
  519. cutOffPressureAccessory: [{
  520. required: true,
  521. message: "切断压力(副路)不能为空",
  522. trigger: "blur"
  523. }],
  524. releasePressure: [{
  525. required: true,
  526. message: "放散压力不能为空",
  527. trigger: "blur"
  528. }],
  529. manOfAccessoryAlternating: [{
  530. required: true,
  531. message: "主副路交替不能为空",
  532. trigger: "blur"
  533. }],
  534. filter: [{
  535. required: true,
  536. message: "过滤器不能为空",
  537. trigger: "change"
  538. }],
  539. specialCaseOfPressureRegulatingFacilities: [{
  540. required: true,
  541. message: "调压设施特例不能为空",
  542. trigger: "change"
  543. }],
  544. overdueInspectionDays: [{
  545. required: true,
  546. message: "超期巡检天数不能为空",
  547. trigger: "change"
  548. }],
  549. reasonForOverdueInspection: [{
  550. required: true,
  551. message: "超期巡检原因不能为空",
  552. trigger: "change"
  553. }],
  554. otherReasonsForOverdueInspection: [{
  555. required: true,
  556. message: "超期巡检其他原因不能为空",
  557. trigger: "blur"
  558. }],
  559. valveWellTesting: [{
  560. required: true,
  561. message: "阀井测试不能为空",
  562. trigger: "blur"
  563. }],
  564. valveWellCondition: [{
  565. required: true,
  566. message: "阀井情况不能为空",
  567. trigger: "change"
  568. }]
  569. },
  570. communityName: '',
  571. communityId:'',
  572. time: '',
  573. showrepairType: false,
  574. showrepairType: null,
  575. checked: true,
  576. typelist: {},
  577. dictlist: ['appearance', 'square_brick', 'guardrail', 'foundation', 'pressure_gage', 'valve',
  578. 'voltage_regulator', 'xtv', 'disconnector_test_status', 'filter',
  579. 'special_case_of_pressure_regulating_facilities', 'overdue_inspection_days',
  580. 'reason_for_overdue_inspection', 'valve_well_condition', 'find_problem', 'xtv','administrative_office'
  581. ],
  582. type: 2,
  583. id: null,
  584. AdministrativeOfficeList:[],
  585. AdministrativeOfficeLabel:null,
  586. userId:null,createBy:null,
  587. administrativeOffice:null,
  588. code:null,
  589. name:null
  590. }
  591. },
  592. // onReady() {
  593. // uni.setNavigationBarTitle({
  594. // title: '调压箱表单'
  595. // });
  596. // },
  597. showPhoto(index) {
  598. uni.previewImage({
  599. current: index,
  600. urls: this.imgArr,
  601. })
  602. },
  603. showPhotos(index) {
  604. uni.previewImage({
  605. current: index,
  606. urls: this.photo,
  607. })
  608. },
  609. onLoad(e) {
  610. uni.setNavigationBarTitle({
  611. title: '调压箱表单'
  612. });
  613. uni.setNavigationBarColor({
  614. frontColor: '#ffffff',
  615. backgroundColor: '#2d95f4',
  616. })
  617. let time1 = new Date()
  618. console.log(time1.toLocaleString())
  619. var year = time1.getFullYear(); //得到年份
  620. var month = time1.getMonth() + 1; //得到月份
  621. var date = time1.getDate(); //得到日期
  622. var hours = time1.getHours(); //获取系统时
  623. var Min = time1.getMinutes(); //分
  624. this.type = e.type
  625. this.id = e.id
  626. this.time = year + "/" + month + "/" + date + "-" + hours + ":" + Min
  627. this.form.areaId = e.community
  628. this.communityId=e.community
  629. this.communityName = e.communityName
  630. // this.form.number=e.code
  631. // this.administrativeOffice=e.administrativeOffice
  632. // this.form.administrativeOffice=this.administrativeOffice
  633. this.name=e.name
  634. this.code=e.code
  635. this.getdictsysinfo()
  636. this.getUserName()
  637. },
  638. methods: {
  639. getUserName(){
  640. service.getUserName().then(res=>{
  641. this.userId=res.id
  642. this.createBy=res.name
  643. this.getAdministrativeOffice(res.id)
  644. console.log(this.communityName)
  645. })
  646. },
  647. getAdministrativeOffice(userId){
  648. service.getAdministrativeOffice({userId:userId}).then(res=>{
  649. this.AdministrativeOfficeList=res
  650. })
  651. },
  652. getdictsysinfo() {
  653. let _this = this
  654. service.getDictInfoList({
  655. type: this.dictlist
  656. }).then(res => {
  657. _this.typelist = res
  658. if (this.type == 1) {
  659. service.getregulatorBox(this.id).then(res => {
  660. this.communityName = res.areaName
  661. this.time = res.createTime
  662. if (null != res.photoList) {
  663. res.photoList.forEach(item => {
  664. let url = {}
  665. url.url = item
  666. url.type = 'image'
  667. this.imgymxs.push(url)
  668. })
  669. }
  670. let list = []
  671. list = _this.typelist.xtv
  672. list.forEach((item) => {
  673. if (item.dictValue == res.xtv) {
  674. _this.xtvLabel = item.dictLabel
  675. }
  676. })
  677. let list2 = []
  678. list2 = _this.typelist.valve_well_condition
  679. list2.forEach((item) => {
  680. if (item.dictValue == res.valveWellCondition) {
  681. _this.valveWellConditioLabel = item.dictLabel
  682. }
  683. })
  684. let list3 = []
  685. list3 = _this.typelist.administrative_office
  686. list3.forEach((item) => {
  687. if (item.dictValue == res.administrativeOffice) {
  688. _this.AdministrativeOfficeLabel = item.dictLabel
  689. }
  690. })
  691. this.form = res
  692. })
  693. console.log(res)
  694. }
  695. })
  696. },
  697. //外观
  698. appearance(e) {
  699. this.$refs.form.appearance = e
  700. console.log(e)
  701. },
  702. //方砖
  703. squareBrick(e) {
  704. this.$refs.form.squareBrick = e
  705. console.log(e)
  706. },
  707. //护栏
  708. guardrail(e) {
  709. this.$refs.form.guardrail = e
  710. console.log(e)
  711. },
  712. //基础
  713. foundation(e) {
  714. this.$refs.form.foundation = e
  715. console.log(e)
  716. },
  717. //压力表
  718. pressureGage(e) {
  719. this.$refs.form.pressureGage = e
  720. console.log(e)
  721. },
  722. //阀门
  723. valve(e) {
  724. this.$refs.form.valve = e
  725. console.log(e)
  726. },
  727. //调压器
  728. voltageRegulator(e) {
  729. this.$refs.form.voltageRegulator = e
  730. console.log(e)
  731. },
  732. //切断器(放散阀)测试情况
  733. disconnectorTestStatus(e) {
  734. this.$refs.form.disconnectorTestStatus = e
  735. console.log(e)
  736. },
  737. //过滤器
  738. filter(e) {
  739. this.$refs.form.filter = e
  740. console.log(e)
  741. },
  742. specialCaseOfPressureRegulatingFacilities(e) {
  743. this.$refs.form.specialCaseOfPressureRegulatingFacilities = e
  744. console.log(e)
  745. },
  746. overdueInspectionDays(e) {
  747. this.$refs.form.overdueInspectionDays = e
  748. console.log(e)
  749. },
  750. reasonForOverdueInspection(e) {
  751. this.$refs.form.reasonForOverdueInspection = e
  752. console.log(e)
  753. },
  754. xtv(e) {
  755. this.form.xtv = e[0].value
  756. this.xtvLabel = e[0].label
  757. console.log(this.xtvLabel)
  758. },
  759. AdministrativeOffice(e)
  760. {
  761. this.form.administrativeOffice=e[0].value
  762. this.AdministrativeOfficeLabel = e[0].label
  763. console.log('11111',e)
  764. },
  765. valveWellCondition(e) {
  766. this.form.valveWellCondition = e[0].value
  767. this.valveWellConditioLabel = e[0].label
  768. console.log(this.$refs.form.valveWellCondition)
  769. },
  770. save() {
  771. let _this = this
  772. if(this.imgArr.length==0)
  773. {
  774. this.$UTILS.showPrompt('请上传照片或视频!')
  775. return
  776. }
  777. this.form.photoList = this.imgArr
  778. this.form.unitId = this.unit
  779. this.form.areaId = this.communityId
  780. this.form.userId=this.userId
  781. this.form.createBy=this.userId
  782. // this.form.administrativeOffice=this.administrativeOffice
  783. // this.form.code=this.code
  784. // this.form.name=this.name
  785. // this.form.number=this.code
  786. service.setregulatorBox(this.form).then(res => {
  787. console.log(res)
  788. _this.$UTILS.showPrompt('上报成功!')
  789. // setTimeout(() => {
  790. // console.log('跳')
  791. // uni.switchTab({
  792. // url: '/pages/index/index'
  793. // })
  794. // }, 2000)
  795. this.form={}
  796. this.valveWellConditioLabel=''
  797. this.xtvLabel=''
  798. this.valveWellConditioLabel=''
  799. this.AdministrativeOfficeLabel=''
  800. this.form.administrativeOffice=this.administrativeOffice
  801. this.form.number=this.code
  802. this.imgArr=[]
  803. this.imgymxs=[]
  804. })
  805. },
  806. choose() {
  807. let _this = this;
  808. uni.showActionSheet({
  809. title: '上传',
  810. itemList: ['图片', '视频'],
  811. success: (res) => {
  812. // console.log(res)
  813. if (res.tapIndex == 0) {
  814. this.chooseimage()
  815. } else {
  816. this.choosevideo()
  817. }
  818. }
  819. })
  820. },
  821. chooseimage() {
  822. console.log('图片')
  823. let _this = this;
  824. uni.chooseImage({
  825. sourceType: ['camera'],
  826. success(resp) {
  827. console.log('res--uni.chooseMedia', resp);
  828. resp.tempFiles.forEach((item, index) => {
  829. const task = uni.uploadFile({
  830. url: _this.$HTTP.webUrl + `/obs`,
  831. filePath: item.path,
  832. name: 'file',
  833. formData: {},
  834. header: _this.headers,
  835. success: res => {
  836. // 判断是否json字符串,将其转为json格式
  837. let data = _this.$u.test.jsonString(res.data) ? JSON.parse(
  838. res.data) : res.data;
  839. if (![200, 201, 204].includes(res.statusCode)) {
  840. // this.uploadError(index, data);
  841. _this.$UTILS.showPrompt('选取失败!')
  842. } else {
  843. // 上传成功
  844. // this.lists[index].response = data;
  845. // this.lists[index].progress = 100;
  846. // this.lists[index].error = false;
  847. // this.$emit('on-success', data, index, this.lists, this
  848. // .index);
  849. if (_this.progress === 100) {
  850. // console.log('_this.progress', _this.progress)
  851. // console.log('data----', data)
  852. // console.log('res--', res)
  853. _this.imgymxs.push({
  854. url: data.data.url,
  855. type: 'image'
  856. })
  857. _this.imgArr.push(data.data.url)
  858. // console.log('imgArr', _this.imgArr)
  859. _this.$UTILS.showPrompt('选取成功!')
  860. }
  861. }
  862. },
  863. fail: e => {
  864. _this.$UTILS.showPrompt('选取失败!')
  865. this.uploadError(index, e);
  866. },
  867. complete: res => {
  868. _this.uploading = false;
  869. // _this.uploadFile(index + 1);
  870. // this.$emit('on-change', res, index, this.lists, this
  871. // .index);
  872. }
  873. });
  874. task.onProgressUpdate(res => {
  875. // if (res.progress > 0) {
  876. // this.lists[index].progress = res.progress;
  877. // this.$emit('on-progress', res, index, this.lists, this.index);
  878. // }
  879. _this.progress = res.progress;
  880. console.log('onProgressUpdate', res)
  881. uni.showLoading({
  882. title: '选取中'
  883. })
  884. });
  885. })
  886. },
  887. })
  888. },
  889. choosevideo() {
  890. let _this = this;
  891. console.log('视频')
  892. uni.chooseVideo({
  893. sourceType: ['camera'],
  894. maxDuration: 30,
  895. success(resp) {
  896. const task = uni.uploadFile({
  897. url: _this.$HTTP.webUrl + `/obs`,
  898. filePath: resp.tempFilePath,
  899. name: 'file',
  900. formData: {},
  901. header: _this.headers,
  902. success: res => {
  903. // 判断是否json字符串,将其转为json格式
  904. let data = _this.$u.test.jsonString(res.data) ? JSON.parse(res.data) :
  905. res.data;
  906. if (![200, 201, 204].includes(res.statusCode)) {
  907. this.uploadError(index, data);
  908. } else {
  909. // 上传成功
  910. // this.lists[index].response = data;
  911. // this.lists[index].progress = 100;
  912. // this.lists[index].error = false;
  913. // this.$emit('on-success', data, index, this.lists, this
  914. // .index);
  915. if (_this.progress === 100) {
  916. console.log('_this.progress', _this.progress)
  917. console.log('data----', data)
  918. console.log('res--', res)
  919. // _this.imgArr.push(data.data.url)
  920. _this.imgymxs.push({
  921. url: data.data.url,
  922. type: 'video'
  923. })
  924. _this.imgArr.push(data.data.url)
  925. console.log('imgArr', _this.imgArr)
  926. _this.$UTILS.showPrompt('选取成功!')
  927. }
  928. }
  929. },
  930. fail: e => {
  931. _this.$UTILS.showPrompt('选取失败!')
  932. this.uploadError(index, e);
  933. },
  934. complete: res => {
  935. uni.hideLoading();
  936. _this.uploading = false;
  937. // _this.uploadFile(index + 1);
  938. // this.$emit('on-change', res, index, this.lists, this
  939. // .index);
  940. }
  941. });
  942. task.onProgressUpdate(res => {
  943. // if (res.progress > 0) {
  944. // this.lists[index].progress = res.progress;
  945. // this.$emit('on-progress', res, index, this.lists, this.index);
  946. // }
  947. _this.progress = res.progress;
  948. console.log('onProgressUpdate', res)
  949. uni.showLoading({
  950. title: '选取中'
  951. })
  952. });
  953. },
  954. })
  955. },
  956. remove(index) {
  957. uni.showModal({
  958. title: '提示',
  959. content: '是否删除该图片或视频?',
  960. success: (res) => {
  961. if (res.confirm) {
  962. this.imgArr.splice(index, 1);
  963. this.imgymxs.splice(index, 1);
  964. console.log('this.imgArr', this.imgArr)
  965. }
  966. }
  967. })
  968. },
  969. }
  970. }
  971. </script>
  972. <style>
  973. .project-content {
  974. padding: 0rpx 20rpx;
  975. border-radius: 20rpx;
  976. width: 90%;
  977. margin: 0 auto;
  978. background: #fff;
  979. }
  980. .background {
  981. z-index: -1;
  982. position: fixed;
  983. width: 100%;
  984. height: 100%;
  985. background-size: 100% 100%;
  986. }
  987. .top-left {
  988. display: flex;
  989. align-items: center;
  990. }
  991. .small-title {
  992. font-size: 38rpx;
  993. color: #2d95f4;
  994. margin: 20rpx 0;
  995. }
  996. .form-item {
  997. display: flex;
  998. align-items: center;
  999. font-size: 32rpx;
  1000. border: none;
  1001. }
  1002. .danwei {
  1003. text-align: center;
  1004. line-height: 110rpx;
  1005. }
  1006. .un-row {
  1007. text-align: left;
  1008. }
  1009. .top {
  1010. display: flex;
  1011. align-items: center;
  1012. justify-content: space-between;
  1013. }
  1014. .top-icon {
  1015. font-size: 40rpx;
  1016. color: #2d95f4;
  1017. }
  1018. </style>