index.vue 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603
  1. <!--
  2. *@description: 工程历史详情
  3. *@author: yh Fu
  4. *@date: 2024-1-8 10:04:23
  5. *@version: V1.0.5
  6. -->
  7. <template>
  8. <div style="width: 100%;height: 100%;">
  9. <el-dialog
  10. :visible.sync="dialogVisible"
  11. :title="titleName"
  12. width="60%"
  13. append-to-body
  14. custom-class="ConstructionDetailsDialog">
  15. <el-tabs type="card" v-model="activeNames" @tab-click="viewSource" class="projectTabs">
  16. <el-tab-pane
  17. :label="e.label"
  18. :name="e.value"
  19. v-for="(e,idx) in currentDicts"
  20. :key="idx"
  21. >
  22. <el-checkbox-group v-model="checkList" >
  23. <el-collapse
  24. class="rmOldPie"
  25. v-for="(e,idx) in currentCollapses"
  26. :key="idx"
  27. >
  28. <el-collapse-item :name="idx">
  29. <template slot="title">
  30. <div style="display: flex;width: 100%;height: 100%;">
  31. <!-- <div-->
  32. <!-- style="width: 15px;height: 15px;margin: auto 10px;border-radius: 73%;background-color: #a3d3ff;box-shadow: 1px 1px rgb(131 131 131 / 62%);">-->
  33. <!-- </div>-->
  34. <el-checkbox :label="e.id" @change="handleCheckedCitiesChange">
  35. <h2 style="margin-left: 1%;font-weight: 700;">{{ e.updateTime }}</h2>
  36. </el-checkbox>
  37. <h2 :style="'margin-left: 20%;font-weight: 700;'+ (e.state == '1'? 'color: #1ab394':'') "> {{e.state=='0'?"该施工信息审核未通过":e.state=='1'?"该施工信息审核通过":""}}</h2>
  38. </div>
  39. </template>
  40. <div class="personInfo">
  41. <!-- <span>负责人:{{ e.headName }} </span>-->
  42. <!-- <span>负责人电话:{{-->
  43. <!-- e.headPhone === undefined || e.headPhone === null || e.headPhone === '' ? '无' : e.headPhone-->
  44. <!-- }}</span>-->
  45. <span>施工人:{{ userNames[idx].nickName }}</span>
  46. <span>施工人电话:{{ userNames[idx].phonenumber }}</span>
  47. </div>
  48. <hr>
  49. <!--带气封堵施工 start-->
  50. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe' || engineType==='iron_air' || enginClassification == 'pressure_regulating'">
  51. <el-form :model="nodeInfo" class="nodeForm materialForm">
  52. <el-row style="width: 100%;"
  53. v-show="enginClassification != 'pressure_regulating'"
  54. >
  55. <el-col :span="17">
  56. <el-form-item
  57. :class="'labelWidth'"
  58. label="工程名称"
  59. label-width="95px"
  60. >
  61. <div class="block" style="display: inline-block; margin-right: 20px;">
  62. <!--{{ kind }}-->
  63. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">工程名称:{{ kind }}</h4>-->
  64. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">工程名称:{{ kind }}</h4>-->
  65. <el-input v-model="kind" placeholder="请输入工程名称" style="width: 100%" :disabled="true"> </el-input>
  66. </div>
  67. </el-form-item>
  68. </el-col>
  69. </el-row>
  70. <el-row style="width: 100%;"
  71. v-show="enginClassification != 'pressure_regulating'"
  72. >
  73. <el-col :span="17">
  74. <el-form-item
  75. :class="'labelWidth'"
  76. label="工程地点"
  77. label-width="95px"
  78. >
  79. <div class="block" style="display: inline-block; margin-right: 20px;">
  80. <el-input v-model="e.constructAddre" placeholder="请输入工程地点" style="width: 100%" :disabled="status == 'read-only'"> </el-input>
  81. </div>
  82. </el-form-item>
  83. </el-col>
  84. </el-row>
  85. <el-form-item
  86. style="width: 100%;"
  87. v-show="enginClassification != 'pressure_regulating'"
  88. :class="'labelWidth'"
  89. label="作业方式"
  90. label-width="95px"
  91. >
  92. <div class="block" style="display: inline-block; margin-right: 20px;">
  93. <el-input v-model="e.segmentedCompressionQualified" placeholder="请输入作业方式" style="width: 100%" :disabled="status == 'read-only'"> </el-input>
  94. </div>
  95. </el-form-item>
  96. <el-form-item
  97. v-show="enginClassification != 'pressure_regulating'"
  98. style="width: 100%;"
  99. :class="'labelWidth'"
  100. label="管道压力"
  101. label-width="95px"
  102. >
  103. <div class="block" style="display: inline-block; margin-right: 20px;">
  104. <el-input v-model="e.constructAccordingDrawings" placeholder="请输入管道压力" style="width: 100%" :disabled="status == 'read-only'"> </el-input>
  105. </div>
  106. </el-form-item>
  107. <el-form-item
  108. :class="'labelWidth'"
  109. label="施工内容"
  110. label-width="95px"
  111. v-if="enginClassification == 'pressure_regulating'"
  112. >
  113. <div class="block" style="display: inline-block; margin-right: 20px;">
  114. <el-input type="textarea" :rows="3" v-model="e.remark" placeholder="请输入施工内容" style="width: 100%" :disabled="status == 'read-only'"> </el-input>
  115. </div>
  116. </el-form-item>
  117. </el-form>
  118. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">工程名称:{{ kind }}</h4>-->
  119. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">地点:{{ e.constructAddre }}</h4>-->
  120. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">作业方式:{{ e.segmentedCompressionQualified }}</h4>-->
  121. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">施工内容:{{ e.remark }}</h4>-->
  122. <!--<h4 style="width: 995px;font-weight: 600;text-align: left;text-indent: 25px;">管道压力:{{ e.constructAccordingDrawings }}</h4>-->
  123. <!--<el-form class="nodeForm materialForm">-->
  124. <!--<el-form-item-->
  125. <!--:prop="e.headName + ''"-->
  126. <!--:class="'labelWidth'"-->
  127. <!--label="工程名称"-->
  128. <!--label-width="95px"-->
  129. <!--&gt;-->
  130. <!--<div class="block" style="display: inline-block; margin-right: 20px;">-->
  131. <!--<el-input v-model="e.headName" placeholder="请输入工程名称" style="width: 100%" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''" max="999999999" :disabled="status == 'read-only'"> </el-input>-->
  132. <!--</div>-->
  133. <!--</el-form-item>-->
  134. <!--</el-form>-->
  135. </div>
  136. <!--带气封堵施工 end-->
  137. <!-- 用料明细 -->
  138. <div
  139. v-for="(i,index) in e.zEngineeringMaterialBo || [] "
  140. :key="index"
  141. >
  142. <el-form :model="nodeInfo" class="nodeForm materialForm">
  143. <el-form-item
  144. :prop="i.materialQuality"
  145. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  146. :label="activeNames == '阀管' ? '灶具管厂家': '材质'"
  147. v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating'))"
  148. label-width="95px"
  149. >
  150. <el-select v-model="i.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(i, index,idx)" :disabled="status == 'read-only' ">
  151. <el-option
  152. v-for="e in (activeNames == '阀管' ?materialQualityList_zjg:materialQualityList)"
  153. :key="e.id"
  154. :label="e.name"
  155. :value="e.id"
  156. ></el-option>
  157. </el-select>
  158. </el-form-item>
  159. <el-form-item
  160. :prop="i.specifications"
  161. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  162. label="规格"
  163. v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating'))"
  164. label-width="95px"
  165. >
  166. <el-select v-model="i.specifications" placeholder="请选择规格" style="width: 100%" :disabled="status == 'read-only' ">
  167. <!-- <el-option
  168. v-for="e in specificationsList"
  169. :key="e.id"
  170. :label="e.name"
  171. :value="e.id"
  172. ></el-option> -->
  173. <el-option
  174. v-for="e in corrosionLevelListAll.filter(e => e.materId == i.materialQuality)"
  175. :key="e.id"
  176. :label="e.name"
  177. :value="e.id"
  178. ></el-option>
  179. </el-select>
  180. </el-form-item>
  181. <el-form-item
  182. v-if="currentDicts.some(item=>item.label==='底腿')||(enginClassification != null && !enginClassification.includes('pressure_regulating'))"
  183. :prop="i.remark + ''"
  184. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  185. label="施工内容"
  186. v-show="currentDicts.some(item=>item.label==='底腿')||node==='调压柜安装'||(enginClassification != null && enginClassification.includes('pressure_regulating'))"
  187. label-width="95px"
  188. >
  189. <div class="block" style="display: inline-block; margin-right: 20px;">
  190. <el-input v-model="i.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100" type="textarea" :disabled="status == 'read-only'"></el-input>
  191. </div>
  192. </el-form-item>
  193. <el-form-item
  194. v-if="currentDicts.some(item=>item.label==='底腿')"
  195. :prop="e.constructAddre + ''"
  196. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  197. label="位置"
  198. v-show="currentDicts.some(item=>item.label==='底腿')"
  199. label-width="95px"
  200. >
  201. <div class="block" style="display: inline-block; margin-right: 20px;">
  202. <el-select v-model="e.constructAddre" style="width: 100%;" :disabled="status == 'read-only'">
  203. <el-option
  204. v-for="e in dict.type.construct_addre"
  205. :key="e.value"
  206. :label="e.label"
  207. :value="e.value"
  208. ></el-option>
  209. </el-select>
  210. </div>
  211. </el-form-item>
  212. <el-form-item
  213. v-if="currentDicts.some(item=>item.label==='底腿')"
  214. :prop="i.remark + ''"
  215. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  216. label="第"
  217. v-show="i.remark != null"
  218. label-width="95px"
  219. >
  220. <div class="block" style="display: inline-block; margin-right: 20px;">
  221. <el-input v-model="i.remark" placeholder="请输入具体位置" style="width: 90%;" maxlength="255" type="number" :disabled="status == 'read-only'"/><span style="font-weight:bold;">根</span>
  222. </div>
  223. </el-form-item>
  224. <el-form-item
  225. v-if="!currentDicts.some(item=>item.label==='底腿')"
  226. :prop="i.number + ''"
  227. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  228. label="数量"
  229. v-show="i.number != null || (enginClassification != null && !enginClassification.includes('pressure_regulating'))"
  230. label-width="95px"
  231. >
  232. <div class="block" style="display: inline-block; margin-right: 20px;">
  233. <el-input v-model="i.number" placeholder="请输入数量" style="width: 100%" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''" max="999999999" :disabled="status == 'read-only'"> </el-input>
  234. </div>
  235. </el-form-item>
  236. <el-form-item
  237. :prop="e.remark + ''"
  238. :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
  239. label="描述"
  240. v-show="((e.remark != null||!currentDicts.some(item=>item.label==='底腿')) && (enginClassification!='pressure_regulating'))"
  241. >
  242. <div class="block" style="display: inline-block; margin-right: 20px;">
  243. <el-input v-model="e.remark" placeholder="请输入描述" style="width: 100%" maxlength="100" :disabled="status == 'read-only'"></el-input>
  244. </div>
  245. </el-form-item>
  246. <el-form-item
  247. :prop="i.corrosionLevel"
  248. label="腐蚀等级"
  249. v-show="i.corrosionLevel != null"
  250. label-width="95px"
  251. >
  252. <!-- :rules="{required: true, message: '请输入材质', trigger: 'blur'}"-->
  253. <!-- <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>-->
  254. <el-select v-model="i.corrosionLevel" placeholder="请选择腐蚀等级" style="width: 100%" :disabled="status == 'read-only' ">
  255. <el-option
  256. v-for="e in materialQualityList"
  257. :key="e.id"
  258. :label="e.name"
  259. :value="e.id"
  260. ></el-option>
  261. </el-select>
  262. </el-form-item>
  263. <el-form-item
  264. :prop="i.visitType"
  265. label="上门类型"
  266. v-show="i.visitType != null"
  267. label-width="95px"
  268. >
  269. <!-- :rules="{required: true, message: '请输入材质', trigger: 'blur'}"-->
  270. <!-- <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>-->
  271. <el-select v-model="i.visitType" placeholder="请选择上门类型" style="width: 100%" :disabled="status == 'read-only' ">
  272. <el-option
  273. v-for="e in dict.type.visit_type"
  274. :key="e.value"
  275. :label="e.label"
  276. :value="e.value"
  277. ></el-option>
  278. </el-select>
  279. </el-form-item>
  280. <el-form-item
  281. :prop="i.selfClosingValveType"
  282. label="自闭阀类型"
  283. v-show="i.selfClosingValveType != null"
  284. label-width="95px"
  285. >
  286. <!-- :rules="{required: true, message: '请输入材质', trigger: 'blur'}"-->
  287. <!-- <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>-->
  288. <el-select v-model="i.selfClosingValveType" placeholder="请选择自闭阀类型" style="width: 100%" :disabled="status == 'read-only' ">
  289. <el-option
  290. v-for="e in materialQualityList_zbf"
  291. :key="e.id"
  292. :label="e.name"
  293. :value="e.id"
  294. ></el-option>
  295. </el-select>
  296. </el-form-item>
  297. <el-form-item
  298. :prop="i.brand"
  299. label="品牌"
  300. v-show="i.brand != null"
  301. label-width="95px"
  302. >
  303. <!-- :rules="{required: true, message: '请输入材质', trigger: 'blur'}"-->
  304. <!-- <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>-->
  305. <el-select v-model="i.brand" placeholder="请选择品牌" style="width: 100%" :disabled="status == 'read-only' ">
  306. <el-option
  307. v-for="e in materialQualityList"
  308. :key="e.id"
  309. :label="e.name"
  310. :value="e.id"
  311. ></el-option>
  312. </el-select>
  313. </el-form-item>
  314. </el-form>
  315. <!-- <el-input size="mini" v-if="i.brand" style="width: 80%" v-model="i.brand" placeholder="请输入品牌">
  316. <template slot="prepend">品牌</template>
  317. </el-input>
  318. <el-input v-if="i.visitType" size="mini" v-model="i.visitType" placeholder="请输入品牌">
  319. <template slot="prepend">上门类型</template>
  320. </el-input>
  321. <el-input size="mini" v-if="i.corrosionLevel" v-model="i.corrosionLevel" placeholder="请输入品牌">
  322. <template slot="prepend">腐蚀等级</template>
  323. </el-input>
  324. <el-input size="mini" v-if="i.selfClosingValveType" v-model="i.selfClosingValveType"
  325. placeholder="请输入品牌">
  326. <template slot="prepend">自闭阀类型</template>
  327. </el-input> -->
  328. </div>
  329. <!-- <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage"> -->
  330. <div style="display: flex;width: 100%;height: 100%;" v-if="
  331. !(currentDicts.some(item=>item.label==='底腿'))&&
  332. !(node==='下沟')&&
  333. !(node==='iron_air')&&
  334. !(node==='pe')&&
  335. !(node=='回填')&&
  336. !(node=='trench_construction')&&
  337. !(node=='underditch_construction')
  338. "
  339. >
  340. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">图片</h3>
  341. <ObsImageUpload
  342. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  343. ref="obsImageUpload"
  344. :limit="11"
  345. :fileType="['png', 'jpg', 'jpeg']"
  346. @input="getUrl(arguments,idx)"
  347. :value="e.zEngiineeringPhotoBoList"
  348. :disabled="status == 'read-only' "
  349. ></ObsImageUpload>
  350. </div>
  351. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='trench_construction'">
  352. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">焊接照片</h3>
  353. <ObsImageUpload
  354. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  355. ref="obsImageUpload"
  356. :limit="11"
  357. :fileType="['png', 'jpg', 'jpeg']"
  358. @input="getwelding(arguments,idx)"
  359. :value="e.welding"
  360. :disabled="status == 'read-only' "
  361. ></ObsImageUpload>
  362. </div>
  363. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='trench_construction'">
  364. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防腐照片</h3>
  365. <ObsImageUpload
  366. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  367. ref="obsImageUpload"
  368. :limit="11"
  369. :fileType="['png', 'jpg', 'jpeg']"
  370. @input="getaczoiling(arguments,idx)"
  371. :value="e.aczoiling"
  372. :disabled="status == 'read-only' "
  373. ></ObsImageUpload>
  374. </div>
  375. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='underditch_construction'">
  376. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">管道下沟</h3>
  377. <ObsImageUpload
  378. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  379. ref="obsImageUpload"
  380. :limit="11"
  381. :fileType="['png', 'jpg', 'jpeg']"
  382. @input="getpiping(arguments,idx)"
  383. :value="e.piping"
  384. :disabled="status == 'read-only' "
  385. ></ObsImageUpload>
  386. </div>
  387. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='underditch_construction'">
  388. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">警示铺设</h3>
  389. <ObsImageUpload
  390. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  391. ref="obsImageUpload"
  392. :limit="11"
  393. :fileType="['png', 'jpg', 'jpeg']"
  394. @input="getwarning(arguments,idx)"
  395. :value="e.warning"
  396. :disabled="status == 'read-only' "
  397. ></ObsImageUpload>
  398. </div>
  399. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='underditch_construction'">
  400. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">回填照片</h3>
  401. <ObsImageUpload
  402. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  403. ref="obsImageUpload"
  404. :limit="11"
  405. :fileType="['png', 'jpg', 'jpeg']"
  406. @input="getbackfilling(arguments,idx)"
  407. :value="e.backfilling"
  408. :disabled="status == 'read-only' "
  409. ></ObsImageUpload>
  410. </div>
  411. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  412. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">鞍型焊接</h3>
  413. <ObsImageUpload
  414. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  415. ref="obsImageUpload"
  416. :limit="11"
  417. :fileType="['png', 'jpg', 'jpeg']"
  418. @input="getpeSaddleWelding(arguments,idx)"
  419. :value="e.peSaddleWelding"
  420. :disabled="status == 'read-only' "
  421. ></ObsImageUpload>
  422. </div>
  423. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  424. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">气密实验</h3>
  425. <ObsImageUpload
  426. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  427. ref="obsImageUpload"
  428. :limit="11"
  429. :fileType="['png', 'jpg', 'jpeg']"
  430. @input="getpeAirtightTest(arguments,idx)"
  431. :value="e.peAirtightTest"
  432. :disabled="status == 'read-only' "
  433. ></ObsImageUpload>
  434. </div>
  435. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  436. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">开孔</h3>
  437. <ObsImageUpload
  438. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  439. ref="obsImageUpload"
  440. :limit="11"
  441. :fileType="['png', 'jpg', 'jpeg']"
  442. @input="getpeHolesOpening(arguments,idx)"
  443. :value="e.peHolesOpening"
  444. :disabled="status == 'read-only' "
  445. ></ObsImageUpload>
  446. </div>
  447. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  448. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">清扫</h3>
  449. <ObsImageUpload
  450. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  451. ref="obsImageUpload"
  452. :limit="11"
  453. :fileType="['png', 'jpg', 'jpeg']"
  454. @input="getpeCleaning(arguments,idx)"
  455. :value="e.peCleaning"
  456. :disabled="status == 'read-only' "
  457. ></ObsImageUpload>
  458. </div>
  459. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  460. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">封堵</h3>
  461. <ObsImageUpload
  462. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  463. ref="obsImageUpload"
  464. :limit="11"
  465. :fileType="['png', 'jpg', 'jpeg']"
  466. @input="getpePlugging(arguments,idx)"
  467. :value="e.pePlugging"
  468. :disabled="status == 'read-only' "
  469. ></ObsImageUpload>
  470. </div>
  471. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  472. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">碰口作业</h3>
  473. <ObsImageUpload
  474. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  475. ref="obsImageUpload"
  476. :limit="11"
  477. :fileType="['png', 'jpg', 'jpeg']"
  478. @input="getpeCollisionOperating(arguments,idx)"
  479. :value="e.peCollisionOperating"
  480. :disabled="status == 'read-only' "
  481. ></ObsImageUpload>
  482. </div>
  483. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  484. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">通气捡漏</h3>
  485. <ObsImageUpload
  486. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  487. ref="obsImageUpload"
  488. :limit="11"
  489. :fileType="['png', 'jpg', 'jpeg']"
  490. @input="getpeAirrecovering(arguments,idx)"
  491. :value="e.peAirrecovering"
  492. :disabled="status == 'read-only' "
  493. ></ObsImageUpload>
  494. </div>
  495. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='pe'">
  496. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">作业完成</h3>
  497. <ObsImageUpload
  498. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  499. ref="obsImageUpload"
  500. :limit="11"
  501. :fileType="['png', 'jpg', 'jpeg']"
  502. @input="getpeHomeworkDone(arguments,idx)"
  503. :value="e.peHomeworkDone"
  504. :disabled="status == 'read-only' "
  505. ></ObsImageUpload>
  506. </div>
  507. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  508. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">管道壁厚</h3>
  509. <ObsImageUpload
  510. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  511. ref="obsImageUpload"
  512. :limit="11"
  513. :fileType="['png', 'jpg', 'jpeg']"
  514. @input="getironPipelineThickness(arguments,idx)"
  515. :value="e.ironPipelineThickness"
  516. :disabled="status == 'read-only'"
  517. ></ObsImageUpload>
  518. </div>
  519. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  520. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">焊接四通</h3>
  521. <ObsImageUpload
  522. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  523. ref="obsImageUpload"
  524. :limit="11"
  525. :fileType="['png', 'jpg', 'jpeg']"
  526. @input="getiron4Welding(arguments,idx)"
  527. :value="e.iron4Welding"
  528. :disabled="status == 'read-only'"
  529. ></ObsImageUpload>
  530. </div>
  531. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  532. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">焊接旁通</h3>
  533. <ObsImageUpload
  534. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  535. ref="obsImageUpload"
  536. :limit="11"
  537. :fileType="['png', 'jpg', 'jpeg']"
  538. @input="getironBypassWelding(arguments,idx)"
  539. :value="e.ironBypassWelding"
  540. :disabled="status == 'read-only'"
  541. ></ObsImageUpload>
  542. </div>
  543. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  544. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">开孔</h3>
  545. <ObsImageUpload
  546. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  547. ref="obsImageUpload"
  548. :limit="11"
  549. :fileType="['png', 'jpg', 'jpeg']"
  550. @input="getironHolesOpening(arguments,idx)"
  551. :value="e.ironHolesOpening"
  552. :disabled="status == 'read-only'"
  553. ></ObsImageUpload>
  554. </div>
  555. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  556. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">封堵</h3>
  557. <ObsImageUpload
  558. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  559. ref="obsImageUpload"
  560. :limit="11"
  561. :fileType="['png', 'jpg', 'jpeg']"
  562. @input="getironCleaning(arguments,idx)"
  563. :value="e.ironCleaning"
  564. :disabled="status == 'read-only'"
  565. ></ObsImageUpload>
  566. </div>
  567. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  568. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">氮气吹扫</h3>
  569. <ObsImageUpload
  570. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  571. ref="obsImageUpload"
  572. :limit="11"
  573. :fileType="['png', 'jpg', 'jpeg']"
  574. @input="getironNitrogenPurging(arguments,idx)"
  575. :value="e.ironNitrogenPurging"
  576. :disabled="status == 'read-only'"
  577. ></ObsImageUpload>
  578. </div>
  579. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  580. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">管道置换</h3>
  581. <ObsImageUpload
  582. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  583. ref="obsImageUpload"
  584. :limit="11"
  585. :fileType="['png', 'jpg', 'jpeg']"
  586. @input="getironPipelineReplacing(arguments,idx)"
  587. :value="e.ironPipelineReplacing"
  588. :disabled="status == 'read-only'"
  589. ></ObsImageUpload>
  590. </div>
  591. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  592. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">下堵</h3>
  593. <ObsImageUpload
  594. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  595. ref="obsImageUpload"
  596. :limit="11"
  597. :fileType="['png', 'jpg', 'jpeg']"
  598. @input="getironLowerEndCap(arguments,idx)"
  599. :value="e.ironLowerEndCap"
  600. :disabled="status == 'read-only'"
  601. ></ObsImageUpload>
  602. </div>
  603. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  604. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">四通防腐</h3>
  605. <ObsImageUpload
  606. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  607. ref="obsImageUpload"
  608. :limit="11"
  609. :fileType="['png', 'jpg', 'jpeg']"
  610. @input="getiron4Aczoiling(arguments,idx)"
  611. :value="e.iron4Aczoiling"
  612. :disabled="status == 'read-only'"
  613. ></ObsImageUpload>
  614. </div>
  615. <div style="display: flex;width: 100%;height: 100%;" v-if="engineType==='iron_air'">
  616. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">作业完成</h3>
  617. <ObsImageUpload
  618. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  619. ref="obsImageUpload"
  620. :limit="11"
  621. :fileType="['png', 'jpg', 'jpeg']"
  622. @input="getironHomeworkDone(arguments,idx)"
  623. :value="e.ironHomeworkDone"
  624. :disabled="status == 'read-only'"
  625. ></ObsImageUpload>
  626. </div>
  627. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
  628. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">管上皮深度测量照片</h3>
  629. <ObsImageUpload
  630. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  631. ref="obsImageUpload"
  632. :limit="11"
  633. :fileType="['png', 'jpg', 'jpeg']"
  634. @input="getductalEpitheliumUrl(arguments,idx)"
  635. :value="e.ductalEpithelium"
  636. :disabled="status == 'read-only' "
  637. ></ObsImageUpload>
  638. </div>
  639. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
  640. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">管沟远景照片</h3>
  641. <ObsImageUpload
  642. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  643. ref="obsImageUpload"
  644. :limit="11"
  645. :fileType="['png', 'jpg', 'jpeg']"
  646. @input="gettrenchProspectUrl(arguments,idx)"
  647. :value="e.trenchProspect"
  648. :disabled="status == 'read-only' "
  649. ></ObsImageUpload>
  650. </div>
  651. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
  652. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">视频</h3>
  653. <ObsVideoUpload
  654. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  655. ref="obsImageUpload"
  656. :limit="11"
  657. :fileType="['mp4']"
  658. @input="getVideoUrl(arguments,idx)"
  659. :value="e.video"
  660. :disabled="status == 'read-only' "
  661. ></ObsVideoUpload>
  662. </div>
  663. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
  664. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">管道施工记录</h3>
  665. <ObsImageUpload
  666. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  667. ref="obsImageUpload"
  668. :limit="11"
  669. :fileType="['png', 'jpg', 'jpeg']"
  670. @input="getconstructionRecordsUrl(arguments,idx)"
  671. :value="e.constructionRecords"
  672. :disabled="status == 'read-only' "
  673. ></ObsImageUpload>
  674. </div>
  675. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='回填'||node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
  676. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">石粉回填照片</h3>
  677. <ObsImageUpload
  678. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  679. ref="obsImageUpload"
  680. :limit="11"
  681. :fileType="['png', 'jpg', 'jpeg']"
  682. @input="getstonePowderUrl(arguments,idx)"
  683. :value="e.stonePowder"
  684. :disabled="status == 'read-only' "
  685. ></ObsImageUpload>
  686. </div>
  687. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='回填'">
  688. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">警示带铺设</h3>
  689. <ObsImageUpload
  690. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  691. ref="obsImageUpload"
  692. :limit="11"
  693. :fileType="['png', 'jpg', 'jpeg']"
  694. @input="getwarningtTapeUrl(arguments,idx)"
  695. :value="e.warningtTape"
  696. :disabled="status == 'read-only' "
  697. ></ObsImageUpload>
  698. </div>
  699. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='回填'">
  700. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">回填后</h3>
  701. <ObsImageUpload
  702. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  703. ref="obsImageUpload"
  704. :limit="11"
  705. :fileType="['png', 'jpg', 'jpeg']"
  706. @input="getphotosAfterUrl(arguments,idx)"
  707. :value="e.photosAfter"
  708. :disabled="status == 'read-only' "
  709. ></ObsImageUpload>
  710. </div>
  711. <div style="display: flex;width: 100%;height: 100%;" v-if="currentDicts.some(item=>item.label==='底腿')">
  712. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 30px;">沟上部分</h3>
  713. <ObsImageUpload
  714. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  715. ref="obsImageUpload"
  716. :limit="11"
  717. :fileType="['png', 'jpg', 'jpeg']"
  718. @input="getonTheDitchUrl(arguments,idx)"
  719. :value="e.onTheDitch"
  720. :disabled="status == 'read-only' "
  721. ></ObsImageUpload>
  722. </div>
  723. <div style="display: flex;width: 100%;height: 100%;" v-if="currentDicts.some(item=>item.label==='底腿')">
  724. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">开挖前</h3>
  725. <ObsImageUpload
  726. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  727. ref="obsImageUpload"
  728. :limit="11"
  729. :fileType="['png', 'jpg', 'jpeg']"
  730. @input="getbeforeBottomUrl(arguments,idx)"
  731. :value="e.beforeBottom"
  732. :disabled="status == 'read-only' "
  733. ></ObsImageUpload>
  734. </div>
  735. <div style="display: flex;width: 100%;height: 100%;" v-if="currentDicts.some(item=>item.label==='底腿')">
  736. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">回填</h3>
  737. <ObsImageUpload
  738. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  739. ref="obsImageUpload"
  740. :limit="11"
  741. :fileType="['png', 'jpg', 'jpeg']"
  742. @input="getlegBackfillingUrl(arguments,idx)"
  743. :value="e.legBackfilling"
  744. :disabled="status == 'read-only' "
  745. ></ObsImageUpload>
  746. </div>
  747. <div style="display: flex;width: 100%;height: 100%;" v-if="currentDicts.some(item=>item.label==='底腿')">
  748. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">下沟</h3>
  749. <ObsImageUpload
  750. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  751. ref="obsImageUpload"
  752. :limit="11"
  753. :fileType="['png', 'jpg', 'jpeg']"
  754. @input="getinferiorSulcusUrl(arguments,idx)"
  755. :value="e.inferiorSulcus"
  756. :disabled="status == 'read-only' "
  757. ></ObsImageUpload>
  758. </div>
  759. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
  760. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压柜铭牌</h3>
  761. <ObsImageUpload
  762. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  763. ref="obsImageUpload"
  764. :limit="11"
  765. :fileType="['png', 'jpg', 'jpeg']"
  766. @input="getboxBrandUrl(arguments,idx)"
  767. :value="e.boxBrand"
  768. :disabled="status == 'read-only' "
  769. ></ObsImageUpload>
  770. </div>
  771. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
  772. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压箱防雷接地</h3>
  773. <ObsImageUpload
  774. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  775. ref="obsImageUpload"
  776. :limit="11"
  777. :fileType="['png', 'jpg', 'jpeg']"
  778. @input="getLightningUrl(arguments,idx)"
  779. :value="e.lightning"
  780. :disabled="status == 'read-only' "
  781. ></ObsImageUpload>
  782. </div>
  783. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
  784. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压箱底腿连接</h3>
  785. <ObsImageUpload
  786. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  787. ref="obsImageUpload"
  788. :limit="11"
  789. :fileType="['png', 'jpg', 'jpeg']"
  790. @input="getBottomLegUrl(arguments,idx)"
  791. :value="e.bottomLeg"
  792. :disabled="status == 'read-only' "
  793. ></ObsImageUpload>
  794. </div>
  795. <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
  796. <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压箱护栏及地面硬化(远景)</h3>
  797. <ObsImageUpload
  798. :class=" status == 'read-only' ? 'obsImageUploads' : '' "
  799. ref="obsImageUpload"
  800. :limit="11"
  801. :fileType="['png', 'jpg', 'jpeg']"
  802. @input="getGroundHardeningUrl(arguments,idx)"
  803. :value="e.groundHardening"
  804. :disabled="status == 'read-only' "
  805. ></ObsImageUpload>
  806. </div>
  807. <!-- </el-form-item> -->
  808. <div style="display: flex; justify-content: flex-end; width: 100%;height: 100%;">
  809. <el-button plain type="danger" @click=" handleDelete(e)" v-hasPermi="['zdsz:engineeringCivilNode:remove']" style="width: 94px;">删除</el-button>
  810. <!-- <hr>-->
  811. </div>
  812. </el-collapse-item>
  813. </el-collapse>
  814. </el-checkbox-group>
  815. </el-tab-pane>
  816. <el-button class="check" plain type="danger" @click="checkWorking" v-show="currentStatus == 'check' && isChecking " style="width: 80px;" :disabled="currentCollapses.length == 0">审核</el-button>
  817. <el-button class="check" plain type="danger" @click="updateNodeOption" style="width: 94px;cursor: pointer;" v-if="currentStatus != 'check' && status != 'read-only' ">修改</el-button>
  818. </el-tabs>
  819. </el-dialog>
  820. <!-- 审核 -->
  821. <el-dialog
  822. title="审核"
  823. :visible.sync="checkingVisible"
  824. :title="titleName"
  825. width="30%"
  826. class="checkingDialog"
  827. :before-close="handleChecking">
  828. <el-form :model="checkingInfo" ref="checking" :rules="checkingRule" class="nodeForm">
  829. <el-form-item
  830. label-width="85px"
  831. label="审核状态"
  832. prop="reviewStatus"
  833. >
  834. <el-select v-model="checkingInfo.reviewStatus" placeholder="请选择审核状态" style="width: 100%" label="审核状态" @change="validateCHanged">
  835. <el-option
  836. v-for="e in reviewStatusList"
  837. :key="e.label"
  838. :label="e.label"
  839. :value="e.value"
  840. ></el-option>
  841. </el-select>
  842. </el-form-item>
  843. <el-form-item
  844. label-width="85px"
  845. label="审核内容"
  846. prop="reviewContent"
  847. >
  848. <div class="block" style="display: inline-block; margin-right: 20px;">
  849. <el-input
  850. v-model="checkingInfo.reviewContent"
  851. placeholder="请输入审核内容"
  852. type="textarea"
  853. style="width: 97%"/>
  854. </div>
  855. </el-form-item>
  856. </el-form>
  857. <span slot="footer" class="dialog-footer">
  858. <el-button @click="handleChecking">取 消</el-button>
  859. <el-button type="primary" @click=checkingSubmit>确 定</el-button>
  860. </span>
  861. </el-dialog>
  862. </div>
  863. </template>
  864. <script>
  865. import {
  866. getEnginMaterialQualityList, // 材质
  867. getEnginSpecificationsList, // 规格
  868. getDictType, deleteinfoById, // 腐蚀程度
  869. deleteBySZGY,
  870. } from '@/api/zdsz/enginee'
  871. import {selectUserByUserName} from '@/api/system/user'
  872. import ObsVideoUpload from "@/components/ObsVideoUpload/index.vue";
  873. import {delEngineeringCivil} from "@/api/zdsz/engineeringCivil";
  874. export default {
  875. name: 'ConstructionDetails',
  876. dicts:[
  877. 'visit_type',
  878. 'self_closing_valve_type',
  879. 'brand',
  880. 'construct_addre'
  881. ],
  882. components:{ObsVideoUpload},
  883. props: ['currentCollapses','nodeDetailType','enginType','status','zEngineeringNodeBo'],
  884. data() {
  885. return {
  886. kind:null,
  887. userNames:[],
  888. enginSort:'',
  889. checkList:[],
  890. enginNode:'',
  891. currentDicts: [], // 当前类型工程节点项
  892. dialogVisible: false,
  893. activeNames: '',
  894. titleName: '',
  895. reviewStatusList:[
  896. {
  897. value:'1',
  898. label:'通过'
  899. },
  900. {
  901. value:'0',
  902. label:'不通过'
  903. }
  904. ],
  905. nodesource:'',// 审核状态option
  906. materialQualityList_zbf:[], // 自闭阀option
  907. materialQualityList_zjg:[], // 灶具管option
  908. materialQualityList:[], // 材质
  909. specificationsList:[], // 规格
  910. materialComponList:[],
  911. // The data property "enginType" is already declared as a prop.
  912. // enginType:null, // Use prop default value instead.
  913. engineType:null,
  914. enginClassification:null,
  915. nodeInfo:{
  916. backfillTime:'', // 回填时间
  917. constructTime:'',
  918. constructAccordingDrawings:'',
  919. segmentedCompressionQualified:'',
  920. zEngiineeringPhotoBoList:[], // 照片集合
  921. zEngineeringMaterialBo:[], // 用料集合
  922. remark:'',
  923. constructAddre:''
  924. },
  925. checkingInfo:{
  926. reviewStatus:'', // 审核状态
  927. reviewContent:'', // 审核内容
  928. engInfoId:'', // 节点Id
  929. createTime:'', // 工程创建时间
  930. },
  931. currentStatus:null,
  932. checkingVisible:null,
  933. isChecking:true,
  934. currentEnginId:null,
  935. reviewStatus:null,
  936. corrosionLevelListAll:[],
  937. infoIdList:[],
  938. delinfoidList:[],
  939. checkingRule:{
  940. reviewStatus: [
  941. {required: true, message: "审核状态不能为空", trigger: "blur"}
  942. ],
  943. reviewContent: [
  944. {required: true, message: "审核内容不能为空", trigger: "change"}
  945. ],
  946. },node:null
  947. }
  948. },
  949. created(){
  950. // 获取材质
  951. // alert(this.enginType)
  952. let enginStep = this.enginType == '民用工程' ? this.activeNames:null;
  953. getEnginMaterialQualityList({enginType:this.enginType,enginStep:enginStep}).then(res => {
  954. console.log('材质',res)
  955. this.materialQualityList = res.data
  956. })
  957. getEnginSpecificationsList().then(res => {
  958. console.log('规格',res.data)
  959. this.corrosionLevelListAll = res.data
  960. })
  961. },
  962. mounted() {
  963. },
  964. computed:{
  965. },
  966. watch: {
  967. // 此处监听variable变量,当期有变化时执行
  968. currentDicts(item1, item2) {
  969. // item1为新值,item2为旧值
  970. console.log('item1为新值,item2为旧值 item1=', item1)
  971. console.log('item1为新值,item2为旧值 item1[0].value=', item1[0].value)
  972. this.activeNames = item1[0].value
  973. this.$parent.viewNodeSource(item1[0].value)
  974. // alert(item1[0].value)
  975. },
  976. currentCollapses(){
  977. this.userNames = [];
  978. for(let i in this.currentCollapses){
  979. selectUserByUserName(this.currentCollapses[i].createBy).then(res => {
  980. this.userNames.push(res);
  981. })
  982. }
  983. try {
  984. console.log(1)
  985. this.currentCollapses[0].zEngineeringReviewBo.reviewStatus != 1 ? this.isChecking = true : false
  986. } catch (error) {
  987. this.isChecking = true
  988. }
  989. console.log('isChecking',this.isChecking)
  990. console.log('isChecking',this.isChecking)
  991. let materialQuality = []
  992. try {
  993. console.log(2)
  994. materialQuality = this.currentCollapses[0].zEngineeringMaterialBo[0].materialQuality
  995. } catch (error) {
  996. materialQuality = []
  997. }
  998. try {
  999. console.log(3)
  1000. this.reviewStatus = this.currentCollapses[0].zEngineeringReviewBo.reviewStatus != '1' ? true : false
  1001. } catch (error) {
  1002. this.reviewStatus = true
  1003. }
  1004. if(materialQuality){
  1005. console.log(4)
  1006. getEnginSpecificationsList({materId:materialQuality}).then(res => {
  1007. console.log('规格',res.data)
  1008. this.specificationsList = res.data
  1009. })
  1010. }
  1011. }
  1012. },
  1013. methods: {
  1014. handleCheckedCitiesChange(e)
  1015. {
  1016. this.infoIdList=this.currentCollapses.filter(item=>this.checkList.indexOf(item.id)>-1)
  1017. console.log(this.infoIdList)
  1018. this.delinfoidList=this.currentCollapses.map(item=>item.id).filter(item=>this.checkList.indexOf(item)==-1)
  1019. },
  1020. validateCHanged(e){
  1021. this.reviewStatusList[e].label == '通过' ? this.checkingRule.reviewContent[0].required = true : this.checkingRule.reviewContent[0].required = false
  1022. },
  1023. handleChecking(){
  1024. this.checkingVisible = false
  1025. this.checkingInfo = {
  1026. reviewStatus:'', // 审核状态
  1027. reviewContent:'', // 审核内容
  1028. engInfoId:'', // 节点Id
  1029. createTime:'', // 工程创建时间
  1030. },
  1031. this.$refs.checking.resetFields()
  1032. },
  1033. getSpecificationsList(id){
  1034. getEnginSpecificationsList({materId:id}).then(res => {
  1035. console.log('________a',res.data)
  1036. return res.data
  1037. })
  1038. },
  1039. // 保存节点Id
  1040. setEngineId(e){
  1041. this.currentEnginId = e
  1042. },
  1043. // 提交审核
  1044. checkingSubmit(){
  1045. this.$confirm('此操作将删除其他施工信息, 是否继续?', '提示', {
  1046. confirmButtonText: '确定',
  1047. cancelButtonText: '取消',
  1048. type: 'warning'
  1049. }).then(() => {
  1050. this.shenhe()
  1051. }).catch(() => {
  1052. // this.$message({
  1053. // type: 'info',
  1054. // message: '已取消删除'
  1055. // });
  1056. });
  1057. },
  1058. shenhe()
  1059. {
  1060. this.$refs.checking.validate(valid => {
  1061. if(valid){
  1062. try {
  1063. this.infoIdList.nodeName = this.activeNames
  1064. this.checkingInfo.engInfoId = this.currentEnginId
  1065. this.checkingInfo.delInfoIdList=this.delinfoidList
  1066. this.checkingInfo.infoIdList= this.infoIdList
  1067. console.log('checkWorking',this.checkingInfo)
  1068. this.$emit('checkWorking',this.checkingInfo)
  1069. this.checkList=[]
  1070. } catch (error) {
  1071. this.checkingInfo.engInfoId = null
  1072. }
  1073. // this.dialogVisible = false
  1074. this.checkingVisible = false
  1075. this.checkingInfo = {
  1076. reviewStatus:'', // 审核状态
  1077. reviewContent:'', // 审核内容
  1078. engInfoId:'', // 节点Id
  1079. createTime:'', // 工程创建时间
  1080. }
  1081. } else {
  1082. this.$message({
  1083. message: '请完善信息',
  1084. type: 'error'
  1085. });
  1086. throw 'valid Failed'
  1087. }
  1088. })
  1089. },
  1090. // 查看单节点历史
  1091. viewSource(e) {
  1092. console.log('节点123',e)
  1093. console.log('节点',e)
  1094. this.node=e.name
  1095. // alert(this.node)
  1096. this.nodesource=e
  1097. let data = {enginType:this.enginType}
  1098. if(this.enginType=='民用工程'){
  1099. data.enginSort = this.enginSort
  1100. data.enginStep = this.node
  1101. data.enginNode = this.enginClassification
  1102. }
  1103. if(this.node == '阀管'){
  1104. data.nameType = "自闭阀厂家";
  1105. getEnginMaterialQualityList(data).then(res => {
  1106. this.materialQualityList_zbf = res.data
  1107. })
  1108. data.nameType = "灶具管厂家";
  1109. getEnginMaterialQualityList(data).then(res => {
  1110. this.materialQualityList_zjg = res.data
  1111. })
  1112. }
  1113. getEnginMaterialQualityList(data).then(res => {
  1114. this.materialQualityList = res.data
  1115. })
  1116. this.$parent.viewNodeSource(e.name)
  1117. },
  1118. // 单项审核
  1119. checkWorking() {
  1120. if (this.checkList.length==0)
  1121. {
  1122. this.$message.warning("请选择需要审核通过的施工信息")
  1123. return
  1124. }
  1125. if(this.currentStatus == 'check'){
  1126. this.checkingVisible = true
  1127. }
  1128. },
  1129. updateNodeOption(){
  1130. console.log('currentCollapses')
  1131. console.log(this.currentCollapses)
  1132. console.log('checkList')
  1133. console.log(this.checkList)
  1134. if (this.checkList.length==0){
  1135. this.$message.warning("请选择需要修改的施工信息")
  1136. return
  1137. }
  1138. const intersection = this.currentCollapses.filter(value => this.checkList.includes(value.id));
  1139. this.$emit('updateNodeOption',intersection)
  1140. },
  1141. deleteById(e)
  1142. {
  1143. console.log(e)
  1144. deleteinfoById(e).then(res=>{
  1145. this.viewSource(this.nodesource)
  1146. })
  1147. },
  1148. deleteByIdqita(e) {
  1149. deleteBySZGY(e).then(res => {
  1150. this.viewSource(this.nodesource)
  1151. })
  1152. },
  1153. handleDelete(row) {
  1154. this.$modal.confirm('是否确认删除所选数据项?').then(() => {
  1155. this.loading = true;
  1156. if(this.kind == '民用'){
  1157. return this.deleteById(row)
  1158. }else{
  1159. return this.deleteByIdqita(row);
  1160. }
  1161. }).then(() => {
  1162. this.loading = false;
  1163. this.getList();
  1164. this.$modal.msgSuccess("删除成功");
  1165. }).catch(() => {
  1166. }).finally(() => {
  1167. this.loading = false;
  1168. });
  1169. },
  1170. /**
  1171. * 查看历史
  1172. * @param dicts 节点集合
  1173. * @param type 字典type
  1174. * @param currentStatus 审核状态
  1175. * @param kind 工程类型(基建工程用)
  1176. * @param title 标题
  1177. * @param enginClassification 工程类型(民用工程用)
  1178. * @param enginSort 工程分类
  1179. * @param enginType 工程大类名称
  1180. */
  1181. open(dicts, type = null,currentStatus = null,kind = null,title= null,enginClassification,enginSort,enginType) {
  1182. this.kind = kind
  1183. if(dicts && dicts[0]){
  1184. this.node = dicts[0].value
  1185. }
  1186. // alert(kind)
  1187. // alert(enginType)
  1188. console.log(1)
  1189. console.log('dicts=',dicts)
  1190. console.log('type=',type)
  1191. console.log('currentStatus=',currentStatus)
  1192. console.log('kind=',kind)
  1193. console.log('node=',this.node)
  1194. console.log('enginType=',enginType)
  1195. console.log(2)
  1196. // if (kind=='民用'||kind=='基建'){
  1197. // alert(enginType)
  1198. // this.enginType=enginType
  1199. this.engineType=enginType
  1200. this.enginSort=enginSort
  1201. this.enginClassification=enginClassification
  1202. let data = {enginType:enginType}
  1203. if(this.enginType =='民用工程'){
  1204. data.enginSort = enginSort
  1205. data.enginNode = enginClassification
  1206. data.enginStep = Array.isArray(dicts) ? dicts[0].value: null;
  1207. }
  1208. getEnginMaterialQualityList(data).then(res => {
  1209. this.materialQualityList = res.data
  1210. })
  1211. if(this.node == '阀管'){
  1212. data.nameType = "自闭阀厂家";
  1213. getEnginMaterialQualityList(data).then(res => {
  1214. this.materialQualityList_zbf = res.data
  1215. })
  1216. data.nameType = "灶具管厂家";
  1217. getEnginMaterialQualityList(data).then(res => {
  1218. this.materialQualityList_zjg = res.data
  1219. })
  1220. }
  1221. // }
  1222. this.currentStatus = currentStatus
  1223. this.titleName = title
  1224. this.checkingVisible = false
  1225. console.log(this.reviewStatus,this.currentStatus,this.isChecking)
  1226. if (type == '1') {
  1227. // 工业
  1228. // alert('工业='+dicts)
  1229. this.currentDicts = [
  1230. {
  1231. value: "历史数据",
  1232. label: "历史数据"
  1233. }
  1234. ]
  1235. this.$parent.viewNodeSource()
  1236. }if (type == '2') {
  1237. // alert('市政='+dicts)
  1238. // 市政
  1239. // this.currentDicts = [
  1240. // {
  1241. // value: "历史数据",
  1242. // label: "历史数据"
  1243. // }
  1244. // ]
  1245. this.currentDicts = dicts
  1246. this.$parent.viewNodeSource()
  1247. } else if (type === '危险作业工程') {
  1248. this.$parent.viewNodeSource()
  1249. this.currentDicts = [
  1250. {
  1251. value: "历史数据",
  1252. label: "历史数据"
  1253. }
  1254. ]
  1255. } else {
  1256. console.log(4)
  1257. console.log(dicts)
  1258. this.dialogVisible = true
  1259. // if (kind=='基建'){
  1260. // dicts=dicts.filter(item=>['水电施工','防水'].includes(item.value))
  1261. // }
  1262. this.currentDicts = dicts
  1263. }
  1264. // alert(enginType)
  1265. if(enginType == 'pe'){
  1266. this.currentDicts = dicts
  1267. this.node = dicts[0].value
  1268. }else if(enginType == 'iron_air'){
  1269. this.currentDicts = dicts
  1270. this.node = dicts[0].value
  1271. }
  1272. // alert(this.currentDicts)
  1273. //this.currentDicts = dicts
  1274. console.log("this.currentDicts",this.currentDicts)
  1275. this.dialogVisible = true
  1276. this.$forceUpdate()
  1277. },
  1278. // 获取材质规格
  1279. getEnginSpecificationsList(e,idx,parentIndex){
  1280. // 重置规格
  1281. this.currentCollapses[parentIndex].zEngineeringMaterialBo[idx].specifications = ''
  1282. getEnginSpecificationsList({materId:e.materialQuality}).then(res => {
  1283. console.log('规格',res.data)
  1284. this.specificationsList = res.data
  1285. })
  1286. },
  1287. getUrl(_,idx) {
  1288. this.currentCollapses[idx].zEngiineeringPhotoBoList = [...arguments][0][0].map(e=>e.url) || [];
  1289. },
  1290. getductalEpitheliumUrl(_,idx) {
  1291. this.currentCollapses[idx].ductalEpithelium = [...arguments][0][0].map(e=>e.url) || [];
  1292. },
  1293. gettrenchProspectUrl(_,idx) {
  1294. this.currentCollapses[idx].trenchProspect = [...arguments][0][0].map(e=>e.url) || [];
  1295. },
  1296. getstonePowderUrl(_,idx) {
  1297. this.currentCollapses[idx].stonePowder = [...arguments][0][0].map(e=>e.url) || [];
  1298. },
  1299. getwarningtTapeUrl(_,idx) {
  1300. this.currentCollapses[idx].warningtTape = [...arguments][0][0].map(e=>e.url) || [];
  1301. },
  1302. getbeforeBottomUrl(_,idx) {
  1303. this.currentCollapses[idx].beforeBottom = [...arguments][0][0].map(e=>e.url) || [];
  1304. },
  1305. getlegBackfillingUrl(_,idx) {
  1306. this.currentCollapses[idx].legBackfilling = [...arguments][0][0].map(e=>e.url) || [];
  1307. },
  1308. getboxBrandUrl(_,idx) {
  1309. this.currentCollapses[idx].boxBrand = [...arguments][0][0].map(e=>e.url) || [];
  1310. },
  1311. getLightningUrl(_,idx) {
  1312. this.currentCollapses[idx].lightning = [...arguments][0][0].map(e=>e.url) || [];
  1313. },
  1314. getBottomLegUrl(_,idx) {
  1315. this.currentCollapses[idx].bottomLeg = [...arguments][0][0].map(e=>e.url) || [];
  1316. },
  1317. getGroundHardeningUrl(_,idx) {
  1318. this.currentCollapses[idx].groundHardening = [...arguments][0][0].map(e=>e.url) || [];
  1319. },
  1320. getinferiorSulcusUrl(_,idx) {
  1321. this.currentCollapses[idx].inferiorSulcus = [...arguments][0][0].map(e=>e.url) || [];
  1322. },
  1323. getphotosAfterUrl(_,idx) {
  1324. this.currentCollapses[idx].photosAfter = [...arguments][0][0].map(e=>e.url) || [];
  1325. },
  1326. getVideoUrl(_,idx) {
  1327. this.currentCollapses[idx].video = [...arguments][0][0].map(e=>e.url) || [];
  1328. console.log(this.currentCollapses[idx].video)
  1329. },
  1330. getconstructionRecordsUrl(_,idx)
  1331. {
  1332. this.currentCollapses[idx].constructionRecords = [...arguments][0][0].map(e=>e.url) || [];
  1333. console.log(this.currentCollapses[idx].constructionRecords)
  1334. },
  1335. getonTheDitchUrl(_,idx)
  1336. {
  1337. this.currentCollapses[idx].onTheDitch = [...arguments][0][0].map(e=>e.url) || [];
  1338. console.log(this.currentCollapses[idx].onTheDitch)
  1339. },
  1340. getwelding(_,idx)
  1341. {
  1342. this.currentCollapses[idx].welding = [...arguments][0][0].map(e=>e.url) || [];
  1343. console.log("焊接照片===",this.currentCollapses[idx].welding)
  1344. },
  1345. getaczoiling(_,idx)
  1346. {
  1347. this.currentCollapses[idx].aczoiling = [...arguments][0][0].map(e=>e.url) || [];
  1348. console.log("防腐照片===",this.currentCollapses[idx].aczoiling)
  1349. },
  1350. getpiping(_,idx)
  1351. {
  1352. this.currentCollapses[idx].piping = [...arguments][0][0].map(e=>e.url) || [];
  1353. console.log(this.currentCollapses[idx].piping)
  1354. },
  1355. getwarning(_,idx)
  1356. {
  1357. this.currentCollapses[idx].warning = [...arguments][0][0].map(e=>e.url) || [];
  1358. console.log(this.currentCollapses[idx].warning)
  1359. },
  1360. getbackfilling(_,idx)
  1361. {
  1362. this.currentCollapses[idx].backfilling = [...arguments][0][0].map(e=>e.url) || [];
  1363. console.log(this.currentCollapses[idx].backfilling)
  1364. },
  1365. getpeAirrecovering(_,idx)
  1366. {
  1367. this.currentCollapses[idx].peAirrecovering = [...arguments][0][0].map(e=>e.url) || [];
  1368. console.log(this.currentCollapses[idx].peAirrecovering)
  1369. },
  1370. getpeAirtightTest(_,idx)
  1371. {
  1372. this.currentCollapses[idx].peAirtightTest = [...arguments][0][0].map(e=>e.url) || [];
  1373. console.log(this.currentCollapses[idx].peAirtightTest)
  1374. },
  1375. getpeCleaning(_,idx)
  1376. {
  1377. this.currentCollapses[idx].peCleaning = [...arguments][0][0].map(e=>e.url) || [];
  1378. console.log(this.currentCollapses[idx].peCleaning)
  1379. },
  1380. getpeCollisionOperating(_,idx)
  1381. {
  1382. this.currentCollapses[idx].peCollisionOperating = [...arguments][0][0].map(e=>e.url) || [];
  1383. console.log(this.currentCollapses[idx].peCollisionOperating)
  1384. },
  1385. getpeHolesOpening(_,idx)
  1386. {
  1387. this.currentCollapses[idx].peHolesOpening = [...arguments][0][0].map(e=>e.url) || [];
  1388. console.log(this.currentCollapses[idx].peHolesOpening)
  1389. },
  1390. getpeHomeworkDone(_,idx)
  1391. {
  1392. this.currentCollapses[idx].peHomeworkDone = [...arguments][0][0].map(e=>e.url) || [];
  1393. console.log(this.currentCollapses[idx].peHomeworkDone)
  1394. },
  1395. getpePlugging(_,idx)
  1396. {
  1397. this.currentCollapses[idx].pePlugging = [...arguments][0][0].map(e=>e.url) || [];
  1398. console.log(this.currentCollapses[idx].pePlugging)
  1399. },
  1400. getpeSaddleWelding(_,idx)
  1401. {
  1402. this.currentCollapses[idx].peSaddleWelding = [...arguments][0][0].map(e=>e.url) || [];
  1403. console.log(this.currentCollapses[idx].peSaddleWelding)
  1404. },
  1405. getiron4Aczoiling(_,idx)
  1406. {
  1407. this.currentCollapses[idx].iron4Aczoiling = [...arguments][0][0].map(e=>e.url) || [];
  1408. console.log(this.currentCollapses[idx].iron4Aczoiling)
  1409. },
  1410. getiron4Welding(_,idx)
  1411. {
  1412. this.currentCollapses[idx].iron4Welding = [...arguments][0][0].map(e=>e.url) || [];
  1413. console.log(this.currentCollapses[idx].iron4Welding)
  1414. },
  1415. getironBypassWelding(_,idx)
  1416. {
  1417. this.currentCollapses[idx].ironBypassWelding = [...arguments][0][0].map(e=>e.url) || [];
  1418. console.log(this.currentCollapses[idx].ironBypassWelding)
  1419. },
  1420. getironCleaning(_,idx)
  1421. {
  1422. this.currentCollapses[idx].ironCleaning = [...arguments][0][0].map(e=>e.url) || [];
  1423. console.log(this.currentCollapses[idx].ironCleaning)
  1424. },
  1425. getironHolesOpening(_,idx)
  1426. {
  1427. this.currentCollapses[idx].ironHolesOpening = [...arguments][0][0].map(e=>e.url) || [];
  1428. console.log(this.currentCollapses[idx].ironHolesOpening)
  1429. },
  1430. getironHomeworkDone(_,idx)
  1431. {
  1432. this.currentCollapses[idx].ironHomeworkDone = [...arguments][0][0].map(e=>e.url) || [];
  1433. console.log(this.currentCollapses[idx].ironHomeworkDone)
  1434. },
  1435. getironLowerEndCap(_,idx)
  1436. {
  1437. this.currentCollapses[idx].ironLowerEndCap = [...arguments][0][0].map(e=>e.url) || [];
  1438. console.log(this.currentCollapses[idx].ironLowerEndCap)
  1439. },
  1440. getironNitrogenPurging(_,idx)
  1441. {
  1442. this.currentCollapses[idx].ironNitrogenPurging = [...arguments][0][0].map(e=>e.url) || [];
  1443. console.log(this.currentCollapses[idx].ironNitrogenPurging)
  1444. },
  1445. getironPipelineReplacing(_,idx)
  1446. {
  1447. this.currentCollapses[idx].ironPipelineReplacing = [...arguments][0][0].map(e=>e.url) || [];
  1448. console.log(this.currentCollapses[idx].ironPipelineReplacing)
  1449. },
  1450. getironPipelineThickness(_,idx)
  1451. {
  1452. this.currentCollapses[idx].ironPipelineThickness = [...arguments][0][0].map(e=>e.url) || [];
  1453. console.log(this.currentCollapses[idx].ironPipelineThickness)
  1454. },
  1455. }
  1456. }
  1457. </script>
  1458. <style lang="scss" scoped>
  1459. ::v-deep .nodeForm{
  1460. .el-form-item__content{
  1461. display: flex;
  1462. }
  1463. }
  1464. ::v-deep .materialForm{
  1465. display: flex !important;
  1466. flex-wrap: wrap;
  1467. .el-form-item{
  1468. width: 320px;
  1469. }
  1470. }
  1471. ::v-deep .obsImageUpload{
  1472. .el-upload--picture-card{
  1473. display: block !important;
  1474. }
  1475. }
  1476. ::v-deep .obsImageUpload >div{
  1477. display: flex;
  1478. }
  1479. ::v-deep .el-dialog {
  1480. height: 85%;
  1481. .el-dialog__body {
  1482. overflow: hidden;
  1483. height: 91%;
  1484. }
  1485. }
  1486. ::v-deep .el-upload-notShow{
  1487. .el-upload--picture-card {
  1488. display: none;
  1489. }
  1490. }
  1491. ::v-deep .labelWidth{
  1492. .el-form-item__label{
  1493. width: 100px;
  1494. }
  1495. }
  1496. ::v-deep .obsImageUploads{
  1497. .el-upload--picture-card{
  1498. display: none;
  1499. }
  1500. }
  1501. .ConstructionDetailsDialog {
  1502. position: absolute;
  1503. .projectTabs {
  1504. height: 100%;
  1505. overflow: hidden;
  1506. overflow-y: scroll;
  1507. margin-top: 4%;
  1508. ::v-deep .el-tabs__content {
  1509. margin-top: 1%;
  1510. }
  1511. ::v-deep .el-tabs__nav {
  1512. border: none;
  1513. overflow: hidden;
  1514. overflow-x: scroll;
  1515. }
  1516. ::v-deep .el-tabs__item {
  1517. // width: 47%;
  1518. border: 1px solid #a3d3ff;
  1519. border-radius: 5px;
  1520. }
  1521. ::v-deep .el-tabs__item.is-active {
  1522. background-color: #e8f4ff;
  1523. color: #1890ff;
  1524. }
  1525. ::v-deep .el-tabs__header {
  1526. position: fixed;
  1527. width: 53%;
  1528. border: none;
  1529. top: 13%;
  1530. }
  1531. ::v-deep .el-collapse-item__wrap {
  1532. padding: 0 4%;
  1533. }
  1534. .check {
  1535. position: fixed;
  1536. right: 22.1%;
  1537. top: 13.1%;
  1538. height: 4.6%;
  1539. //background-color: #CC9900;
  1540. //color: #fff;
  1541. }
  1542. }
  1543. .projectTabs::-webkit-scrollbar {
  1544. display: none;
  1545. }
  1546. ::v-deep .rmOldPie {
  1547. .el-collapse-item {
  1548. border: none;
  1549. }
  1550. }
  1551. }
  1552. .personInfo >span:not(:nth-child(1)){
  1553. margin-left: 50px;
  1554. }
  1555. ::v-deep .checkingDialog{
  1556. height: 50%;
  1557. margin-top: 6%;
  1558. .el-dialog__body{
  1559. height: 72%;
  1560. }
  1561. .el-textarea__inner{
  1562. width: 246%;
  1563. height: 140px;
  1564. }
  1565. }
  1566. </style>