guoshilong
2022-11-23 998b75f0d4aaed03001ec4246cd4f3b4b0743b7e
src/views/eventgm/eventgm.vue
@@ -1,6 +1,6 @@
<template>
  <basic-container>
    <avue-crud :option="option"
    <avue-crud v-show="!detailVisible" :option="option"
               :table-loading="loading"
               :data="data"
               :page.sync="page"
@@ -8,9 +8,11 @@
               :before-open="beforeOpen"
               v-model="form"
               ref="crud"
               :upload-before="uploadBefore"
               @row-update="rowUpdate"
               @row-save="rowSave"
               @row-del="rowDel"
               @row-dblclick="rowClick"
               @search-change="searchChange"
               @search-reset="searchReset"
               @selection-change="selectionChange"
@@ -21,10 +23,10 @@
      <template slot-scope="{type,size,row,index}" slot="menuBtn">
        <el-dropdown-item icon="el-icon-check" :size="size" :type="type"
                          :disabled="row.state >= 1"
                          @click.native="createOrder">生成维修工单</el-dropdown-item>
                          @click.native="handleRepairsOrder(row)">生成维修工单</el-dropdown-item>
        <!--divided 是一个划分线-->
        <el-dropdown-item divided icon="el-icon-error" :size="size" :type="type"
                          :disabled="row.state >= 2"
                          :disabled="row.state >= 1"
                          @click.native="handleDisposal(row)">拒 绝</el-dropdown-item>
      </template>
      <template slot-scope="{type,size,row,index}" slot="menu">
@@ -44,6 +46,10 @@
    <!-- 弹窗, 事件处置 -->
    <disposal v-if="disposalVisible" ref="disposal" @refreshOnLoad="refreshChange"></disposal>
    <!-- 弹窗, 生成维修工单 -->
    <repairs-order v-if="repairsOrderVisible" ref="repairsOrder" @refreshOnLoad="refreshChange"></repairs-order>
    <!--显示详情-->
    <eventgm-detail v-if="detailVisible" ref="detailVisible" :detailInfo="detailInfo" @isDetail="isDetail"></eventgm-detail>
  </basic-container>
</template>
@@ -52,9 +58,13 @@
  import option from "@/const/eventgm/eventgm";
  import {mapGetters} from "vuex";
  import disposal from "./disposal.vue"
  import RepairsOrder from "@/views/eventgm/repairsOrder";
  import EventgmDetail from "@/views/eventgm/eventgmDetail";
  export default {
    components: {
      EventgmDetail,
      RepairsOrder,
      disposal
    },
    data() {
@@ -70,7 +80,10 @@
        selectionList: [],
        option: option,
        data: [],
        disposalVisible: false
        disposalVisible: false,
        repairsOrderVisible:false,
        detailVisible:false,
        detailInfo:{},
      };
    },
    computed: {
@@ -105,6 +118,9 @@
    },
    methods: {
      rowSave(row, done, loading) {
        if (!row.picUrls){
          row.picUrls = null
        }
        add(row).then(() => {
          this.onLoad(this.page);
          this.$message({
@@ -172,7 +188,6 @@
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getDetail(this.form.id).then(res => {
            console.log(res);
            this.form = res.data.data;
            this.form.avueMapAddress = {
              "formattedAddress": this.form.address,
@@ -192,6 +207,11 @@
      },
      searchChange(params, done) {
        this.query = params;
        if (this.query.daterange){
          this.query.startTime = this.query.daterange[0]
          this.query.endTime = this.query.daterange[1]
          this.query.daterange = null
        }
        this.page.currentPage = 1;
        this.onLoad(this.page, params);
        done();
@@ -222,13 +242,36 @@
          this.selectionClear();
        });
      },
      uploadBefore(file, done, loading,column) {
        if (["image","video"].includes(file.type.split("/")[0])){
          done()
        }else {
          this.$message.warning('请上传图片或视频')
          loading()
        }
      },
      handleDisposal(row) {
        this.disposalVisible = true
        this.$nextTick(() => {
          this.$refs.disposal.init(row)
        })
      },
      createOrder(){}
      handleRepairsOrder(row){
        this.repairsOrderVisible = true
        this.$nextTick(() => {
          this.$refs.repairsOrder.init(row)
        })
      },
      createOrder(){},
      //点击当前行事件
      rowClick(val){
        // this.$router.push({ path: "/eventgm/eventgmDetail", query: val });
        this.detailInfo = val
        this.isDetail();
      },
      isDetail(){
        this.detailVisible = !this.detailVisible
      }
    }
  };
</script>