temp.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <script setup lang="ts">
  2. import { onMounted } from 'vue'
  3. import { clientDownloadExcel, clientGet, clientPost } from '@/utils/request.ts'
  4. import { ElLoading, ElMessage } from 'element-plus'
  5. interface Property {
  6. id: string; // 主键
  7. receiptNumber?: string; // 收据号
  8. building?: string; // 楼栋
  9. roomNumber?: string; // 房号
  10. collectionTime?: Date; // 收取时间
  11. rent?: number; // 房租
  12. deposit?: number; // 押金
  13. waterFee?: number; // 水费
  14. electricityFee?: number; // 电费
  15. propertyManagementFee?: number; // 物业管理费
  16. rentPeriod?: string; // 租金收取时段
  17. handler?: string; // 经手人
  18. remarks?: string; // 备注
  19. createTime?: Date; // 创建时间
  20. createBy?: string; // 创建人
  21. updateTime?: Date; // 修改时间
  22. updateBy?: string; // 修改人
  23. }
  24. interface PropertyOneResponse extends BaseResponse{
  25. data: Property;
  26. }
  27. interface PropertyListResponse extends BaseResponse{
  28. data: PageType<Property>;
  29. }
  30. interface AddProperty {
  31. receiptNumber?: string; // 收据号
  32. building?: string; // 楼栋
  33. roomNumber?: string; // 房号
  34. collectionTime?: Date; // 收取时间
  35. rent?: number; // 房租
  36. deposit?: number; // 押金
  37. waterFee?: number; // 水费
  38. electricityFee?: number; // 电费
  39. propertyManagementFee?: number; // 物业管理费
  40. rentPeriod?: string; // 租金收取时段
  41. handler?: string; // 经手人
  42. remarks?: string; // 备注
  43. }
  44. interface UpdateProperty {
  45. id?: string;
  46. receiptNumber?: string; // 收据号
  47. building?: string; // 楼栋
  48. roomNumber?: string; // 房号
  49. collectionTime?: Date; // 收取时间
  50. rent?: number; // 房租
  51. deposit?: number; // 押金
  52. waterFee?: number; // 水费
  53. electricityFee?: number; // 电费
  54. propertyManagementFee?: number; // 物业管理费
  55. rentPeriod?: string; // 租金收取时段
  56. handler?: string; // 经手人
  57. remarks?: string; // 备注
  58. }
  59. //新增
  60. const add = async (data:AddProperty) =>{
  61. const res = await clientPost<AddProperty,BaseResponse>('/apublicRentalHousing/save',{
  62. ...data
  63. })
  64. if(res.code !== 200){
  65. ElMessage.error(res.msg);
  66. return;
  67. }
  68. ElMessage.success(res.msg);
  69. }
  70. //根据id获取数据
  71. const getById = async (id:string) =>{
  72. const res = await clientGet<null,PropertyOneResponse>('/apublicRentalHousing/getById/'+id);
  73. if(res.code !== 200){
  74. ElMessage.error(res.msg);
  75. return;
  76. }
  77. console.log(res.data);
  78. }
  79. //分页获取数据
  80. const getList = async () =>{
  81. const res = await clientGet<{
  82. pageNum: number;
  83. pageSize: number;
  84. receiptNumber?: string;
  85. roomNumber?: string;
  86. building?: string;
  87. },PropertyListResponse>('/apublicRentalHousing/findByPage',{
  88. params:{
  89. pageNum: 1,
  90. pageSize: 10,
  91. building:'',//这是模糊搜索的值(如果没有值就不要传个空的过去)
  92. roomNumber:'',//这是模糊搜索的值(如果没有值就不要传个空的过去)
  93. receiptNumber:''//这是模糊搜索的值(如果没有值就不要传个空的过去)
  94. }
  95. });
  96. if(res.code !== 200){
  97. ElMessage.error(res.msg);
  98. return;
  99. }
  100. console.log(res.data);
  101. }
  102. //批量删除
  103. const delBatch = async (ids: string[]) => {
  104. const res = await clientPost<string, BaseResponse>('/apublicRentalHousing/deleteBatch', JSON.stringify(ids));
  105. if (res.code !== 200) {
  106. ElMessage.error(res.msg)
  107. return
  108. }
  109. ElMessage.success(res.msg)
  110. }
  111. //修改
  112. const update = async (updateId:string,data:UpdateProperty) =>{
  113. const res = await clientPost<UpdateProperty,BaseResponse>('/apublicRentalHousing/update',{
  114. ...data,
  115. id:updateId
  116. })
  117. if(res.code !== 200){
  118. ElMessage.error(res.msg);
  119. return;
  120. }
  121. ElMessage.success(res.msg);
  122. }
  123. //导出为excel
  124. const exportExcel = async () => {
  125. const loading = ElLoading.service({
  126. lock: true,
  127. text: '导出中,请稍候...',
  128. background: 'rgba(0, 0, 0, 0.1)',
  129. fullscreen: true,
  130. })
  131. try {
  132. await clientDownloadExcel('/apublicRentalHousing/exportData', {
  133. params: {
  134. roomNumber: '',//这是模糊搜索的值(如果没有值就不要传个空的过去)
  135. building: '',//这是模糊搜索的值(如果没有值就不要传个空的过去)
  136. receiptNumber: '',//这是模糊搜索的值(如果没有值就不要传个空的过去)
  137. },
  138. })
  139. } catch (error) {
  140. console.error('导出失败:', error)
  141. ElMessage.error('导出失败')
  142. } finally {
  143. loading.close()
  144. }
  145. }
  146. //excel导入
  147. const importExcel = async (file: File) => {
  148. const res = await clientPost<{file: File},BaseResponse>('/apublicRentalHousing/importData',{
  149. file
  150. })
  151. if(res.code !== 200){
  152. ElMessage.error(res.msg);
  153. return;
  154. }
  155. ElMessage.success(res.msg);
  156. }
  157. const init = () => {
  158. }
  159. onMounted(()=>{
  160. init();
  161. })
  162. </script>
  163. <template>
  164. <div>公租房收入情况信息</div>
  165. </template>