changeFlowForm.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <div class="property-flow-form">
  3. <project-item ref="projectItem" :form="propertyForm"></project-item>
  4. <el-form :model="propertyForm" label-position="top">
  5. <el-form-item label="资产名称" required>
  6. <el-cascader v-model="departId" :options="departList" :props="defaultProps" @change="changePart"
  7. placeholder="请选择资产名称">
  8. </el-cascader>
  9. </el-form-item>
  10. <el-form-item label="变更内容" required>
  11. <el-select v-model="propertyForm.content" placeholder="请选择变更内容">
  12. <el-option label="位置变更" value="位置变更"></el-option>
  13. <el-option label="属性变更" value="属性变更"></el-option>
  14. <el-option label="业务变更" value="业务变更"></el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="变更类型" required>
  18. <el-select v-model="propertyForm.type" placeholder="请选择变更类型">
  19. <el-option label="资产购买" value="资产购买"></el-option>
  20. <el-option label="资产处置" value="资产处置"></el-option>
  21. <el-option label="资产重估" value="资产重估"></el-option>
  22. <el-option label="资产租赁" value="资产租赁"></el-option>
  23. <el-option label="资产改良" value="资产改良"></el-option>
  24. <el-option label="资产合并与分割" value="资产合并与分割"></el-option>
  25. <el-option label="资产抵押与解抵押" value="资产抵押与解抵押"></el-option>
  26. <el-option label="资产减值" value="资产减值"></el-option>
  27. <el-option label="资产捐赠" value="资产捐赠"></el-option>
  28. <el-option label="资产的法律变更" value="资产的法律变更"></el-option>
  29. </el-select>
  30. </el-form-item>
  31. <el-form-item label="变更描述" class="hui-textarea">
  32. <el-input type="textarea" v-model="propertyForm.remark" placeholder="请输入变更描述" resize="none">
  33. </el-input>
  34. </el-form-item>
  35. </el-form>
  36. </div>
  37. </template>
  38. <script>
  39. import {
  40. getDevicePartList
  41. } from '@/httpApi/property'
  42. import projectItem from '@/components/common/projectItem'
  43. import {
  44. findParentIds
  45. } from '@/uitls'
  46. export default {
  47. props: ['flowForm'],
  48. data() {
  49. return {
  50. propertyForm: {
  51. remark: '',
  52. content: '',
  53. type: ''
  54. },
  55. departList: [],
  56. departId: [],
  57. defaultProps: {
  58. children: 'children',
  59. label: 'name',
  60. value: 'id'
  61. },
  62. deviceList: []
  63. }
  64. },
  65. created() {
  66. if (JSON.stringify(this.flowForm) === "{}") return this.getPartList();
  67. this.propertyForm = this.flowForm;
  68. this.getPartList();
  69. },
  70. methods: {
  71. getPartList() {
  72. getDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
  73. if (res.state) {
  74. this.departList = res.data;
  75. this.returnChildren(this.departList);
  76. if (this.propertyForm.deviceId) this.departId = findParentIds(this.departList,
  77. -this.propertyForm.deviceId);
  78. }
  79. })
  80. },
  81. returnChildren(data) {
  82. data.forEach(item => {
  83. if (item.children && item.deviceList) {
  84. let obj = item.deviceList.map(res => {
  85. res['deviceId'] = res.id;
  86. res['id'] = -res.id;
  87. return res;
  88. })
  89. item.children = item.children.concat(obj);
  90. this.deviceList = this.deviceList.concat(obj);
  91. }
  92. if (item.children && item.children.length > 0) this.returnChildren(item.children);
  93. });
  94. },
  95. changePart() {
  96. this.propertyForm['deviceId'] = -this.departId[this.departId.length - 1];
  97. this.propertyForm['name'] = this.deviceList.filter(node => node.id === this.departId[this.departId
  98. .length - 1])[0].name;
  99. },
  100. returnForm() {
  101. let obj = this.$refs.projectItem.returnItem();
  102. this.propertyForm['projectId'] = this.$store.getters.project.id;
  103. this.propertyForm['projectItemId'] = obj.projectItem.id;
  104. this.propertyForm['projectItemTargetId'] = obj.projectItemTarget.id;
  105. return {
  106. formData: this.propertyForm,
  107. commonForm: {
  108. projectId: this.$store.getters.project.id,
  109. projectName: this.$store.getters.project.projectName,
  110. projectItemId: obj.projectItem.id,
  111. projectItemName: obj.projectItem.name,
  112. projectItemTargetId: obj.projectItemTarget.id,
  113. projectItemTargetName: obj.projectItemTarget.name,
  114. deviceId: this.propertyForm.deviceId
  115. }
  116. }
  117. }
  118. },
  119. watch: {
  120. flowForm() {
  121. if (JSON.stringify(this.flowForm) === "{}") return;
  122. this.propertyForm = this.flowForm;
  123. this.getPartList();
  124. }
  125. },
  126. components: {
  127. projectItem
  128. },
  129. }
  130. </script>
  131. <style>
  132. </style>