fault-report.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <view class="home">
  3. <view class="device-info">
  4. <i class="iconfont icon-shebei"></i>设备信息
  5. </view>
  6. <view class="info-area">
  7. <u--form
  8. labelPosition="left"
  9. :model="model1"
  10. ref="form1"
  11. :labelWidth="100"
  12. labelAlign="center"
  13. >
  14. <u-form-item
  15. label="设备名称"
  16. prop="deviceName"
  17. borderBottom
  18. ref="item1"
  19. >
  20. {{model1.deviceName}}
  21. </u-form-item>
  22. <u-form-item
  23. label="设备编码"
  24. prop="deviceNumber"
  25. borderBottom
  26. ref="item2"
  27. >
  28. {{model1.deviceNumber}}
  29. </u-form-item>
  30. </u--form>
  31. </view>
  32. <view class="type-head">
  33. <i class="iconfont icon-dingwei"></i>请填写故障现象
  34. </view>
  35. <view class="type-area">
  36. <u--textarea
  37. border="none"
  38. v-model="fault"
  39. placeholder="请输入故障现象"
  40. autoHeight
  41. maxlength="-1"></u--textarea>
  42. </view>
  43. <view class="btn-area">
  44. <u-button color="#000" size="small" @click="toReportFault">上报</u-button>
  45. </view>
  46. <u-toast ref="uToast"></u-toast>
  47. </view>
  48. </template>
  49. <script>
  50. import { searchAsset,reportFault } from "@/api/asset.js"
  51. import cache from '@/utils/storage.js'
  52. export default {
  53. data() {
  54. return {
  55. model1: {
  56. deviceName: '',
  57. deviceNumber: '',
  58. },
  59. fault:"",
  60. id:""
  61. };
  62. },
  63. methods:{
  64. initAssets(data,str){
  65. uni.showLoading({
  66. title:str,
  67. mask:true,
  68. icon:'none'
  69. })
  70. searchAsset({barCode: data}).then(res=>{
  71. if(res.barCode===null){
  72. this.model1.deviceName = ""
  73. this.model1.deviceNumber = this.id
  74. this.$refs.uToast.show({
  75. type: 'error',
  76. icon: false,
  77. message: "该设备不存在,即将返回上一页",
  78. duration:1500
  79. })
  80. setTimeout(()=>{
  81. uni.navigateBack({
  82. delta:1
  83. })
  84. },1000)
  85. }else{
  86. this.model1.deviceName = res.name
  87. this.model1.deviceNumber = res.barCode
  88. }
  89. uni.hideLoading()
  90. })
  91. },
  92. toReportFault(){
  93. uni.showLoading({
  94. title: "正在上报中",
  95. mask: true,
  96. icon:'none'
  97. });
  98. let data = {
  99. "assetBarCode": this.model1.deviceNumber,
  100. "faultPhenomenon": this.fault,
  101. "tel": cache.session.getJSON('phone')
  102. }
  103. reportFault(data).then(res=>{
  104. uni.hideLoading()
  105. if(res.faultPhenomenon!==""){
  106. uni.showModal({
  107. title: '系统提示',
  108. content: '故障上报成功,是否返回上一页',
  109. showCancel:false,
  110. success: function (resp) {
  111. if (resp.confirm) {
  112. uni.navigateBack({
  113. delta:1
  114. })
  115. } else if (resp.cancel) {
  116. return;
  117. }
  118. }
  119. });
  120. }
  121. })
  122. }
  123. },
  124. onLoad(option) {
  125. this.id = option.id
  126. this.initAssets(option.id,'正在加载中')
  127. }
  128. }
  129. </script>
  130. <style lang="scss">
  131. page{
  132. background-color: #eae9e9;
  133. }
  134. .home{
  135. // padding: 20rpx 0;
  136. }
  137. .device-info,.type-head{
  138. display: flex;
  139. align-items: center;
  140. padding:20rpx;
  141. .iconfont{
  142. font-size: 40rpx;
  143. margin-right: 10rpx;
  144. }
  145. }
  146. .info-area,.type-area{
  147. background-color: #fff;
  148. }
  149. .type-area{
  150. padding: 0 20rpx;
  151. }
  152. .btn-area{
  153. padding: 20rpx 20rpx 20rpx 500rpx;
  154. }
  155. </style>