Houjie
2025-06-03 2fda34643bc22e25f6c569415da5f955c81536bf
pages/reportRepair/reportRepairList/reportRepairList.vue
@@ -3,6 +3,11 @@
      <cu-custom :bgColor="NavBarColor" :isBack="true" backRouterName="productionTask">
         <block slot="backText">返回</block>
         <block slot="content">报修</block>
         <block slot="right">
            <view @click="search">
               <image class="search" src="/static/icon/sear.png" style="width: 25px; height: 25px;" alt="" />
            </view>
         </block>
      </cu-custom>
      <view style="width: 100%;">
@@ -11,8 +16,9 @@
               <!-- 基础表单校验 -->
               <uni-forms ref="form" :modelValue="formData" validate-trigger="bind" err-show-type="undertext">
                  <uni-group title="" top="0">
                     <uni-forms-item name="numbers" label="领料申请单号:">
                        <uni-easyinput type="text" v-model="formData.num" placeholder="请输入领料申请单号检索" />
                     <uni-forms-item name="numbers" label="报修状态:">
                        <uni-data-select v-model="formData.reportStatus" :localdata="reportStatusList"
                           @change="changetypeList" placeholder="请选择报修状态" />
                     </uni-forms-item>
                     <uni-forms-item name="name" label="领料产品:">
                        <uni-easyinput v-model="formData.partNumNameModel" placeholder="请输入领料产品" />
@@ -33,10 +39,10 @@
            </view>
         </uni-popup>
      </view>
      <view class="flex">
      <view class="flex"  v-if="authIncludes('eam:reportRepair:add')">
         <view
            class="cuIcon-add flex-sub bg-blue padding-sm margin-xs margin-left-lg margin-right-lg text-sm text-center"
            class="cuIcon-add radius     flex-sub bg-blue padding-sm margin-xs margin-left-lg margin-right-lg text-sm text-center"
            @click="getAdd()">新增
         </view>
      </view>
@@ -49,7 +55,13 @@
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">设备编号:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-bold  radius text-right">
                        {{item.equipmentId_dictText}}
                        {{item.equipmentCode}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">设备名称:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-bold  radius text-right">
                        {{item.equipmentName}}
                     </view>
                  </view>
                  <view class="flex">
@@ -70,7 +82,12 @@
                        {{item.breakdownFlag_dictText}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">安装位置:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-blue   radius text-right">
                        {{item.installationPosition}}
                     </view>
                  </view>
                  <!-- <view class="flex">
                     <view class="flex-sub text-light bg-white  padding-xs margin-xs radius">操作:</view>
                     <view class="flex-sub bg-blue padding-xs margin-xs radius text-sm text-center"
@@ -91,16 +108,19 @@
      mixins: [MescrollMixin], // 使用mixin
      data() {
         return {
            type: 'top',
            scrollLeft: 0,
            formData: {
               num: '',
               partNumNameModel: ''
               reportStatus: ''
            },
            reportStatusList: [],
            NavBarColor: this.NavBarColor,
            activeColor: '#5277A6',
            url: {
               stallList: "/eam/eamReportRepair/list"
               stallList: "/eam/eamReportRepair/list",
               flowType: "/sys/dict/getDictItems/report_repair_status",
            },
            upOption: {
@@ -125,10 +145,17 @@
            announcement1: [],
            msg1Count: 0,
            msg2Count: 0,
            msg1Title: ""
            msg1Title: "",
            equipmentId: ''
         }
      },
      mounted() {
         console.log('从 store 获取的 auth:', this.$store.getters.getAuth)
      },
      computed: {
         authList() {
            return this.$store.getters.getAuth || []
         },
         top() {
            return this.CustomBar * 2 + 100
         },
@@ -147,8 +174,48 @@
         }
      },
      created() {},
      onLoad: function(option) {
         console.log(option)
         let queryData = {};
         try {
            queryData = JSON.parse(option.query);
         } catch (e) {
            console.error('解析 query 失败', e);
         }
         const equipmentId = queryData.equipmentId;
         console.log('设备ID:', equipmentId);
         // 你可以在这里继续使用 equipmentId 请求数据或赋值给 data
         this.equipmentId = equipmentId;
      },
      created() {
         this.getTypeList()
      },
      methods: {
         authIncludes(code) {
            return this.authList.some(auth => auth.action === code)
         },
         /**
          * 报修状态列表事件
          */
         getTypeList() {
            this.$http.get(this.url.flowType).then(res => {
               //设置列表数据
               if (res.data.success) {
                  console.log(res)
                  this.reportStatusList = res.data.result
               }
            }).catch(() => {
               //联网失败, 结束加载
            })
         },
         changetypeList(e) {
            this.formData.reportStatus = e;
         },
         getAdd() {
            uni.redirectTo({
               url: '/pages/reportRepair/reportRepair'
@@ -178,8 +245,8 @@
                  pageNo: page.num,
                  pageSize: page.size,
                  order: 'asc',
                  column: 'createTime'
                  column: 'createTime',
                  equipmentId: this.equipmentId
               },
            }).then(res => {
@@ -200,9 +267,13 @@
                  this.msgList = this.msgList.concat(this.announcement1); //追加新数据
               }
            }).catch(() => {
            }).catch((err) => {
               //联网失败, 结束加载
               this.mescroll.endErr();
               uni.showToast({
                  title: '网络异常,请稍后再试',
                  icon: 'none'
               });
            })
         },
@@ -218,125 +289,43 @@
         /* 检索 */
         getSera() {
            this.$refs.popup.close();
            let keyword = this.TabCur
            this.msgList = [];
            this.$http.get(this.url.stallList, {
               params: {
                  pageNo: 1,
                  pageSize: 9999,
                  order: "desc",
                  column: "createTime",
                  reportStatus: this.formData.reportStatus
               }
            }).then(res => {
               //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
            if (keyword == 0) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*',
                     status: 'published'
               this.announcement1 = res.data.result.records
               this.mescroll.endSuccess(this.announcement1.length);
               console.log("url", res)
               //设置列表数据
               if (res.data.success) {
                  console.log("res", res.data)
                  this.msg1Count = res.data.result.total
                  this.msg1Title = "通知(" + res.data.result.total + ")";
                  for (let annItem of this.announcement1) {
                     this.msgList.push(annItem)
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
               }
               if (page.num == 1) {
                  this.msgList = []; //如果是第一页需手动制空列表
                  this.msgList = this.msgList.concat(this.announcement1); //追加新数据
               }
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg1Count = res.data.result.total
                     this.msg1Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            } else if (keyword == 1) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     status: 'training',
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*'
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg1Count = res.data.result.total
                     this.msg2Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            } else if (keyword == 2) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     status: 'completed',
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*'
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg3Count = res.data.result.total
                     this.msg1Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            }
            }).catch((err) => {
               //联网失败, 结束加载
               this.mescroll.endErr();
               uni.showToast({
                  title: '网络异常,请稍后再试',
                  icon: 'none'
               });
            })
         },
@@ -367,7 +356,7 @@
   }
   .popupView {
      margin-top: 85px;
      margin-top: 50px;
      height: auto;
   }
</style>