indexCivi.vue 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253
  1. <!--
  2. *@description: 工业工程
  3. *@author: yh Fu
  4. *@date: 2024-01-02 15:51:03
  5. *@version: V1.0.5
  6. -->
  7. <template>
  8. <!-- 添加或修改开栓工程对话框 -->
  9. <el-dialog :title="title" :visible.sync="open" append-to-body customClass="appendElDialog" @close="closeSon">
  10. <el-form ref="form" :model="form" :rules="rules" label-width="110px" style="height: 100%;overflow: hidden;overflow-y: auto;">
  11. <el-row>
  12. <el-col :span="12">
  13. <h1>基础信息</h1>
  14. </el-col>
  15. </el-row>
  16. <el-row>
  17. <el-col :span="4">
  18. <el-form-item label="行政区" prop="district">
  19. <el-select
  20. disabled="true"
  21. v-model="form.district"
  22. placeholder="请选择行政区"
  23. filterable
  24. @change="districtHasChanged"
  25. style="width: 150px"
  26. >
  27. <el-option
  28. v-for="e in dict.type.district"
  29. :key="e.value"
  30. :label="e.label"
  31. :value="e.value"
  32. ></el-option>
  33. </el-select>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="4">
  37. <el-form-item label="小区" prop="areaId">
  38. <el-select
  39. disabled="true"
  40. v-model="form.areaId"
  41. filterable
  42. placeholder="请选择小区"
  43. @change="communityHasChanged"
  44. style="width: 150px"
  45. >
  46. <el-option
  47. v-for="e in communityOptions"
  48. :key="e.id"
  49. :label="e.name"
  50. :value="e.id"
  51. ></el-option>
  52. </el-select>
  53. </el-form-item>
  54. </el-col>
  55. <el-col :span="4">
  56. <el-form-item label="楼栋" prop="buildingId">
  57. <el-select
  58. disabled="true"
  59. filterable
  60. v-model="form.buildingId"
  61. placeholder="请选择楼栋"
  62. @change="buildingHasChanged"
  63. style="width: 150px"
  64. >
  65. <el-option
  66. v-for="e in buildingOptions"
  67. :key="e.id"
  68. :label="e.name"
  69. :value="e.id"
  70. ></el-option>
  71. </el-select>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="4">
  75. <el-form-item label="单元" prop="unitId">
  76. <el-select
  77. disabled="true"
  78. v-model="form.unitId"
  79. filterable
  80. placeholder="请选择单元"
  81. @change="unitHasChanged"
  82. style="width: 150px"
  83. >
  84. <el-option
  85. v-for="e in unitOptions"
  86. :key="e.id"
  87. :label="e.name"
  88. :value="e.id"
  89. ></el-option>
  90. </el-select>
  91. </el-form-item>
  92. </el-col>
  93. <el-col :span="4">
  94. <el-form-item label="房间" prop="houseId">
  95. <el-select
  96. disabled="true"
  97. v-model="form.houseId"
  98. filterable
  99. placeholder="请选择房间"
  100. style="width: 150px"
  101. >
  102. <el-option
  103. v-for="e in houseOptions"
  104. :key="e.id"
  105. :label="e.name"
  106. :value="e.id"
  107. ></el-option>
  108. </el-select>
  109. </el-form-item>
  110. </el-col>
  111. </el-row>
  112. <el-row>
  113. <el-col :span="12">
  114. <h1>燃气立杠</h1>
  115. </el-col>
  116. </el-row>
  117. <el-row>
  118. <el-col :span="24">
  119. <el-form-item label-width="180px" label="立杠是否刷涂防腐漆" prop="isAntiCorrosionPaint">
  120. <el-radio-group v-model="form.isAntiCorrosionPaint">
  121. <el-radio
  122. v-for="dict in dict.type.sys_yes_no"
  123. :key="dict.value"
  124. :label="dict.value"
  125. >{{dict.label}}</el-radio>
  126. </el-radio-group>
  127. </el-form-item>
  128. </el-col>
  129. </el-row>
  130. <el-row>
  131. <el-col :span="24">
  132. <el-form-item label-width="180px" label="是否有立杠卡子" prop="isVerticalBarClamp" style="width: 100%">
  133. <el-radio-group v-model="form.isVerticalBarClamp">
  134. <el-radio
  135. v-for="dict in dict.type.sys_yes_no"
  136. :key="dict.value"
  137. :label="dict.value"
  138. >{{dict.label}}</el-radio>
  139. </el-radio-group>
  140. </el-form-item>
  141. </el-col>
  142. </el-row>
  143. <el-row :gutter="20">
  144. <el-col :span="24">
  145. <el-form-item label-width="180px" label="照片" style="width: 100%">
  146. <ObsImageUpload
  147. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  148. ref="obsImageUpload"
  149. :limit="11"
  150. :fileType="['png', 'jpg', 'jpeg']"
  151. @input="getpressureTestPic(arguments)"
  152. :value="form.pressureTestPic"
  153. :disabled="status == 'read-only' "
  154. ></ObsImageUpload>
  155. </el-form-item>
  156. </el-col>
  157. </el-row>
  158. <el-row>
  159. <el-col :span="12">
  160. <h1>气密测试</h1>
  161. </el-col>
  162. </el-row>
  163. <el-form-item label="立杠气密测试" prop="verticalBarTest">
  164. <el-input v-model="form.verticalBarTest" placeholder="请填写立杠气密测试漆" maxlength="60"></el-input>
  165. </el-form-item>
  166. <el-form-item label="单户气密测试" prop="householdTest">
  167. <el-input v-model="form.householdTest" placeholder="请填写单户气密测试子" maxlength="60"></el-input>
  168. </el-form-item>
  169. <el-row :gutter="20">
  170. <el-col :span="24">
  171. <el-form-item label="照片" style="width: 100%">
  172. <ObsImageUpload
  173. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  174. ref="obsImageUpload"
  175. :limit="11"
  176. :fileType="['png', 'jpg', 'jpeg']"
  177. @input="getpressureTestPic(arguments)"
  178. :value="form.pressureTestPic"
  179. :disabled="status == 'read-only' "
  180. ></ObsImageUpload>
  181. </el-form-item>
  182. </el-col>
  183. </el-row>
  184. <el-row>
  185. <el-col :span="12">
  186. <h1>燃气表</h1>
  187. </el-col>
  188. </el-row>
  189. <el-form-item label="表号" prop="gasMeterNumber">
  190. <el-input v-model="form.gasMeterNumber" placeholder="请填写表号" maxlength="60"></el-input>
  191. </el-form-item>
  192. <el-form-item label="表字" prop="gasMeterCount">
  193. <el-input v-model="form.gasMeterCount" placeholder="请填写表字" maxlength="60"></el-input>
  194. </el-form-item>
  195. <el-form-item label="品牌" prop="gasMeterBrand">
  196. <el-input v-model="form.gasMeterBrand" placeholder="请填写品牌" maxlength="60"></el-input>
  197. </el-form-item>
  198. <el-form-item label="型号" prop="gasMeterType">
  199. <el-input v-model="form.gasMeterType" placeholder="请填写型号" maxlength="60"></el-input>
  200. </el-form-item>
  201. <el-form-item label="进气方向" prop="gasMeterDirection">
  202. <el-radio-group v-model="form.gasMeterDirection">
  203. <el-radio
  204. v-for="dict in dict.type.gas_meter_direction"
  205. :key="dict.value"
  206. :label="dict.value"
  207. >{{dict.label}}</el-radio>
  208. </el-radio-group>
  209. </el-form-item>
  210. <el-row :gutter="20">
  211. <el-col :span="24">
  212. <el-form-item label="照片" style="width: 100%">
  213. <ObsImageUpload
  214. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  215. ref="obsImageUpload"
  216. :limit="11"
  217. :fileType="['png', 'jpg', 'jpeg']"
  218. @input="getgasMeterPic(arguments)"
  219. :value="form.gasMeterPic"
  220. :disabled="status == 'read-only' "
  221. ></ObsImageUpload>
  222. </el-form-item>
  223. </el-col>
  224. </el-row>
  225. <el-row>
  226. <el-col :span="12">
  227. <h1>表后管</h1>
  228. </el-col>
  229. </el-row>
  230. <el-form-item label="管表后管卡子" prop="isRearPipeClamp">
  231. <el-radio-group v-model="form.isRearPipeClamp">
  232. <el-radio
  233. v-for="dict in dict.type.sys_yes_no"
  234. :key="dict.value"
  235. :label="dict.value"
  236. >{{dict.label}}</el-radio>
  237. </el-radio-group>
  238. </el-form-item>
  239. <el-row :gutter="20">
  240. <el-col :span="24">
  241. <el-form-item label="照片" style="width: 100%">
  242. <ObsImageUpload
  243. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  244. ref="obsImageUpload"
  245. :limit="11"
  246. :fileType="['png', 'jpg', 'jpeg']"
  247. @input="getrearPipePic(arguments)"
  248. :value="form.rearPipePic"
  249. :disabled="status == 'read-only' "
  250. ></ObsImageUpload>
  251. </el-form-item>
  252. </el-col>
  253. </el-row>
  254. <el-row>
  255. <el-col :span="12">
  256. <h1>灶前阀门</h1>
  257. </el-col>
  258. </el-row>
  259. <el-row>
  260. <el-col :span="24">
  261. <el-form-item label="是否阀管改造" prop="gasChangeType">
  262. <el-radio-group v-model="form.isGasChangeType">
  263. <el-radio
  264. v-for="dict in dict.type.sys_yes_no"
  265. :key="dict.value"
  266. :label="dict.value"
  267. >{{dict.label}}</el-radio>
  268. </el-radio-group>
  269. </el-form-item>
  270. </el-col>
  271. </el-row>
  272. <el-row v-if="form.isGasChangeType == 'Y'">
  273. <el-col :span="24">
  274. <el-form-item label="阀管改造类型" prop="gasChangeType">
  275. <el-radio-group v-model="form.gasChangeType">
  276. <el-radio
  277. v-for="dict in dict.type.gas_change_type"
  278. :key="dict.value"
  279. :label="dict.value"
  280. >{{dict.label}}</el-radio>
  281. </el-radio-group>
  282. </el-form-item>
  283. </el-col>
  284. </el-row>
  285. <el-row :gutter="20">
  286. <el-col :span="24">
  287. <el-form-item label="照片" style="width: 100%">
  288. <ObsImageUpload
  289. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  290. ref="obsImageUpload"
  291. :limit="11"
  292. :fileType="['png', 'jpg', 'jpeg']"
  293. @input="getgasChangePic(arguments)"
  294. :value="form.gasChangePic"
  295. :disabled="status == 'read-only' "
  296. ></ObsImageUpload>
  297. </el-form-item>
  298. </el-col>
  299. </el-row>
  300. <el-row>
  301. <el-col :span="12">
  302. <h1>软管</h1>
  303. </el-col>
  304. </el-row>
  305. <el-row :gutter="20">
  306. <el-col :span="24">
  307. <el-form-item label="照片" style="width: 100%">
  308. <ObsImageUpload
  309. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  310. ref="obsImageUpload"
  311. :limit="11"
  312. :fileType="['png', 'jpg', 'jpeg']"
  313. @input="getsoftPipePic(arguments)"
  314. :value="form.softPipePic"
  315. :disabled="status == 'read-only' "
  316. ></ObsImageUpload>
  317. </el-form-item>
  318. </el-col>
  319. </el-row>
  320. <el-row>
  321. <el-col :span="12">
  322. <h1>灶具</h1>
  323. </el-col>
  324. </el-row>
  325. <el-form-item label="是否使用防风圈" prop="isWindproofCircle">
  326. <el-radio-group v-model="form.isWindproofCircle">
  327. <el-radio
  328. v-for="dict in dict.type.sys_yes_no"
  329. :key="dict.value"
  330. :label="dict.value"
  331. >{{dict.label}}</el-radio>
  332. </el-radio-group>
  333. </el-form-item>
  334. <el-row :gutter="20">
  335. <el-col :span="24">
  336. <el-form-item label="照片" style="width: 100%">
  337. <ObsImageUpload
  338. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  339. ref="obsImageUpload"
  340. :limit="11"
  341. :fileType="['png', 'jpg', 'jpeg']"
  342. @input="getwindproofCirclePic(arguments)"
  343. :value="form.windproofCirclePic"
  344. :disabled="status == 'read-only' "
  345. ></ObsImageUpload>
  346. </el-form-item>
  347. </el-col>
  348. </el-row>
  349. <el-row>
  350. <el-col :span="12">
  351. <h1>用气环境 </h1>
  352. </el-col>
  353. </el-row>
  354. <el-row :gutter="20">
  355. <el-col :span="24">
  356. <el-form-item label="照片" style="width: 100%">
  357. <ObsImageUpload
  358. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  359. ref="obsImageUpload"
  360. :limit="11"
  361. :fileType="['png', 'jpg', 'jpeg']"
  362. @input="getgasEnvironmentPic(arguments)"
  363. :value="form.gasEnvironmentPic"
  364. :disabled="status == 'read-only' "
  365. ></ObsImageUpload>
  366. </el-form-item>
  367. </el-col>
  368. </el-row>
  369. <el-row>
  370. <el-col :span="12">
  371. <h1>回执单</h1>
  372. </el-col>
  373. </el-row>
  374. <el-row :gutter="20">
  375. <el-col :span="24">
  376. <el-form-item label="照片" style="width: 100%">
  377. <ObsImageUpload
  378. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  379. ref="obsImageUpload"
  380. :limit="11"
  381. :fileType="['png', 'jpg', 'jpeg']"
  382. @input="getreceiptFormPic(arguments)"
  383. :value="form.receiptFormPic"
  384. :disabled="status == 'read-only' "
  385. ></ObsImageUpload>
  386. </el-form-item>
  387. </el-col>
  388. </el-row>
  389. </el-form>
  390. <div style="width: 25%; float: right;margin-top:2%" >
  391. <el-button @click="cancel">取 消</el-button>
  392. </div>
  393. </el-dialog>
  394. </template>
  395. <script>
  396. import {
  397. getEngineeGasOpeningList,
  398. addEngineeEngineeGasOpening,
  399. UpdateEngineeGasOpening,
  400. DelEngineeGasOpening,
  401. EditEngineeGasOpening,
  402. putEngineeGasOpening,
  403. QueryEngineeGasOpening,
  404. } from '@/api/zdsz/engineeringGasOpening'
  405. import {
  406. addEnginee, // 新增工程
  407. getHousesList, // 获取当前房间集合
  408. putEngineeringCivil, // 民用工程修改
  409. viewEngineeringCivil, // 民用工程查看详情
  410. deleteEngineeringCivil, // 删除民用工程
  411. getDictList,
  412. viewEngineeringInfrastructureSource,
  413. viewEngineeringCivilSource,
  414. engineeringCivilAllReview,
  415. CivilReview, batchNode
  416. } from "@/api/zdsz/enginee"
  417. import {getAreaList} from "@/api/zdsz/area";
  418. import {getBuildingList} from "@/api/zdsz/building";
  419. import {getUnits} from "@/api/zdsz/unit";
  420. import {getHouses} from "@/api/zdsz/house";
  421. import {getDicts} from "@/api/system/dict/data";
  422. import {validPhoneMobile} from '@/api/rules'
  423. import {getEnginMaterialQualityList} from '@/api/zdsz/enginee'
  424. import {getEnginSpecificationsList} from '@/api/zdsz/enginSpecifications'
  425. export default {
  426. name: "openrepair1",
  427. dicts: ['sys_yes_no', 'is_repair', 'industry_engin_type', 'self_closing_valve_type', 'visit_type', 'engin_classification', 'engineering_infrastructure', 'air_wall_node', 'gas_meter_direction', 'gas_change_type', 'district'],
  428. data() {
  429. // 自定义校验
  430. const validatePicPass = (rule, value, callback) => {
  431. return new Promise((resolve, reject) => {
  432. // 至少有一个图片、一个创建时间
  433. if (this.zEngineeringNodeBo.zEngineeringInfoBo.zEngiineeringPhotoBoList.length !== 0
  434. && (this.zEngineeringNodeBo.zEngineeringInfoBo.constructTime !== null || undefined)) {
  435. resolve(true)
  436. } else {
  437. reject(new Error('no pass'))
  438. }
  439. })
  440. }
  441. return {
  442. stateArray:[
  443. {label:'未审核',value:'2'},
  444. {label:'审核通过',value:'1'},
  445. {label:'审核不通过',value:'0'},
  446. ],
  447. communityOptions: [], // 小区集合
  448. buildingOptions: [], // 楼栋集合
  449. unitOptions: [], // 单元集合
  450. houseOptions: [], // 房间集合
  451. // 按钮loading
  452. buttonLoading: false,
  453. buttonShow: false,
  454. // 遮罩层
  455. loading: true,
  456. // 选中数组
  457. ids: [],
  458. status: null,
  459. // 非单个禁用
  460. single: true,
  461. // 非多个禁用
  462. multiple: true,
  463. // 显示搜索条件
  464. showSearch: true,
  465. // 工程类型
  466. enginType: true,
  467. // 工程分类显示
  468. engineeType: true,
  469. // 总条数
  470. total: 0,
  471. currentNode: [],
  472. currentCollapses: [],
  473. // 开栓施工表格数据
  474. comprehensiveList: [],
  475. // 弹出层标题
  476. title: "",
  477. gc: true,
  478. nodeList: [],
  479. // 是否显示弹出层
  480. open: false,
  481. // 查询参数
  482. queryParams: {
  483. enginType: null,
  484. enginName: '', // 工程名称
  485. enginClassification: '', // 工程分类
  486. },
  487. nodeDetailVisible: false, // 施工信息dialog
  488. MaterVisible: false, // 用料信息dialog
  489. // 表单参数
  490. form: {
  491. isQualified:'',
  492. gasCylinderPic: [], // 燃气立杠图片
  493. pressureTestPic: [], // 气密测试图片
  494. gasMeterPic: [], // 燃气表图片
  495. rearPipePic: [], // 表后管图片
  496. gasChangePic: [], // 灶前阀门图片
  497. softPipePic: [], // 软管图片
  498. windproofCirclePic: [], // 灶具阀门图片
  499. gasEnvironmentPic: [], // 用气环境图片
  500. receiptFormPic: [], // 回执单图片
  501. files: [], // 附件
  502. pics: [], // 附件返回
  503. type: '', // 用来区分工业工程、市政工程
  504. enginName: '', // 工程名称
  505. enginType: '', // 工程类型
  506. constructUnit: '', // 建筑单位
  507. projectHead: '', // 项目负责人
  508. sceneHead: '', // 现场负责人
  509. designUnit: '', // 设计单位
  510. designHead: '', // 设计负责人
  511. designPhone: '', // 设计联系电话
  512. supervisionUnit: '', // 监理单位
  513. supervisionHead: '', // 监理负责人
  514. supervisionPhone: '', // 监理联系电话
  515. enginClassification: [], // 工程分类
  516. zEngineeringNodeBo: { // 工程节点
  517. type: '', // 节点类型
  518. zEngineeringInfoBo: { // 施工信息
  519. constructUser: '', // 施工人
  520. constructTime: '', // 施工时间
  521. zEngiineeringPhotoBoList: [], // 图片列表
  522. zEngineeringMaterialBo: [ // 用料对象
  523. {
  524. materialQuality: '', // 用料材质
  525. specifications: '', // 用料规格
  526. number: '' // 用料数量
  527. },
  528. ],
  529. },
  530. },
  531. },
  532. zEngineeringMaterialBo: [ // 用料对象
  533. {
  534. materialQuality: '', // 用料材质
  535. specifications: '', // 用料规格
  536. number: '' // 用料数量
  537. },
  538. ],
  539. zEngineeringNodeBo: { // 工程节点
  540. type: '', // 节点类型
  541. zEngineeringInfoBo: { // 施工信息
  542. constructUser: '', // 施工人
  543. constructTime: '', // 施工时间
  544. zEngiineeringPhotoBoList: [], // 图片列表
  545. }
  546. },
  547. EngineepipeType: [], // 工程类型
  548. materialQualityList: [], // 用料材质List
  549. specificationsList: [], // 用料规格List
  550. // 表单校验
  551. rules: {
  552. enginName: [
  553. {required: true, message: "工程名称不能为空", trigger: 'blur'}
  554. ],
  555. isAntiCorrosionPaint: [
  556. {required: true, message: "立杠是否刷涂防腐漆不能为空", trigger: 'blur'}
  557. ],
  558. isVerticalBarClamp: [
  559. {required: true, message: "是否有立杠卡子不能为空", trigger: 'blur'}
  560. ],
  561. verticalBarTest: [
  562. {required: true, message: "立杠气密测试不能为空", trigger: 'blur'}
  563. ],
  564. householdTest: [
  565. {required: true, message: "单户气密测试不能为空", trigger: "blur"}
  566. ],
  567. gasCylinderPic: [
  568. {required: true, message: "请上传燃气立杠照片", trigger: "blur"}
  569. ],
  570. // pressureTestPic: [
  571. // {required: true, message: "请上传气密测试照片", trigger: "blur"}
  572. // ],
  573. // gasMeterPic: [
  574. // {required: true, message: "请上传燃气表照片", trigger: "blur"}
  575. // ],
  576. // rearPipePic: [
  577. // {required: true, message: "请上传表后管照片", trigger: "blur"}
  578. // ],
  579. // gasChangePic: [
  580. // {required: true, message: "请上传灶前阀门照片", trigger: "blur"}
  581. // ],
  582. // softPipePic: [
  583. // {required: true, message: "请上传软管照片", trigger: "blur"}
  584. // ],
  585. // windproofCirclePic: [
  586. // {required: true, message: "请上传灶具阀门照片", trigger: "blur"}
  587. // ],
  588. // gasEnvironmentPic: [
  589. // {required: true, message: "请上传用气环境照片", trigger: "blur"}
  590. // ],
  591. // receiptFormPic: [
  592. // {required: true, message: "请上传回执单照片", trigger: "blur"}
  593. // ],
  594. },
  595. // 节点规则校验
  596. nodeRules: {
  597. constructTime: [
  598. {required: true, message: "施工时间不能为空", trigger: ['change', 'blur']}
  599. ],
  600. zEngiineeringPhotoBoList: [
  601. {required: true, message: "图片不能为空", trigger: ['change', 'blur'], validator: validatePicPass}
  602. ],
  603. },
  604. searchParams: {
  605. pageSize: 10,
  606. pageNum: 1,
  607. district: undefined,
  608. areaId: undefined,
  609. buildingId: undefined,
  610. unitId: undefined,
  611. houseId: undefined,
  612. },
  613. areaList: [],
  614. buildingList: [],
  615. unitList: [],
  616. houseList: [],
  617. currentType: null, // 附件组件类型 put修改 add新增
  618. };
  619. },
  620. created() {
  621. // 根据url获取type节点类型
  622. this.getType();
  623. },
  624. mounted() {
  625. // 获取材质
  626. // getEnginMaterialQualityList({enginType: this.$route.query.type == '1' ? '工业工程' : '市政工程'}).then(res => {
  627. getEnginMaterialQualityList({enginType: '开栓施工'}).then(res => {
  628. this.materialQualityList = res.data
  629. });
  630. },
  631. methods: {
  632. closeSon(){
  633. this.$emit('refresh',true)
  634. },
  635. // 当前所选行政区发生改变 查询当前小区集合
  636. districtHasChanged(district) {
  637. this.form.areaId = null
  638. this.form.buildingId = null
  639. this.form.unitId = null
  640. this.communityOptions = [];
  641. this.buildingOptions = [];
  642. this.unitOptions = [];
  643. this.houseOptions = [];
  644. getAreaList({district}).then(res => {
  645. this.communityOptions = res.data
  646. })
  647. },
  648. // 当前所选小区发生改变 查询当前楼栋集合
  649. communityHasChanged(areaId) {
  650. this.form.buildingId = null
  651. this.form.unitId = null
  652. this.buildingOptions = [];
  653. this.unitOptions = [];
  654. this.houseOptions = [];
  655. getBuildingList({areaId}).then(res => {
  656. this.buildingOptions = res.data
  657. })
  658. },
  659. buildingHasChanged(buildingId, areaId) {
  660. this.unitOptions = [];
  661. this.houseOptions = [];
  662. this.form.unitId = null
  663. getUnits(buildingId).then(res => {
  664. this.unitOptions = res.data
  665. })
  666. },
  667. unitHasChanged(unitId) {
  668. this.houseOptions = [];
  669. getHousesList({unitId}).then(res => {
  670. console.log(res)
  671. this.houseOptions = res.data
  672. })
  673. },
  674. getAreaList(district) {
  675. if (district === undefined || district == null || district === '')
  676. return
  677. getAreaList({district: district}).then(res => this.areaList = res.data)
  678. },
  679. getBuildingList1(areaId) {
  680. if (areaId === undefined || areaId == null || areaId === '')
  681. return
  682. getBuildingList({areaId: areaId}).then(res => this.buildingList = res.data)
  683. },
  684. getUnitList1(buildingId) {
  685. if (buildingId === undefined || buildingId == null || buildingId === '')
  686. return
  687. getUnits(buildingId).then(res => this.unitList = res.data)
  688. },
  689. getHouseList1(unitId) {
  690. if (unitId === undefined || unitId == null || unitId === '')
  691. return
  692. getHouses(unitId).then(res => this.houseList = res.data)
  693. },
  694. formatFormPic(picList){
  695. let list = []
  696. for (let i = 0; i < picList.length; i++) {
  697. list.push({
  698. picUrl:picList[i].url,
  699. fileName:picList[i].name
  700. })
  701. }
  702. return list
  703. // [{
  704. // picUrl:url,
  705. // fileName:name
  706. // }]
  707. },
  708. getgasCylinderPic(_,idx){
  709. // console.log('____===',_)
  710. this.form.gasCylinderPic = [...arguments][0][0].map(e=>e.url) || [];
  711. // this.form.gasCylinderPic = this.formatFormPic(_)
  712. },
  713. getpressureTestPic(_,idx){
  714. this.form.pressureTestPic = [...arguments][0][0].map(e=>e.url) || [];
  715. // this.form.pressureTestPic = this.formatFormPic(_)
  716. },
  717. getgasMeterPic(_,idx){
  718. this.form.gasMeterPic = [...arguments][0][0].map(e=>e.url) || [];
  719. },
  720. getrearPipePic(_,idx){
  721. this.form.rearPipePic = [...arguments][0][0].map(e=>e.url) || [];
  722. },
  723. getgasChangePic(_,idx){
  724. this.form.gasChangePic = [...arguments][0][0].map(e=>e.url) || [];
  725. },
  726. getsoftPipePic(_,idx){
  727. this.form.softPipePic = [...arguments][0][0].map(e=>e.url) || [];
  728. },
  729. getwindproofCirclePic(_,idx){
  730. this.form.windproofCirclePic = [...arguments][0][0].map(e=>e.url) || [];
  731. },
  732. getgasEnvironmentPic(_,idx){
  733. this.form.gasEnvironmentPic = [...arguments][0][0].map(e=>e.url) || [];
  734. },
  735. getreceiptFormPic(_,idx){
  736. this.form.receiptFormPic = [...arguments][0][0].map(e=>e.url) || [];
  737. },
  738. parseDict(dictValue, dictionary) {
  739. const dict = this.dict.type[dictionary]
  740. for(let i = 0; i < dict.length; i++){
  741. if(dict[i].value == dictValue){
  742. return dict[i].label
  743. }
  744. }
  745. },
  746. filesUpload(url){
  747. console.log('upload successfully')
  748. this.form.files = url
  749. this.$refs.form.validate()
  750. },
  751. validateState(rule, value, callback) {
  752. console.log(rule)
  753. console.log(value)
  754. return new Promise((resolve, reject) => {
  755. if (value !== null && value !== undefined && value !== '' && value !== 0) {
  756. resolve(true)
  757. } else {
  758. return callback(new Error('材质不能为空'))
  759. }
  760. })
  761. },
  762. validateSize(rule, value, callback) {
  763. console.log(value)
  764. return new Promise((resolve, reject) => {
  765. const value = this.zEngineeringMaterialBo[rule.index].specifications
  766. console.log(value)
  767. if (value !== null && value !== undefined && value !== '' && value !== 0) {
  768. resolve(true)
  769. } else {
  770. return callback(new Error('规格不能为空'))
  771. }
  772. })
  773. },
  774. validateNumber(rule, value, callback) {
  775. console.log(value)
  776. return new Promise((resolve, reject) => {
  777. const value = this.zEngineeringMaterialBo[rule.index].number
  778. // 至少有一个图片、一个用料信息、一个创建时间
  779. if (value) {
  780. resolve(true)
  781. } else {
  782. return reject(new Error('数量不能为空'))
  783. }
  784. })
  785. },
  786. updateNodeOption(value) {
  787. console.log(this.form);
  788. console.log('updateNodeOption=',value)
  789. console.log('this.form=',this.form)
  790. this.form.files = this.form.pics
  791. if(this.form.zEngineeringNodeBo && !this.form.zEngineeringNodeBo.zEngineeringInfoBo){
  792. this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
  793. }
  794. this.form.zEngineeringNodeBo.zEngineeringInfoBo.ironPipelineThickness = value[0].ironPipelineThickness
  795. UpdateEngineeGasOpening(this.form).then(res => {
  796. this.$modal.msgSuccess("修改成功");
  797. this.$refs.ConstructionDetails.dialogVisible = false
  798. })
  799. this.getList();
  800. },
  801. // 根据所选材质获取对应规格
  802. getEnginSpecificationsList(item, index) {
  803. this.zEngineeringMaterialBo[index].specifications = null
  804. // 根据材质ID获取材质规格
  805. getEnginSpecificationsList(item.materialQuality).then(res => {
  806. this.zEngineeringMaterialBo.specifications = res.data
  807. })
  808. },
  809. //添加用料信息
  810. async addzEngineeringMaterBo(row) {
  811. this.zEngineeringNodeBo = { // 工程节点
  812. type: '', // 节点类型
  813. zEngineeringInfoBo: { // 施工信息
  814. constructUser: '', // 施工人
  815. constructTime: '', // 施工时间
  816. zEngiineeringPhotoBoList: [], // 图片列表
  817. zEngineeringMaterialBo: []
  818. },
  819. }
  820. this.zEngineeringMaterialBo = [ // 用料对象
  821. {
  822. materialQuality: '', // 用料材质
  823. specifications: '', // 用料规格
  824. number: '' // 用料数量
  825. },
  826. ]
  827. const id = row.id
  828. putEngineeGasOpening(id).then(response => {
  829. this.loading = false;
  830. this.form = response.data
  831. this.form.zEngineeringNodeBo = []
  832. this.nodeDetailVisible = true;
  833. });
  834. },
  835. updateMaterBo() {
  836. this.form.zEngineeringNodeBo = []
  837. if (this.zEngineeringMaterialBo.length > 0) {
  838. let valid = true;
  839. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == null) {
  840. valid = false;
  841. }
  842. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == null) {
  843. valid = false;
  844. }
  845. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == null) {
  846. valid = false;
  847. }
  848. // if (this.form.enginClassification != [] && this.form.enginClassification.length>0) {
  849. // this.form.enginClassification = this.form.enginClassification.join(',');
  850. // }
  851. if (valid) {
  852. this.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
  853. this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
  854. this.zEngineeringNodeBo.type = this.$route.query.type
  855. this.$refs.nodeForm.validate(valid => {
  856. if (valid) {
  857. EditEngineeGasOpening(this.form).then(res => {
  858. this.nodeDetailVisible = false
  859. this.$modal.msgSuccess("新增成功");
  860. })
  861. }
  862. });
  863. } else {
  864. this.$message.warning('完善信息!')
  865. }
  866. }
  867. },
  868. //添加用料
  869. addzEngineeringMaterialBo() {
  870. if (this.zEngineeringMaterialBo.length > 0) {
  871. let valid = true;
  872. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == null) {
  873. valid = false;
  874. }
  875. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == null) {
  876. valid = false;
  877. }
  878. if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == null) {
  879. valid = false;
  880. }
  881. if (valid) {
  882. this.zEngineeringMaterialBo.push({
  883. materialQuality: '', // 用料材质
  884. specifications: '', // 用料规格
  885. number: '' // 用料数量
  886. })
  887. } else {
  888. this.$message.warning('完善信息!')
  889. }
  890. }
  891. },
  892. // 删除用料信息
  893. removezEngineeringMaterialBo(index) {
  894. this.zEngineeringMaterialBo.splice(index, 1)
  895. },
  896. // 根据url获取type节点类型
  897. getType() {
  898. const queryString = window.location.search;
  899. const params = new URLSearchParams(queryString);
  900. const type = params.get('type');
  901. if (type) {
  902. this.form.type = type;
  903. this.form.zEngineeringNodeBo.type = (type === '1' ? "工业工程" : "市政工程")
  904. this.EngineepipeType = (type === '1' ? [{value: '小微商服', label: '小微商服'}, {
  905. value: '新建工业',
  906. label: '新建工业'
  907. }, {value: '改造工业', label: '改造工业'}]
  908. : [{value: '气源', label: '气源'}, {value: '排迁', label: '排迁'}])
  909. }
  910. },
  911. // 新增顶管工程
  912. addNewPipe(data) {
  913. // console.log(this.form)
  914. this.$refs.enginPipe.openDialog({
  915. id: data.id,
  916. type: this.form.type
  917. }, 'add', data)
  918. },
  919. // 历史查询
  920. viewSource(e) {
  921. console.log('历史查询', e)
  922. console.log('历史查询e.enginType', e.enginType)
  923. this.currentId = e.id
  924. let val = e.enginType + "_" + e.enginClassification
  925. val = 'air_wall_node'
  926. // alert(val)
  927. getDicts(val).then(res => {
  928. let dict = []
  929. for (let i = 0; i < res.data.length; i++) {
  930. dict.push({
  931. "label": res.data[i].dictLabel,
  932. "value": res.data[i].dictValue,
  933. })
  934. }
  935. this.enginType = e.enginType
  936. // 此处有注释
  937. this.$refs.ConstructionDetails.open([{
  938. value: "历史数据",
  939. label: "历史数据"
  940. }], e.enginType,null,null,null,null,null,e.enginType)
  941. // this.$refs.ConstructionDetails.open(dict, this.form.type,null,null,null,null,null,this.form.type === '1' ? "工业工程" : "市政工程")
  942. this.status = 'read-only'
  943. })
  944. },
  945. // 修改施工信息
  946. updateviewSource(e) {
  947. let dicts = []
  948. let enginType = e.enginType
  949. const dict = this.dict.type.air_wall_node
  950. for(let i = 0; i < dict.length; i++){
  951. if(dict[i].value == enginType){
  952. dicts.push({
  953. value: dict[i].value,
  954. label: dict[i].label
  955. })
  956. }
  957. }
  958. // this.enginType = enginType
  959. this.currentId = e.id
  960. console.log("修改施工信息",e)
  961. console.log("修改施工信息 dict",dict)
  962. // this.$refs.ConstructionDetails.open(_, this.form.type,null,null,null,null,null,this.form.type === '1' ? "工业工程" : "市政工程")
  963. // let dicts = [{
  964. // value: "历史数据",
  965. // label: "历史数据"
  966. // }]
  967. this.$refs.ConstructionDetails.open(dicts, this.form.type,null,null,null,null,null,enginType)
  968. this.status = 'put'
  969. },
  970. viewNodeSource(e) {
  971. // alert('type='+e)
  972. if(!e)return
  973. console.log('todo: 获取数据', e)
  974. // todo: 获取数据
  975. QueryEngineeGasOpening({
  976. id: this.currentId,
  977. type: e
  978. }).then(res => {
  979. console.log("{id, type}",res)
  980. this.form = res.data
  981. try {
  982. this.currentCollapses = res.data.zEngineeringNodeBo.zEngineeringInfoBoList
  983. } catch (error) {
  984. this.currentCollapses = [];
  985. }
  986. })
  987. },
  988. nodeCancel() {
  989. this.nodeDetailVisible = false
  990. this.reset()
  991. },
  992. // 修改施工信息
  993. toNodeDetail() {
  994. // 根据材质id查询对应规格回显
  995. this.$refs["form"].validate(valid => {
  996. if (valid) {
  997. this.nodeDetailVisible = true
  998. }
  999. })
  1000. },
  1001. getUrl(url) {
  1002. this.zEngineeringNodeBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e => e.url) : [];
  1003. },
  1004. /** 查询开栓施工列表 */
  1005. getList() {
  1006. this.loading = true;
  1007. getEngineeGasOpeningList(this.searchParams).then(res => {
  1008. this.comprehensiveList = res.rows;
  1009. this.total = res.total;
  1010. this.loading = false;
  1011. });
  1012. },
  1013. // 取消按钮
  1014. cancel() {
  1015. this.open = false;
  1016. this.reset();
  1017. },
  1018. // 表单重置
  1019. reset() {
  1020. for (let formKey in this.form) {
  1021. this.form[formKey] = null
  1022. }
  1023. this.isQualified='';
  1024. this.form.gasCylinderPic = [] // 燃气立杠图片
  1025. this.form.pressureTestPic = [] // 气密测试图片
  1026. this.form.gasMeterPic = [] // 燃气表图片
  1027. this.form.rearPipePic = [] // 表后管图片
  1028. this.form.gasChangePic = [] // 灶前阀门图片
  1029. this.form.softPipePic = [] // 软管图片
  1030. this.form.windproofCirclePic = [] // 灶具阀门图片
  1031. this.form.gasEnvironmentPic = [] // 用气环境图片
  1032. this.form.receiptFormPic = [] // 回执单图片
  1033. this.form.zEngineeringNodeBo = {}
  1034. this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
  1035. this.zEngineeringMaterialBo = []
  1036. this.zEngineeringMaterialBo.push({
  1037. materialQuality: '', // 用料材质
  1038. specifications: '', // 用料规格
  1039. number: '' // 用料数量
  1040. })
  1041. this.getType()
  1042. },
  1043. /** 搜索按钮操作 */
  1044. handleQuery() {
  1045. this.searchParams.pageNum = 1;
  1046. this.getList();
  1047. },
  1048. /** 重置按钮操作 */
  1049. resetQuery() {
  1050. this.resetForm("searchParams");
  1051. this.handleQuery();
  1052. },
  1053. // 多选框选中数据
  1054. handleSelectionChange(selection) {
  1055. this.ids = selection.map(item => item.id)
  1056. this.single = selection.length !== 1
  1057. this.multiple = !selection.length
  1058. },
  1059. /** 新增按钮操作 */
  1060. handleAdd() {
  1061. this.reset();
  1062. this.gc = true
  1063. this.title = "新增开栓施工";
  1064. this.currentType = 'add'
  1065. this.open = true;
  1066. this.buttonLoading=false;
  1067. this.buttonShow=false;
  1068. },
  1069. removeFile(val) {
  1070. console.log(val)
  1071. console.log("我是文件")
  1072. this.form.files = val
  1073. },
  1074. /** 修改按钮操作 */
  1075. handleUpdate(row) {
  1076. this.buttonLoading=false;
  1077. this.buttonShow=true;
  1078. this.gc = false
  1079. this.loading = true;
  1080. this.reset();
  1081. const id = row.id || this.ids
  1082. putEngineeGasOpening(id).then(response => {
  1083. this.loading = false;
  1084. let newData = response.data
  1085. this.districtHasChanged(newData.district)
  1086. this.communityHasChanged(newData.areaId)
  1087. this.buildingHasChanged(newData.buildingId, newData.areaId)
  1088. this.unitHasChanged(newData.unitId)
  1089. this.form = response.data;
  1090. this.title = "审核";
  1091. this.currentType = 'put'
  1092. this.open = true;
  1093. });
  1094. },
  1095. /** 修改按钮操作 */
  1096. handleview(row) {
  1097. this.open = true;
  1098. this.$nextTick(()=>{
  1099. this.status='read-only'
  1100. })
  1101. this.reset();
  1102. let newData = row
  1103. this.districtHasChanged(newData.district)
  1104. this.communityHasChanged(newData.areaId)
  1105. this.buildingHasChanged(newData.buildingId, newData.areaId)
  1106. this.unitHasChanged(newData.unitId)
  1107. this.form = newData;
  1108. this.buttonLoading = true;
  1109. this.title = "查看开栓施工";
  1110. },
  1111. /** 提交按钮 */
  1112. submitForm() {
  1113. this.form.zEngineeringNodeBo = null
  1114. if (this.zEngineeringNodeBo.type !== '') {
  1115. this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
  1116. this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
  1117. }
  1118. // if (this.form.enginClassification != [] && this.form.enginClassification.length>0) {
  1119. // this.form.enginClassification = this.form.enginClassification.join(',');
  1120. // }
  1121. this.$refs["form"].validate(valid => {
  1122. if (valid) {
  1123. // this.form.files = this.$refs.obsFileUpload.fileList;
  1124. // if (this.form.files.length === 0) {
  1125. // this.$message.warning('必须上传附件!')
  1126. // return
  1127. // }
  1128. // alert(this.form.gasCylinderPic)
  1129. console.log('this.form.gasCylinderPic=',this.form)
  1130. if (this.form.gasCylinderPic.length === 0) {
  1131. this.$message.warning('必须上传燃气立杠照片!')
  1132. return
  1133. }
  1134. if (this.form.pressureTestPic.length === 0) {
  1135. this.$message.warning('必须上传气密测试照片!')
  1136. return
  1137. }
  1138. if (this.form.id == null) {
  1139. addEngineeEngineeGasOpening(this.form).then(res => {
  1140. this.$modal.msgSuccess("新增成功");
  1141. this.open = false;
  1142. this.nodeDetailVisible = false
  1143. this.getList();
  1144. })
  1145. } else {
  1146. EditEngineeGasOpening(this.form).then(res => {
  1147. this.$modal.msgSuccess("修改成功");
  1148. this.open = false;
  1149. this.nodeDetailVisible = false
  1150. this.getList();
  1151. })
  1152. }
  1153. }
  1154. });
  1155. },
  1156. /** 删除按钮操作 */
  1157. handleDelete(row) {
  1158. const ids = row.id || this.ids;
  1159. this.$modal.confirm('是否确认删除所选择的数据项?').then(() => {
  1160. this.loading = true;
  1161. return DelEngineeGasOpening(ids);
  1162. }).then(() => {
  1163. this.loading = false;
  1164. this.getList();
  1165. this.$modal.msgSuccess("删除成功");
  1166. }).catch(() => {
  1167. }).finally(() => {
  1168. this.loading = false;
  1169. });
  1170. },
  1171. /** 导出按钮操作 */
  1172. handleExport() {
  1173. this.download('zdsz/engineeringIndustry/export', {
  1174. ...this.queryParams
  1175. }, `comprehensive_${new Date().getTime()}.xlsx`)
  1176. }
  1177. }
  1178. };
  1179. </script>
  1180. <style lang="scss" scoped>
  1181. ::v-deep .appendElDialog {
  1182. width: 70%;
  1183. height: 820px;
  1184. .el-dialog__body {
  1185. height: 85%;
  1186. }
  1187. .el-form-item {
  1188. margin-bottom: 22px;
  1189. width: 44%;
  1190. display: inline-block;
  1191. }
  1192. .el-form-item:nth-child(2n+2) {
  1193. margin-left: 5%;
  1194. }
  1195. .el-form-item:not(:nth-child(1):nth-child(2)) {
  1196. margin-top: 0.5%;
  1197. }
  1198. .remark_input {
  1199. .el-textarea__inner {
  1200. width: 238%;
  1201. height: 190px;
  1202. }
  1203. }
  1204. }
  1205. ::v-deep .appendElNodeDialog {
  1206. // width: 70%;
  1207. height: 80%;
  1208. .el-select {
  1209. width: 70%
  1210. }
  1211. .el-dialog__body {
  1212. height: 85%;
  1213. }
  1214. .el-form-item {
  1215. margin-bottom: 22px;
  1216. width: 100%;
  1217. display: inline-block;
  1218. }
  1219. .el-form-item:not(:nth-child(1):nth-child(2)) {
  1220. margin-top: 0.5%;
  1221. }
  1222. }
  1223. </style>