You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

property.js 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. import axios from 'axios';
  2. import { Date } from 'core-js';
  3. export default {
  4. namespaced: true,
  5. state: {
  6. property: {
  7. createdBy: '',
  8. propertyTypeId: 0,
  9. propertyName: '',
  10. unit: '',
  11. operationalCosts: 0.0,
  12. price: 0,
  13. pricePer: '',
  14. isSale: false,
  15. description: '',
  16. shortDescription: '',
  17. addressLine1: '',
  18. addressLine2: '',
  19. addressLine3: '',
  20. suburbId: 0,
  21. cityId: 0,
  22. provinceId: 0,
  23. published: false,
  24. propertyUserFields: [],
  25. propertyImages: [],
  26. id: 0,
  27. virtualTour: '',
  28. video: '',
  29. userId: 0,
  30. dateAvailable: Date,
  31. },
  32. propertyImages: [],
  33. propertyTypes: [],
  34. propertyTypesRes: [],
  35. propertyTypesCom: [],
  36. propertyOverviewFields: [],
  37. propertyFields: [],
  38. },
  39. mutations: {
  40. setProperty(state, property) {
  41. state.property = property;
  42. },
  43. setPropertyImages(state, images) {
  44. state.propertyImages = images;
  45. },
  46. setPropertyTypes(state, types) {
  47. state.propertyTypes = types;
  48. },
  49. setPropertyTypesRes(state, types) {
  50. state.propertyTypesRes = types;
  51. },
  52. setPropertyTypesCom(state, types) {
  53. state.propertyTypesCom = types;
  54. },
  55. setPropertyOverviewFields(state, fields) {
  56. state.propertyOverviewFields = fields;
  57. },
  58. setPropertyFields(state, fields) {
  59. state.propertyFields = fields;
  60. },
  61. updateCurrentProperty(state, property) {
  62. if (state.properties) {
  63. state.properties.push(property);
  64. }
  65. },
  66. clearProperty(state) {
  67. state.property = {
  68. createdBy: '',
  69. propertyTypeId: 0,
  70. propertyName: '',
  71. unit: '',
  72. operationalCosts: 0.0,
  73. price: 0,
  74. pricePer: '',
  75. isSale: false,
  76. description: '',
  77. shortDescription: '',
  78. addressLine1: '',
  79. addressLine2: '',
  80. addressLine3: '',
  81. suburbId: 0,
  82. cityId: 0,
  83. provinceId: 0,
  84. published: false,
  85. propertyUserFields: [],
  86. propertyImages: [],
  87. id: 0,
  88. virtualTour: '',
  89. video: '',
  90. userId: 0,
  91. dateAvailable: Date,
  92. };
  93. },
  94. clearPropertyImages(state) {
  95. state.propertyImages = [];
  96. },
  97. },
  98. getters: {},
  99. actions: {
  100. getProperty({ commit }, id) {
  101. axios
  102. .get(`/api/Property/getDetailed/${id}`)
  103. .then(result => commit('setProperty', result.data))
  104. .catch(console.error);
  105. },
  106. getPropertyImages({ commit }, id) {
  107. axios
  108. .get(`/api/PropertyImage/GetImagesByProperty/${id}`)
  109. .then(result => commit('setPropertyImages', result.data))
  110. .catch(console.error);
  111. },
  112. getPropertyTypes({ commit }, propertyType) {
  113. axios
  114. .get(`/api/PropertyType/type/${propertyType}`)
  115. .then(result => commit('setPropertyTypes', result.data))
  116. .catch(console.error);
  117. },
  118. getPropertyTypesRes({ commit }) {
  119. axios
  120. .get('/api/PropertyType/type/Residential')
  121. .then(result => commit('setPropertyTypesRes', result.data))
  122. .catch(console.error);
  123. },
  124. getPropertyTypesCom({ commit }) {
  125. axios
  126. .get('/api/PropertyType/type/Commercial')
  127. .then(result => commit('setPropertyTypesCom', result.data))
  128. .catch(console.error);
  129. },
  130. getPropertyOverviewFields({ commit }) {
  131. axios
  132. .get('/api/PropertyFields/Property Overview')
  133. .then(response => commit('setPropertyOverviewFields', response.data));
  134. },
  135. getPropertyFields({ commit }, propertyType) {
  136. axios
  137. .get(`/api/propertyFields/PropertyType/${propertyType}`)
  138. .then(response => commit('setPropertyFields', response.data));
  139. },
  140. getPropertySavedOverviewFields({ commit }, id) {
  141. axios
  142. .get(`/api/PropertyFields/GetSavedValues/Residential/Property Overview/${id}`)
  143. .then(response => commit('setPropertyOverviewFields', response.data))
  144. .catch(console.error);
  145. },
  146. getPropertySavedFields({ commit }, item) {
  147. axios
  148. .get(`/api/PropertyFields/GetSavedValues/${item.type}/All/${item.id}`)
  149. .then(response => commit('setPropertyFields', response.data))
  150. .catch(console.error);
  151. },
  152. saveProperty({ commit }, item) {
  153. return new Promise((resolve, reject) => {
  154. axios
  155. .post('/api/Property', item)
  156. .then((resp) => {
  157. commit('updateCurrentProperty', resp);
  158. resolve(resp);
  159. })
  160. .catch(() => {
  161. reject(console.error);
  162. });
  163. });
  164. },
  165. clearProperty({ commit }) {
  166. commit('clearProperty');
  167. },
  168. clearPropertyImages({ commit }) {
  169. commit('clearPropertyImages');
  170. },
  171. getSavedPropertyData({ commit }, item) {
  172. commit('clearProperty');
  173. commit('clearPropertyImages');
  174. axios
  175. .get(`/api/Property/getProperty/${item.id}`)
  176. .then(result => commit('setProperty', result.data))
  177. .catch(console.error);
  178. axios
  179. .get(`/api/PropertyImage/GetProperySavedImages/${item.id}`)
  180. .then(result => commit('setPropertyImages', result.data))
  181. .catch(console.error);
  182. axios
  183. .get(`/api/PropertyFields/GetSavedValues/Residential/Property Overview/${item.id}`)
  184. .then(response => commit('setPropertyOverviewFields', response.data))
  185. .catch(console.error);
  186. axios
  187. .get(`/api/PropertyFields/GetSavedValues/${item.type}/All/${item.id}`)
  188. .then(response => commit('setPropertyFields', response.data))
  189. .catch(console.error);
  190. },
  191. getSavedPropertyImages({ commit }, id) {
  192. axios
  193. .get(`/api/PropertyImage/GetProperySavedImages/${id}`)
  194. .then(result => commit('setPropertyImages', result.data))
  195. .catch(console.error);
  196. },
  197. },
  198. };