indexSZ.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753
  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. <el-checkbox :label="e.id" @change="handleCheckedCitiesChange">
  32. <h2 style="margin-left: 1%;font-weight: 700;">{{ e.updateTime }}</h2>
  33. </el-checkbox>
  34. <h2 :style="'margin-left: 20%;font-weight: 700;'+ (e.state == '1'? 'color: #1ab394':'') "> {{e.state=='0'?"该施工信息审核未通过":e.state=='1'?"该施工信息审核通过":""}}</h2>
  35. </div>
  36. </template>
  37. <div class="personInfo">
  38. <span>施工人:{{ userNames[idx].nickName }}</span>
  39. <span>施工人电话:{{ userNames[idx].phonenumber }}</span>
  40. </div>
  41. <hr>
  42. <el-form :model="e">
  43. <el-form-item
  44. :prop="e.remark"
  45. :class="'labelWidth'"
  46. label="施工内容"
  47. label-width="95px"
  48. >
  49. <div class="block" style="display: inline-block; margin-right: 20px;">
  50. <el-input v-model="e.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"
  51. type="textarea" :readonly="['review','read-only'].includes(status)"></el-input>
  52. </div>
  53. </el-form-item>
  54. </el-form>
  55. <!-- 用料明细 -->
  56. <div v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(activeNames)"
  57. v-for="(i,index) in e.zEngineeringMaterialBo || [] "
  58. :key="index"
  59. >
  60. <el-form :model="nodeInfo" class="nodeForm materialForm">
  61. <el-form-item
  62. :prop="i.materialQuality"
  63. :class="'labelWidth'"
  64. :label="'材质'"
  65. label-width="95px"
  66. >
  67. <el-select v-model="i.materialQuality" placeholder="请选择材质" style="width: 100%"
  68. @change="getEnginSpecificationsList(i, index,idx)" :disabled="['review','read-only'].includes(status)">
  69. <el-option
  70. v-for="e in materialQualityList"
  71. :key="e.id"
  72. :label="e.name"
  73. :value="e.id"
  74. ></el-option>
  75. </el-select>
  76. </el-form-item>
  77. <el-form-item
  78. :prop="i.specifications"
  79. :class="'labelWidth'"
  80. label="规格"
  81. label-width="95px"
  82. >
  83. <el-select v-model="i.specifications" placeholder="请选择规格" style="width: 100%"
  84. :disabled="['review','read-only'].includes(status)">
  85. <el-option
  86. v-for="e in corrosionLevelListAll.filter(o => o.materId == i.materialQuality)"
  87. :key="e.id"
  88. :label="e.name"
  89. :value="e.id"
  90. ></el-option>
  91. </el-select>
  92. </el-form-item>
  93. <!-- <el-form-item-->
  94. <!-- :prop="i.remark + ''"-->
  95. <!-- :class="'labelWidth'"-->
  96. <!-- label="施工内容"-->
  97. <!-- label-width="95px"-->
  98. <!-- >-->
  99. <!-- <div class="block" style="display: inline-block; margin-right: 20px;">-->
  100. <!-- <el-input v-model="i.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"-->
  101. <!-- type="textarea" :disabled="status == 'read-only'"></el-input>-->
  102. <!-- </div>-->
  103. <!-- </el-form-item>-->
  104. <el-form-item
  105. :prop="i.number + ''"
  106. :class="'labelWidth'"
  107. label="米数"
  108. label-width="95px"
  109. >
  110. <div class="block" style="display: inline-block; margin-right: 20px;">
  111. <el-input v-model="i.number" placeholder="请输入米数" style="width: 100%"
  112. oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
  113. max="999999999" :disabled="['review','read-only'].includes(status)"></el-input>
  114. </div>
  115. </el-form-item>
  116. <!-- <el-form-item-->
  117. <!-- :prop="i.remark + ''"-->
  118. <!-- label="描述"-->
  119. <!-- >-->
  120. <!-- <div class="block" style="display: inline-block; margin-right: 20px;">-->
  121. <!-- <el-input v-model="i.remark" placeholder="请输入描述" style="width: 100%" maxlength="100"-->
  122. <!-- :disabled="status == 'read-only'"></el-input>-->
  123. <!-- </div>-->
  124. <!-- </el-form-item>-->
  125. </el-form>
  126. </div>
  127. <!-- <div v-if="['阀井'].includes(activeNames)"-->
  128. <!-- v-for="(i,index) in e.zEngineeringMaterialBo || [] "-->
  129. <!-- :key="index"-->
  130. <!-- >-->
  131. <!-- <el-form :model="nodeInfo" class="nodeForm materialForm">-->
  132. <!-- <el-form-item-->
  133. <!-- :prop="i.remark"-->
  134. <!-- :class="'labelWidth'"-->
  135. <!-- label="型号"-->
  136. <!-- label-width="95px"-->
  137. <!-- >-->
  138. <!-- <el-input v-model="i.remark" placeholder="请输入型号" style="width: 100%" maxlength="100"-->
  139. <!-- type="textarea" :disabled="['review','read-only'].includes(status)"></el-input>-->
  140. <!-- </el-form-item>-->
  141. <!-- </el-form>-->
  142. <!-- </div>-->
  143. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
  144. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">套管</h3>
  145. <ObsImageUpload
  146. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  147. ref="obsImageUpload"
  148. :limit="11"
  149. :fileType="['png', 'jpg', 'jpeg']"
  150. @input="getCannulaUrl(arguments,idx)"
  151. :value="e.cannula"
  152. :disabled="['review','read-only'].includes(status)"
  153. ></ObsImageUpload>
  154. </div>
  155. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
  156. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">内壁抹灰</h3>
  157. <ObsImageUpload
  158. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  159. ref="obsImageUpload"
  160. :limit="11"
  161. :fileType="['png', 'jpg', 'jpeg']"
  162. @input="getWallPlasterUrl(arguments,idx)"
  163. :value="e.wallPlaster"
  164. :disabled="['review','read-only'].includes(status)"
  165. ></ObsImageUpload>
  166. </div>
  167. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
  168. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防护网</h3>
  169. <ObsImageUpload
  170. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  171. ref="obsImageUpload"
  172. :limit="11"
  173. :fileType="['png', 'jpg', 'jpeg']"
  174. @input="getProtectiveNetUrl(arguments,idx)"
  175. :value="e.protectiveNet"
  176. :disabled="['review','read-only'].includes(status)"
  177. ></ObsImageUpload>
  178. </div>
  179. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
  180. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">八角</h3>
  181. <ObsImageUpload
  182. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  183. ref="obsImageUpload"
  184. :limit="11"
  185. :fileType="['png', 'jpg', 'jpeg']"
  186. @input="getStarAniseUrl(arguments,idx)"
  187. :value="e.starAnise"
  188. :disabled="['review','read-only'].includes(status)"
  189. ></ObsImageUpload>
  190. </div>
  191. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames != '回填、撤场' && activeNames != '顶管材料米数' && activeNames != '调压柜'&& activeNames != '阀井'"">
  192. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">图片</h3>
  193. <ObsImageUpload
  194. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  195. ref="obsImageUpload"
  196. :limit="11"
  197. :fileType="['png', 'jpg', 'jpeg']"
  198. @input="getUrl(arguments,idx)"
  199. :value="e.zEngiineeringPhotoBoList"
  200. :disabled="['review','read-only'].includes(status)"
  201. ></ObsImageUpload>
  202. </div>
  203. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '回填、撤场'">
  204. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">回填前</h3>
  205. <ObsImageUpload
  206. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  207. ref="obsImageUpload1"
  208. :limit="11"
  209. :fileType="['png', 'jpg', 'jpeg']"
  210. @input="getUrl1(arguments,idx)"
  211. :value="e.zEngiineeringPhotoBoListOne"
  212. :disabled="['review','read-only'].includes(status)"
  213. ></ObsImageUpload>
  214. </div>
  215. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '回填、撤场'">
  216. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">铺设警示带</h3>
  217. <ObsImageUpload
  218. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  219. ref="obsImageUpload2"
  220. :limit="11"
  221. :fileType="['png', 'jpg', 'jpeg']"
  222. @input="getUrl2(arguments,idx)"
  223. :value="e.zEngiineeringPhotoBoListTwo"
  224. :disabled="['review','read-only'].includes(status)"
  225. ></ObsImageUpload>
  226. </div>
  227. <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '回填、撤场'">
  228. <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">回填后</h3>
  229. <ObsImageUpload
  230. :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
  231. ref="obsImageUpload3"
  232. :limit="11"
  233. :fileType="['png', 'jpg', 'jpeg']"
  234. @input="getUrl3(arguments,idx)"
  235. :value="e.zEngiineeringPhotoBoListThree"
  236. :disabled="['review','read-only'].includes(status)"
  237. ></ObsImageUpload>
  238. </div>
  239. <div style="display: flex; justify-content: flex-end; width: 100%;height: 100%;"
  240. v-if="status == 'put'">
  241. <el-button plain type="danger" @click=" handleDelete(e)" style="width: 94px;">删除
  242. </el-button>
  243. </div>
  244. </el-collapse-item>
  245. </el-collapse>
  246. </el-checkbox-group>
  247. </el-tab-pane>
  248. <el-button class="check" plain type="danger" @click="checkWorking"
  249. v-if="status == 'review' " style="width: 80px;"
  250. :disabled="currentCollapses.length == 0">审核
  251. </el-button>
  252. <el-button class="check" plain type="danger" @click="updateNodeOption" style="width: 94px;cursor: pointer;"
  253. v-if="status == 'put' ">修改
  254. </el-button>
  255. </el-tabs>
  256. </el-dialog>
  257. <!-- 审核 -->
  258. <el-dialog
  259. title="审核"
  260. :visible.sync="checkingVisible"
  261. :title="titleName"
  262. width="30%"
  263. class="checkingDialog"
  264. :before-close="handleChecking">
  265. <el-form :model="checkingInfo" ref="checking" :rules="checkingRule" class="nodeForm">
  266. <el-form-item
  267. label-width="85px"
  268. label="审核状态"
  269. prop="reviewStatus"
  270. >
  271. <el-select v-model="checkingInfo.reviewStatus" placeholder="请选择审核状态" style="width: 100%"
  272. label="审核状态" @change="validateCHanged">
  273. <el-option
  274. v-for="e in reviewStatusList"
  275. :key="e.label"
  276. :label="e.label"
  277. :value="e.value"
  278. ></el-option>
  279. </el-select>
  280. </el-form-item>
  281. <el-form-item
  282. label-width="85px"
  283. label="审核内容"
  284. prop="reviewContent"
  285. >
  286. <div class="block" style="display: inline-block; margin-right: 20px;">
  287. <el-input
  288. v-model="checkingInfo.reviewContent"
  289. placeholder="请输入审核内容"
  290. type="textarea"
  291. style="width: 97%"/>
  292. </div>
  293. </el-form-item>
  294. </el-form>
  295. <span slot="footer" class="dialog-footer">
  296. <el-button @click="handleChecking">取 消</el-button>
  297. <el-button type="primary" @click=checkingSubmit>确 定</el-button>
  298. </span>
  299. </el-dialog>
  300. </div>
  301. </template>
  302. <script>
  303. import {
  304. deleteBySZGY,
  305. deleteinfoById,
  306. getEnginMaterialQualityList, // 材质
  307. getEnginSpecificationsList, // 规格
  308. } from '@/api/zdsz/enginee'
  309. import {selectUserByUserName} from '@/api/system/user'
  310. import ObsVideoUpload from "@/components/ObsVideoUpload/index.vue";
  311. export default {
  312. name: '市政info',
  313. dicts: [],
  314. components: {ObsVideoUpload},
  315. props: ['currentCollapses', 'nodeDetailType', 'enginType', 'status', 'zEngineeringNodeBo'],
  316. data() {
  317. return {
  318. kind: null,
  319. userNames: [],
  320. checkList: [],
  321. enginNode: '',
  322. currentDicts: [], // 当前类型工程节点项
  323. dialogVisible: false,
  324. activeNames: '',
  325. titleName: '',
  326. reviewStatusList: [
  327. {
  328. value: '1',
  329. label: '通过'
  330. },
  331. {
  332. value: '0',
  333. label: '不通过'
  334. }
  335. ],
  336. nodesource: '',// 审核状态option
  337. materialQualityList: [], // 材质
  338. specificationsList: [], // 规格
  339. materialComponList: [],
  340. engineType: null,
  341. enginClassification: null,
  342. nodeInfo: {
  343. backfillTime: '', // 回填时间
  344. constructTime: '',
  345. constructAccordingDrawings: '',
  346. segmentedCompressionQualified: '',
  347. zEngiineeringPhotoBoList: [], // 照片集合
  348. zEngiineeringPhotoBoListOne: [], // 照片集合
  349. zEngiineeringPhotoBoListTwo: [], // 照片集合
  350. zEngiineeringPhotoBoListThree: [], // 照片集合
  351. zEngineeringMaterialBo: [], // 用料集合
  352. remark: '',
  353. constructAddre: ''
  354. },
  355. checkingInfo: {
  356. reviewStatus: '', // 审核状态
  357. reviewContent: '', // 审核内容
  358. engInfoId: '', // 节点Id
  359. createTime: '', // 工程创建时间
  360. },
  361. currentStatus: null,
  362. checkingVisible: null,
  363. isChecking: true,
  364. currentEnginId: null,
  365. reviewStatus: null,
  366. corrosionLevelListAll: [],
  367. infoIdList: [],
  368. delinfoidList: [],
  369. checkingRule: {
  370. reviewStatus: [
  371. {required: true, message: "审核状态不能为空", trigger: "blur"}
  372. ],
  373. reviewContent: [
  374. {required: true, message: "审核内容不能为空", trigger: "change"}
  375. ],
  376. },
  377. node: null
  378. }
  379. },
  380. created() {
  381. },
  382. mounted() {
  383. this.getGoods()
  384. },
  385. watch: {
  386. // 此处监听variable变量,当期有变化时执行
  387. currentDicts(item1, item2) {
  388. this.activeNames = item1[0].value
  389. this.$parent.viewNodeSource(item1[0].value)
  390. },
  391. currentCollapses() {
  392. console.log('currentCollapses', this.currentCollapses)
  393. this.userNames = [];
  394. for (let i in this.currentCollapses) {
  395. selectUserByUserName(this.currentCollapses[i].createBy).then(res => {
  396. this.userNames.push(res);
  397. })
  398. }
  399. try {
  400. this.currentCollapses[0].zEngineeringReviewBo.reviewStatus != 1 ? this.isChecking = true : false
  401. } catch (error) {
  402. this.isChecking = true
  403. }
  404. console.log('isChecking', this.isChecking)
  405. let materialQuality = []
  406. try {
  407. materialQuality = this.currentCollapses[0].zEngineeringMaterialBo[0].materialQuality
  408. } catch (error) {
  409. materialQuality = []
  410. }
  411. try {
  412. this.reviewStatus = this.currentCollapses[0].zEngineeringReviewBo.reviewStatus != '1' ? true : false
  413. } catch (error) {
  414. this.reviewStatus = true
  415. }
  416. if (materialQuality) {
  417. getEnginSpecificationsList({materId: materialQuality}).then(res => {
  418. this.specificationsList = res.data
  419. })
  420. }
  421. }
  422. },
  423. methods: {
  424. getGoods() {
  425. // 获取材质
  426. let enginType = '市政工程'
  427. getEnginMaterialQualityList({enginType: enginType}).then(res => {
  428. this.materialQualityList = res.data
  429. })
  430. // 获取规格
  431. getEnginSpecificationsList().then(res => {
  432. this.corrosionLevelListAll = res.data
  433. })
  434. },
  435. handleCheckedCitiesChange(e) {
  436. this.infoIdList = this.currentCollapses.filter(item => this.checkList.indexOf(item.id) > -1)
  437. this.delinfoidList = this.currentCollapses.map(item => item.id).filter(item => this.checkList.indexOf(item) == -1)
  438. },
  439. validateCHanged(e) {
  440. this.reviewStatusList[e].label == '通过' ? this.checkingRule.reviewContent[0].required = true : this.checkingRule.reviewContent[0].required = false
  441. },
  442. handleChecking() {
  443. this.checkingVisible = false
  444. this.checkingInfo = {
  445. reviewStatus: '', // 审核状态
  446. reviewContent: '', // 审核内容
  447. engInfoId: '', // 节点Id
  448. createTime: '', // 工程创建时间
  449. }
  450. this.$refs.checking.resetFields()
  451. },
  452. // 保存节点Id
  453. setEngineId(e) {
  454. this.currentEnginId = e
  455. },
  456. // 提交审核
  457. checkingSubmit() {
  458. this.$confirm('此操作将删除其他施工信息, 是否继续?', '提示', {
  459. confirmButtonText: '确定',
  460. cancelButtonText: '取消',
  461. type: 'warning'
  462. }).then(() => {
  463. this.shenhe()
  464. }).catch(() => {
  465. });
  466. },
  467. shenhe() {
  468. this.$refs.checking.validate(valid => {
  469. if (valid) {
  470. try {
  471. this.checkingInfo.engInfoName = this.activeNames
  472. this.checkingInfo.engInfoId = this.currentEnginId
  473. this.checkingInfo.delInfoIdList = this.delinfoidList
  474. this.checkingInfo.infoIdList = this.infoIdList
  475. this.$emit('checkWorking', this.checkingInfo,this.activeNames=='回填、撤场'?1:0)
  476. this.checkList = []
  477. } catch (error) {
  478. this.checkingInfo.engInfoId = null
  479. }
  480. this.checkingVisible = false
  481. this.checkingInfo = {
  482. reviewStatus: '', // 审核状态
  483. reviewContent: '', // 审核内容
  484. engInfoId: '', // 节点Id
  485. createTime: '', // 工程创建时间
  486. }
  487. } else {
  488. this.$message({
  489. message: '请完善信息',
  490. type: 'error'
  491. });
  492. throw 'valid Failed'
  493. }
  494. })
  495. },
  496. // 查看单节点历史
  497. viewSource(e) {
  498. console.log('节点', e)
  499. this.node = e.name
  500. this.nodesource = e
  501. let data = {enginType: this.enginType}
  502. getEnginMaterialQualityList(data).then(res => {
  503. this.materialQualityList = res.data
  504. })
  505. this.$parent.viewNodeSource(e.name)
  506. },
  507. // 单项审核
  508. checkWorking() {
  509. if (this.checkList.length == 0) {
  510. this.$message.warning("请选择需要审核通过的施工信息")
  511. return
  512. }
  513. if (this.status == 'review') {
  514. this.checkingVisible = true
  515. }
  516. },
  517. updateNodeOption() {
  518. if (this.checkList.length == 0) {
  519. this.$message.warning("请选择需要修改的施工信息")
  520. return
  521. }
  522. const intersection = this.currentCollapses.filter(value => this.checkList.includes(value.id));
  523. this.$emit('updateNodeOption', intersection)
  524. },
  525. deleteById(e) {
  526. deleteBySZGY(e).then(res => {
  527. this.viewSource(this.nodesource)
  528. })
  529. },
  530. handleDelete(row) {
  531. this.$modal.confirm('是否确认删除所选数据项?').then(() => {
  532. this.loading = true;
  533. return this.deleteById(row)
  534. }).then(() => {
  535. this.loading = false;
  536. this.getList();
  537. this.$modal.msgSuccess("删除成功");
  538. }).catch(() => {
  539. }).finally(() => {
  540. this.loading = false;
  541. });
  542. },
  543. /**
  544. * 查看历史
  545. * @param dicts 节点集合
  546. * @param currentStatus
  547. * @param title 标题
  548. * @param enginType 工程分类
  549. * @param status 页面状态
  550. */
  551. open(dicts, currentStatus = null, title = null, enginType, status) {
  552. this.status = status;
  553. if (dicts && dicts[0]) {
  554. this.node = dicts[0].value
  555. }
  556. this.engineType = enginType
  557. let data = {enginType: enginType}
  558. getEnginMaterialQualityList(data).then(res => {
  559. this.materialQualityList = res.data
  560. })
  561. this.currentStatus = currentStatus
  562. this.titleName = title
  563. this.checkingVisible = false
  564. this.currentDicts = dicts
  565. this.$parent.viewNodeSource()
  566. this.dialogVisible = true
  567. this.$forceUpdate()
  568. },
  569. // 获取材质规格
  570. getEnginSpecificationsList(e, idx, parentIndex) {
  571. // 重置规格
  572. this.currentCollapses[parentIndex].zEngineeringMaterialBo[idx].specifications = ''
  573. getEnginSpecificationsList({materId: e.materialQuality}).then(res => {
  574. console.log('规格', res.data)
  575. this.specificationsList = res.data
  576. })
  577. },getCannulaUrl(_,idx) {
  578. console.log("this.currentCollapses",this.currentCollapses)
  579. this.currentCollapses[idx].cannula = [...arguments][0][0].map(e=>e.url) || [];
  580. },
  581. getWallPlasterUrl(_,idx) {
  582. this.currentCollapses[idx].wallPlaster = [...arguments][0][0].map(e=>e.url) || [];
  583. },
  584. getLightningUrl(_,idx) {
  585. this.currentCollapses[idx].lightning = [...arguments][0][0].map(e=>e.url) || [];
  586. },
  587. getStarAniseUrl(_,idx) {
  588. this.currentCollapses[idx].starAnise = [...arguments][0][0].map(e=>e.url) || [];
  589. },
  590. getProtectiveNetUrl(_,idx) {
  591. this.currentCollapses[idx].protectiveNet = [...arguments][0][0].map(e=>e.url) || [];
  592. },
  593. getUrl(_, idx) {
  594. this.currentCollapses[idx].zEngiineeringPhotoBoList = [...arguments][0][0].map(e => e.url) || [];
  595. },
  596. getUrl1(_, idx) {
  597. this.currentCollapses[idx].zEngiineeringPhotoBoListOne = [...arguments][0][0].map(e => e.url) || [];
  598. },
  599. getUrl2(_, idx) {
  600. this.currentCollapses[idx].zEngiineeringPhotoBoListTwo = [...arguments][0][0].map(e => e.url) || [];
  601. },
  602. getUrl3(_, idx) {
  603. this.currentCollapses[idx].zEngiineeringPhotoBoListThree = [...arguments][0][0].map(e => e.url) || [];
  604. },
  605. }
  606. }
  607. </script>
  608. <style lang="scss" scoped>
  609. ::v-deep .nodeForm {
  610. .el-form-item__content {
  611. display: flex;
  612. }
  613. }
  614. ::v-deep .materialForm {
  615. display: flex !important;
  616. flex-wrap: wrap;
  617. .el-form-item {
  618. width: 320px;
  619. }
  620. }
  621. ::v-deep .obsImageUpload {
  622. .el-upload--picture-card {
  623. display: block !important;
  624. }
  625. }
  626. ::v-deep .obsImageUpload > div {
  627. display: flex;
  628. }
  629. ::v-deep .el-dialog {
  630. height: 85%;
  631. .el-dialog__body {
  632. overflow: hidden;
  633. height: 91%;
  634. }
  635. }
  636. ::v-deep .el-upload-notShow {
  637. .el-upload--picture-card {
  638. display: none;
  639. }
  640. }
  641. ::v-deep .labelWidth {
  642. .el-form-item__label {
  643. width: 100px;
  644. }
  645. }
  646. ::v-deep .obsImageUploads {
  647. .el-upload--picture-card {
  648. display: none;
  649. }
  650. }
  651. .ConstructionDetailsDialog {
  652. position: absolute;
  653. .projectTabs {
  654. height: 100%;
  655. overflow: hidden;
  656. overflow-y: scroll;
  657. margin-top: 4%;
  658. ::v-deep .el-tabs__content {
  659. margin-top: 1%;
  660. }
  661. ::v-deep .el-tabs__nav {
  662. border: none;
  663. overflow: hidden;
  664. overflow-x: scroll;
  665. }
  666. ::v-deep .el-tabs__item {
  667. // width: 47%;
  668. border: 1px solid #a3d3ff;
  669. border-radius: 5px;
  670. }
  671. ::v-deep .el-tabs__item.is-active {
  672. background-color: #e8f4ff;
  673. color: #1890ff;
  674. }
  675. ::v-deep .el-tabs__header {
  676. position: fixed;
  677. width: 53%;
  678. border: none;
  679. top: 13%;
  680. }
  681. ::v-deep .el-collapse-item__wrap {
  682. padding: 0 4%;
  683. }
  684. .check {
  685. position: fixed;
  686. right: 22.1%;
  687. top: 13.1%;
  688. height: 4.6%;
  689. //background-color: #CC9900;
  690. //color: #fff;
  691. }
  692. }
  693. .projectTabs::-webkit-scrollbar {
  694. display: none;
  695. }
  696. ::v-deep .rmOldPie {
  697. .el-collapse-item {
  698. border: none;
  699. }
  700. }
  701. }
  702. .personInfo > span:not(:nth-child(1)) {
  703. margin-left: 50px;
  704. }
  705. ::v-deep .checkingDialog {
  706. height: 50%;
  707. margin-top: 6%;
  708. .el-dialog__body {
  709. height: 72%;
  710. }
  711. .el-textarea__inner {
  712. width: 246%;
  713. height: 140px;
  714. }
  715. }
  716. </style>