BuildingManagementForm.vue 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <template>
  2. <div>
  3. <el-dialog
  4. :title="title"
  5. :close-on-click-modal="false"
  6. v-dialogDrag
  7. :visible.sync="visible">
  8. <el-form :model="inputForm" size="small" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method==='view'"
  9. label-width="120px">
  10. <el-row :gutter="15">
  11. <!-- <el-col :span="12">
  12. <el-form-item label="所属园区" prop="parkManagement.id"
  13. :rules="[
  14. ]">
  15. <GridSelect
  16. title="选择所属园区"
  17. labelName = 'parkName'
  18. labelValue = 'id'
  19. :value = "inputForm.parkManagement.id"
  20. :limit="1"
  21. @getValue='(value) => {inputForm.parkManagement.id=value}'
  22. :columns="[
  23. {
  24. prop: 'parkName',
  25. label: '园区名称'
  26. },
  27. {
  28. prop: 'placeSelectName',
  29. label: '地点'
  30. },
  31. {
  32. prop: 'street',
  33. label: '街道'
  34. },
  35. {
  36. prop: 'propertyPerson',
  37. label: '物业联系人'
  38. },
  39. {
  40. prop: 'propertyPhone',
  41. label: '物业联系电话'
  42. }
  43. ]"
  44. :searchs="[
  45. {
  46. prop: 'parkName',
  47. label: '园区名称'
  48. }
  49. ]"
  50. dataListUrl="/parkmanagement/parkManagement/list"
  51. queryEntityUrl="/parkmanagement/parkManagement/queryById">
  52. </GridSelect>
  53. </el-form-item>
  54. </el-col> -->
  55. <el-col :span="12">
  56. <el-form-item label="园区名称" prop="buildingName"
  57. :rules="[
  58. {required: true, message:'园区名称不能为空', trigger:'blur'}
  59. ]">
  60. <el-input v-model="inputForm.buildingName" placeholder="请填写园区名称" ></el-input>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="24">
  64. <el-form-item label="园区简介" prop="buildingDescribe"
  65. :rules="[
  66. ]">
  67. <el-input type="textarea" v-model="inputForm.buildingDescribe" placeholder="请填写园区简介" ></el-input>
  68. </el-form-item>
  69. </el-col>
  70. <!-- <el-col :span="12">
  71. <el-form-item label="楼宇经度" prop="buildingLongitude"
  72. :rules="[
  73. ]">
  74. <el-input v-model="inputForm.buildingLongitude" placeholder="请填写楼宇经度" ></el-input>
  75. </el-form-item>
  76. </el-col>
  77. <el-col :span="12">
  78. <el-form-item label="楼宇纬度" prop="buildingLatitude"
  79. :rules="[
  80. ]">
  81. <el-input v-model="inputForm.buildingLatitude" placeholder="请填写楼宇纬度" ></el-input>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="12">
  85. <el-form-item label="楼宇联系人" prop="buildingContacts"
  86. :rules="[
  87. {required: true, message:'楼宇联系人不能为空', trigger:'blur'}
  88. ]">
  89. <el-input v-model="inputForm.buildingContacts" placeholder="请填写楼宇联系人" ></el-input>
  90. </el-form-item>
  91. </el-col>
  92. <el-col :span="12">
  93. <el-form-item label="楼宇联系人电话" prop="reserve2"
  94. :rules="[
  95. {required: true, message:'楼宇联系人电话不能为空', trigger:'blur'}
  96. ]">
  97. <el-input v-model="inputForm.reserve2" placeholder="请填写楼宇联系人电话电话" ></el-input>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="12">
  101. <el-form-item label="楼宇层数" prop="buildingNum"
  102. :rules="[
  103. ]">
  104. <el-input v-model="inputForm.buildingNum" placeholder="请填写楼宇层数" ></el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="12">
  108. <el-form-item label="楼宇总面积" prop="buildingArea"
  109. :rules="[
  110. {required: true, message:'楼宇总面积不能为空', trigger:'blur'}
  111. ]">
  112. <el-input v-model="inputForm.buildingArea" placeholder="请填写楼宇总面积" ></el-input>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="12">
  116. <el-form-item label="地点" prop="placeSelectName"
  117. :rules="[
  118. ]">
  119. <el-input v-model="inputForm.placeSelectName" placeholder="请填写地点" disabled="disabled" ></el-input>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :span="12">
  123. <el-form-item label="街道" prop="street"
  124. :rules="[
  125. ]">
  126. <el-select v-model="inputForm.street" placeholder="请选择" style="width: 100%;">
  127. <el-option
  128. v-for="item in $dictUtils.getDictList('region_management')"
  129. :key="item.value"
  130. :label="item.label"
  131. :value="item.value">
  132. </el-option>
  133. </el-select>
  134. </el-form-item>
  135. </el-col>
  136. <el-col :span="12"> <el-form-item label="楼宇状态" prop="reserve4" :rules="[ ]"> <el-select v-model="inputForm.reserve4" placeholder="请选择" style="width: 100%;"> <el-option v-for="item in $dictUtils.getDictList('building_state')" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> </el-col> -->
  137. <el-col :span="24">
  138. <el-form-item label="产业布局图片" prop="picture"
  139. :rules="[
  140. ]">
  141. <image-upload v-model="inputForm.picture" :limit="3" tip="最多上传3个图片,单个图片不要超过10M"></image-upload>
  142. </el-form-item>
  143. </el-col>
  144. <!-- <el-col :span="24">
  145. <el-form-item label="楼宇描述" prop="buildingDescribe"
  146. :rules="[
  147. ]">
  148. <el-input type="textarea" v-model="inputForm.buildingDescribe" placeholder="请填写楼宇描述" ></el-input>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="24">
  152. <el-form-item label="备注" prop="notes"
  153. :rules="[
  154. ]">
  155. <el-input type="textarea" v-model="inputForm.notes" placeholder="请填写备注" ></el-input>
  156. </el-form-item>
  157. </el-col> -->
  158. </el-row>
  159. </el-form>
  160. <span slot="footer" class="dialog-footer">
  161. <el-button size="small" @click="visible = false">关闭</el-button>
  162. <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" v-noMoreClick>确定</el-button>
  163. </span>
  164. </el-dialog>
  165. </div>
  166. </template>
  167. <script>
  168. import GridSelect from '@/components/gridSelect'
  169. import buildingManagementService from '@/api/buildinginfo/buildingManagementService'
  170. export default {
  171. data () {
  172. return {
  173. title: '',
  174. method: '',
  175. visible: false,
  176. loading: false,
  177. inputForm: {
  178. id: '',
  179. parkManagement: {
  180. id: ''
  181. },
  182. buildingName: '',
  183. buildingLongitude: '',
  184. buildingLatitude: '',
  185. buildingContacts: '',
  186. buildingDescribe: '',
  187. buildingNum: '',
  188. buildingArea: '',
  189. buildingIndustry: '',
  190. placeSelectName: '盐城市/盐都区',
  191. street: '',
  192. placeDetailed: '',
  193. picture: '',
  194. notes: '',
  195. reserve4: '',
  196. reserve2: ''
  197. }
  198. }
  199. },
  200. components: {
  201. GridSelect
  202. },
  203. methods: {
  204. init (method, id) {
  205. this.method = method
  206. this.inputForm.id = id
  207. if (method === 'add') {
  208. this.title = `新建楼宇信息`
  209. } else if (method === 'edit') {
  210. this.title = '修改楼宇信息'
  211. } else if (method === 'view') {
  212. this.title = '查看楼宇信息'
  213. }
  214. this.visible = true
  215. this.loading = false
  216. this.$nextTick(() => {
  217. this.$refs.inputForm.resetFields()
  218. if (method === 'edit' || method === 'view') { // 修改或者查看
  219. this.loading = true
  220. buildingManagementService.queryById(this.inputForm.id).then(({data}) => {
  221. this.inputForm = this.recover(this.inputForm, data)
  222. this.loading = false
  223. })
  224. }
  225. })
  226. },
  227. // 表单提交
  228. doSubmit () {
  229. this.$refs['inputForm'].validate((valid) => {
  230. if (valid) {
  231. this.loading = true
  232. buildingManagementService.save(this.inputForm).then(({data}) => {
  233. this.visible = false
  234. this.$message.success(data)
  235. this.$emit('refreshDataList')
  236. this.loading = false
  237. }).catch(() => {
  238. this.loading = false
  239. })
  240. }
  241. })
  242. }
  243. }
  244. }
  245. </script>