index.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <!--
  2. *@description: 工程节点信息dialog
  3. *@author: yh Fu
  4. *@date: 2024-01-03 14:27:02
  5. *@version: V1.0.5
  6. -->
  7. <template>
  8. <el-dialog :visible="nodeDetailVisible" :rules="nodeRules" title="节点信息" append-to-body customClass="appendElNodeDialog">
  9. <el-form ref="nodeForm" :model="zEngineeringInfoBo" :rules="nodeRules" label-width="110px">
  10. <el-form-item label="节点类型" prop="type">
  11. <el-input v-model="nodeType" placeholder="顶管" disabled></el-input>
  12. </el-form-item>
  13. <el-form-item label="施工地址" prop="constructAddre">
  14. <el-input v-model="zEngineeringInfoBo.constructAddre" placeholder="请填写施工地址"></el-input>
  15. </el-form-item>
  16. <el-form-item label="施工人电话" prop="constructPhone">
  17. <el-input v-model="zEngineeringInfoBo.constructPhone" placeholder="请填写施工人电话"></el-input>
  18. </el-form-item>
  19. <el-form-item label="施工人" prop="constructUser">
  20. <el-input v-model="zEngineeringInfoBo.constructUser" placeholder="请填写施工人"></el-input>
  21. </el-form-item>
  22. <el-form-item label="负责人" prop="headName">
  23. <el-input v-model="zEngineeringInfoBo.headName" placeholder="请填写负责人"></el-input>
  24. </el-form-item>
  25. <el-form-item label="负责人电话" prop="headPhone">
  26. <el-input v-model="zEngineeringInfoBo.headPhone" placeholder="请填写负责人电话"></el-input>
  27. </el-form-item>
  28. <el-form-item label="回填时间" prop="backfillTime">
  29. <el-date-picker
  30. v-model="zEngineeringInfoBo.backfillTime"
  31. value-format="yyyy-MM-dd hh:mm:ss"
  32. type="datetime"
  33. placeholder="请选择回填日期">
  34. </el-date-picker>
  35. </el-form-item>
  36. <el-form-item label="施工时间" prop="constructTime">
  37. <el-date-picker
  38. v-model="zEngineeringInfoBo.constructTime"
  39. value-format="yyyy-MM-dd hh:mm:ss"
  40. type="datetime"
  41. placeholder="请选择施工时间">
  42. </el-date-picker>
  43. </el-form-item>
  44. <el-form-item label="是否按图纸施工" prop="constructAccordingDrawings">
  45. <el-select v-model="zEngineeringInfoBo.constructAccordingDrawings">
  46. <el-option
  47. v-for="e in constructAccordingDrawingsOption"
  48. :key="e.value"
  49. :label="e.label"
  50. :value="e.value"
  51. ></el-option>
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="分段打压" prop="segmentedCompressionQualified">
  55. <el-select v-model="zEngineeringInfoBo.segmentedCompressionQualified">
  56. <el-option
  57. v-for="e in segmentedCompressionQualifiedOption"
  58. :key="e.value"
  59. :label="e.label"
  60. :value="e.value"
  61. ></el-option>
  62. </el-select>
  63. </el-form-item>
  64. <el-form-item label="自闭阀类型" prop="selfClosingValveType">
  65. <el-select v-model="zEngineeringInfoBo.selfClosingValveType">
  66. <el-option
  67. v-for="e in dict.type.self_closing_valve_type"
  68. :key="e.value"
  69. :label="e.label"
  70. :value="e.value"
  71. ></el-option>
  72. </el-select>
  73. </el-form-item>
  74. <el-form-item label="上门类型" prop="visitType">
  75. <el-select v-model="zEngineeringInfoBo.visitType">
  76. <el-option
  77. v-for="e in dict.type.visit_type"
  78. :key="e.value"
  79. :label="e.label"
  80. :value="e.value"
  81. ></el-option>
  82. </el-select>
  83. </el-form-item>
  84. <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
  85. <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
  86. @input="getUrl"></ObsImageUpload>
  87. </el-form-item>
  88. <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
  89. <el-button @click="nodeCancel">取 消</el-button>
  90. </el-form>
  91. </el-dialog>
  92. </template>
  93. <script>
  94. import {
  95. addEnginee, // 新增工业工程
  96. addEngineeringDangerous, // 新增危险作业工程
  97. addEngineeringPipeJacking, // 新增顶管工程
  98. putEngineeringPipeJacking, // 修改顶管工程
  99. } from "@/api/zdsz/enginee"
  100. export default {
  101. name:'EngineeNode',
  102. dicts:['pass_check','is_repair','engin_type','self_closing_valve_type','visit_type'],
  103. data(){
  104. return {
  105. params:{}, // 所有参数集合
  106. nodeDetailVisible:false,
  107. // 节点规则校验
  108. nodeRules:{
  109. type: [
  110. { required: true, message: "施工地址不能为空" ,trigger: 'blur'}
  111. ],
  112. constructAddre: [
  113. { required: true, message: "施工地址不能为空" ,trigger: 'blur'}
  114. ],
  115. constructPhone: [
  116. { required: true, message: "施工人电话不能为空" ,trigger: 'blur'}
  117. ],
  118. constructUser: [
  119. { required: true, message: "施工人不能为空" ,trigger: 'blur'}
  120. ],
  121. headName: [
  122. { required: true, message: "负责人不能为空" ,trigger: 'blur'}
  123. ],
  124. headPhone: [
  125. { required: true, message: "负责人电话不能为空" ,trigger: 'blur'}
  126. ],
  127. },
  128. zEngineeringInfoBo:{
  129. constructAddre:'', // 施工地址
  130. constructPhone:'', // 施工人电话
  131. constructUser:'', // 施工人
  132. headName:'', // 负责人
  133. headPhone:'', // 负责人电话
  134. constructAccordingDrawings:'', // 是否按图纸施工
  135. segmentedCompressionQualified:'', // 分段打压是否合格
  136. selfClosingValveType:'', // 自闭阀类型
  137. visitType:'', // 上门类型
  138. backfillTime:'', // 回填时间
  139. constructTime:'', // 施工时间
  140. zEngiineeringPhotoBoList:[], // 图片列表
  141. zEngineeringMaterialBo:[],// 用料对象
  142. }, // 节点信息
  143. constructAccordingDrawingsOption:[
  144. {
  145. value:'1',
  146. label:'是'
  147. },
  148. {
  149. value:'0',
  150. label:'否'
  151. }
  152. ],
  153. segmentedCompressionQualifiedOption:[
  154. {
  155. value:'1',
  156. label:'是'
  157. },
  158. {
  159. value:'0',
  160. label:'否'
  161. }
  162. ],
  163. currentType:null , // 民用工程 0 ,市政工程 1,工业工程 2 ,顶管工程 3,危险作业工程 4,基建工程 5
  164. }
  165. },
  166. methods:{
  167. getUrl(url) {
  168. this.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList?this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
  169. },
  170. nodeCancel(){
  171. this.nodeDetailVisible = false
  172. },
  173. created() {
  174. this.params = this.queryParams
  175. },
  176. // 提交表单 创建新工程
  177. submitForm() {
  178. // this.$refs["nodeForm"].validate(valid => {
  179. // if (valid) {
  180. switch(this.currentType){
  181. case 4 :
  182. // 危险作业工程
  183. this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
  184. console.log(this.params)
  185. addEngineeringDangerous(this.params).then(res => {
  186. console.log(res)
  187. })
  188. break;
  189. case 10 :
  190. // 顶管新增
  191. this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
  192. addEngineeringPipeJacking(this.params).then(res => {
  193. if(res.code == 200){
  194. this.$message({
  195. message: '新增成功',
  196. type: 'success'
  197. });
  198. this.$emit('closeToSucceed')
  199. this.nodeDetailVisible = false
  200. }
  201. })
  202. break;
  203. case 15 :
  204. // 顶管修改
  205. this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
  206. putEngineeringPipeJacking(this.params).then(res => {
  207. console.log('________',res)
  208. if(res.code == 200){
  209. this.$message({
  210. message: '修改成功',
  211. type: 'success'
  212. });
  213. this.$emit('closeToSucceed')
  214. this.nodeDetailVisible = false
  215. }
  216. })
  217. break;
  218. }
  219. // this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
  220. // console.log(this.queryParams)
  221. // addEnginee(this.queryParams).then(res => {
  222. // console.log(res)
  223. // })
  224. // }
  225. // });
  226. },
  227. open(queryParams,type){
  228. this.currentType = type
  229. this.params = queryParams
  230. this.nodeDetailVisible = true
  231. if(type == 15){
  232. this.zEngineeringInfoBo = this.params.zEngineeringNodeBo.zEngineeringInfoBo
  233. }
  234. },
  235. reset(){
  236. this.$refs['nodeForm'].resetFields()
  237. this.resetForm("nodeForm");
  238. }
  239. }
  240. }
  241. </script>
  242. <style lang="scss" scoped>
  243. ::v-deep .appendElNodeDialog{
  244. // width: 70%;
  245. height: 80%;
  246. .el-dialog__body{
  247. height: 85%;
  248. }
  249. .el-form-item{
  250. margin-bottom: 22px;
  251. width: 44%;
  252. display: inline-block;
  253. }
  254. .el-form-item:nth-child(2n+2){
  255. margin-left: 5%;
  256. }
  257. .el-form-item:not(:nth-child(1):nth-child(2)){
  258. margin-top: 0.5%;
  259. }
  260. }
  261. </style>