无人机管理后台前端(已迁走)
chenyao
2025-09-28 22e5a6b2be5fc91dfa9db53753f79b2c93440073
src/views/tickets/orderLog.vue
@@ -9,140 +9,150 @@
      >
        <basic-main-content>
          <!-- 查询条件筛选栏 -->
          <div class="filter-bar">
            <div class="search-bar-box">
              <div class="search-bar-box-item">
                <el-input
                  v-model="filters.key_word"
                  placeholder="输入工单编号/名称/内容/姓名"
                  clearable
                  @keyup.enter="handleSearch"
                />
              </div>
          <div class="ztzf-form-search">
            <el-form :model="filters" inline>
              <el-row :gutter="24">
                <el-col :span="4">
                  <el-form-item label="关键字:">
                    <el-input
                      v-model="filters.key_word"
                      placeholder="编号/名称/内容/姓名"
                      clearable
                      @keyup.enter="handleSearch"
                    />
                  </el-form-item>
              <!--              <div class="search-bar-box-item">-->
              <!--                <el-select placeholder="请选择所属单位" v-model="filters.create_dept" clearable>-->
              <!--                  <el-option v-for="dept in departments" :key="dept.value" :label="dept.label" :value="dept.value" />-->
              <!--                </el-select>-->
              <!--              </div>-->
                  <!--              <div class="search-bar-box-item">-->
                  <!--                <el-select placeholder="请选择所属单位" v-model="filters.create_dept" clearable>-->
                  <!--                  <el-option v-for="dept in departments" :key="dept.value" :label="dept.label" :value="dept.value" />-->
                  <!--                </el-select>-->
                  <!--              </div>-->
              <div class="search-bar-box-item">
                <el-date-picker
                  @change="handleSearch"
                  v-model="filters.dateRange"
                  type="daterange"
                  range-separator="至"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                  :default-value="datePickerDefaultVal"
                />
              </div>
                </el-col>
                <el-col :span="8">
                  <el-form-item label="选择日期:">
                    <el-date-picker
                      @change="handleSearch"
                      v-model="filters.dateRange"
                      type="daterange"
                      range-separator="至"
                      start-placeholder="开始日期"
                      end-placeholder="结束日期"
                      :default-value="datePickerDefaultVal"
                    />
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item label="关联航线:">
                    <el-select
                      @change="handleSearch"
                      v-model="filters.file_id"
                      placeholder="请选择关联航线"
                      filterable
                      clearable
                    >
                      <el-option
                        v-for="item in wayLineList"
                        :key="item.wayline_id"
                        :label="item.name"
                        :value="item.wayline_id"
                      />
                    </el-select>
                  </el-form-item>
                </el-col>
                <el-col :span="4">
                  <el-form-item label="关联算法:">
                    <el-select
                      @change="handleSearch"
                      v-model="filters.ai_types"
                      placeholder="关联算法"
                      clearable
                    >
                      <el-option
                        v-for="item in ai_types"
                        :key="item.dictKey"
                        :label="item.dictValue"
                        :value="item.dictKey"
                      />
                    </el-select>
                  </el-form-item>
              <div class="search-bar-box-item">
                <el-select
                  @change="handleSearch"
                  v-model="filters.file_id"
                  placeholder="请选择关联航线"
                  filterable
                  clearable
                >
                  <el-option
                    v-for="item in wayLineList"
                    :key="item.wayline_id"
                    :label="item.name"
                    :value="item.wayline_id"
                  />
                </el-select>
              </div>
                  <!-- <div class="search-bar-box-item">
                    <el-select v-model="filters.type" placeholder="请选择工单类型" clearable>
                      <el-option v-for="item in types" :key="item.dictValue" :label="item.dictValue"
                        :value="item.dictKey" />
                    </el-select>
                  </div> -->
              <div class="search-bar-box-item">
                <el-select
                  @change="handleSearch"
                  v-model="filters.ai_types"
                  placeholder="关联算法"
                  clearable
                >
                  <el-option
                    v-for="item in ai_types"
                    :key="item.dictKey"
                    :label="item.dictValue"
                    :value="item.dictKey"
                  />
                </el-select>
              </div>
              <!-- <div class="search-bar-box-item">
                <el-select v-model="filters.type" placeholder="请选择工单类型" clearable>
                  <el-option v-for="item in types" :key="item.dictValue" :label="item.dictValue"
                    :value="item.dictKey" />
                </el-select>
              </div> -->
              <div class="search-bar-box-item">
                <el-select
                  @change="handleSearch"
                  v-model="filters.status"
                  placeholder="请选择工单状态"
                  clearable
                  :disabled="activeTab !== 'all'"
                >
                  <el-option
                    v-for="item in statuses"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  />
                </el-select>
              </div>
            </div>
            <div class="search-bar-box">
              <div class="search-bar-box-item flex-2">
                <el-date-picker
                  @change="handleSearch"
                  v-model="filters.cycleDateRange"
                  type="daterange"
                  range-separator="至"
                  start-placeholder="工单周期开始日期"
                  end-placeholder="工单周期结束日期"
                  :default-value="datePickerDefaultVal"
                />
              </div>
              <div class="search-bar-box-item">
                <el-select
                  @change="handleSearch"
                  v-model="filters.rep_fre_type"
                  placeholder="请选择频次"
                  clearable
                >
                  <el-option v-for="item in cycles" :key="item" :label="item" :value="item" />
                </el-select>
              </div>
              <div class="search-bar-box-item">
                <el-time-picker
                  @change="handleSearch"
                  v-model="filters.deal_time"
                  placeholder="请选择执行时间"
                  prop="deal_time"
                  value-format="HH:mm"
                  :picker-options="{
                </el-col>
                <el-col :span="4">
                  <el-form-item label="工单状态:">
                    <el-select
                      @change="handleSearch"
                      v-model="filters.status"
                      placeholder="请选择工单状态"
                      clearable
                      :disabled="activeTab !== 'all'"
                    >
                      <el-option
                        v-for="item in statuses"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value"
                      />
                    </el-select>
                  </el-form-item>
                </el-col>
                </el-row>
                <el-row :gutter="24">
                  <el-col :span="8">
                    <el-form-item label="工单周期:">
                      <el-date-picker
                        @change="handleSearch"
                        v-model="filters.cycleDateRange"
                        type="daterange"
                        range-separator="至"
                        start-placeholder="工单周期开始日期"
                        end-placeholder="工单周期结束日期"
                        :default-value="datePickerDefaultVal"
                      />
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-form-item label="选择频次:">
                      <el-select
                        @change="handleSearch"
                        v-model="filters.rep_fre_type"
                        placeholder="请选择频次"
                        clearable
                      >
                        <el-option v-for="item in cycles" :key="item" :label="item" :value="item" />
                      </el-select>
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-form-item label="执行时间:">
                      <el-time-picker
                        @change="handleSearch"
                        v-model="filters.deal_time"
                        placeholder="请选择执行时间"
                        prop="deal_time"
                        value-format="HH:mm"
                        :picker-options="{
                    selectableRange: '00:00 - 23:59',
                  }"
                />
              </div>
              <div class="search-bar-box-item"></div>
              <div class="search-bar-box-item"></div>
              <div class="search-bar-box-item search-btn">
                <el-button type="primary" icon="el-icon-search" @click="handleSearch"
                >搜索</el-button
                >
                <el-button icon="el-icon-refresh" @click="handleReset">清空</el-button>
              </div>
            </div>
                      />
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-button type="primary" icon="el-icon-search" @click="handleSearch"
                    >搜索
                    </el-button
                    >
                    <el-button icon="el-icon-refresh" @click="handleReset">清空</el-button>
                  </el-col>
                </el-row>
            </el-form>
          </div>
          <!-- 表格部分 -->
@@ -178,10 +188,12 @@
                type="primary"
                icon="el-icon-plus"
                @click="handleAdd"
              >新建工单</el-button
              >新建工单
              </el-button
              >
              <el-button type="success" plain icon="el-icon-download" @click="exportData"
              >导出</el-button
              >导出
              </el-button
              >
            </template>
@@ -193,7 +205,8 @@
                    type="text"
                    icon="el-icon-view"
                    @click="handleCheckDetail(row)"
                  >审核</el-button
                  >审核
                  </el-button
                  >
                </template>
                <!-- v-if="
@@ -207,42 +220,50 @@
                    icon="el-icon-warning"
                    v-if="hasRecallPaddingBtnPermission()"
                    @click="orderLogRecall(row.id)"
                  >撤回</el-button
                  >撤回
                  </el-button
                  >
                  <!-- <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)">详情</el-button> -->
                </template>
                <!--已驳回-->
                <template v-if="row.status == 2">
                  <el-button type="text" icon="el-icon-warning" @click="rejectDetail(row.id)"
                  >驳回原因</el-button
                  >驳回原因
                  </el-button
                  >
                  <el-button
                    v-if="userInfo.user_id == row.create_user"
                    type="text"
                    icon="el-icon-view"
                    @click="handleViewDetail(row)"
                  >编辑</el-button
                  >编辑
                  </el-button
                  >
                  <el-button v-else type="text" icon="el-icon-view" @click="handleViewDetail(row)"
                  >详情</el-button
                  >详情
                  </el-button
                  >
                </template>
                <!-- 已通过 -->
                <template v-if="row.status == 3">
                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
                  >详情</el-button
                  >详情
                  </el-button
                  >
                </template>
                <!--草稿-->
                <template v-if="row.status == 0">
                  <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(row)"
                  >编辑</el-button
                  >编辑
                  </el-button
                  >
                  <el-button type="text" icon="el-icon-position" @click="userPublishPush(row.id)"
                  >发布</el-button
                  >发布
                  </el-button
                  >
                  <el-button type="text" icon="el-icon-delete" @click="deleteOrderLog(row.id)"
                  >删除</el-button
                  >删除
                  </el-button
                  >
                </template>
              </div>
@@ -599,14 +620,16 @@
            v-if="form.status == 0 || (form.status == 2 && userInfo.user_id == form.create_user)"
            @click="submitForm(1)"
            icon="el-icon-position"
          >发布</el-button
          >发布
          </el-button
          >
          <el-button
            type="primary"
            v-if="form.status == 0 || (form.status == 2 && userInfo.user_id == form.create_user)"
            @click="submitForm(0)"
            icon="el-icon-plus"
          >保存</el-button
          >保存
          </el-button
          >
          <!-- <el-button type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
                          @click="submitForm(0)">保存</el-button> -->
@@ -615,13 +638,15 @@
            type="primary"
            v-if="form.status == 1 && hasPaddingBtnPermission()"
            @click="orderLogPass(form.id)"
          >通过</el-button
          >通过
          </el-button
          >
          <el-button
            type="danger"
            v-if="form.status == 1 && hasRejectionBtnPermission()"
            @click="orderLogReject(form.id)"
          >驳回</el-button
          >驳回
          </el-button
          >
        </div>
      </template>
@@ -806,7 +831,8 @@
            v-if="form.status == 0 || (form.status == 2 && userInfo.user_id == form.create_user)"
            @click="submitForm(1)"
            icon="el-icon-position"
          >发布</el-button
          >发布
          </el-button
          >
          <!-- <el-button type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
                          @click="submitForm(0)">保存</el-button> -->
@@ -816,14 +842,16 @@
            v-if="form.status == 1 && hasPaddingBtnPermission()"
            @click="orderLogPass(form.id)"
            icon="el-icon-check"
          >通过</el-button
          >通过
          </el-button
          >
          <el-button
            type="danger"
            v-if="form.status == 1 && hasRejectionBtnPermission()"
            @click="orderLogReject(form.id)"
            icon="el-icon-close"
          >驳回</el-button
          >驳回
          </el-button
          >
          <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
        </div>
@@ -844,7 +872,7 @@
  orderLogExport,
  jobStatusNum,
  userPublish,
  deleteOrderLog,
  deleteOrderLog
} from '@/api/tickets/orderLog';
import { getTicketInfo } from '@/api/tickets/ticket';
import { getDictionaryByCode } from '@/api/system/dictbiz';
@@ -862,7 +890,7 @@
import elTooltipCopy from '@/components/ElTooltipCopy.vue';
import { CircleClose, Promotion, Select } from '@element-plus/icons-vue';
import { useStore } from 'vuex';
import _ from 'lodash'
import _ from 'lodash';
// const store = useStore()
dayjs.extend(weekday);
dayjs.locale('zh-cn');
@@ -881,7 +909,7 @@
        { label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 },
        { label: '已驳回', name: 'REJECTED', value: 2, count: 0 },
        { label: '已通过', name: 'PASS', value: 3, count: 0 },
        { label: '草稿', name: 'DRAFT', value: 0, count: 0 },
        { label: '草稿', name: 'DRAFT', value: 0, count: 0 }
      ],
      filters: {
        key_word: '',
@@ -891,7 +919,7 @@
        file_id: '',
        ai_types: [],
        status: '',
        dateRange: [],
        dateRange: []
      },
      departments: [],
      types: [],
@@ -905,7 +933,7 @@
        { label: '草稿', value: '0' },
        { label: '待审核', value: '1' },
        { label: '已驳回', value: '2' },
        { label: '已通过', value: '3' },
        { label: '已通过', value: '3' }
      ],
      //周期
      cycles: ['每天', '周一', '周二', '周三', '周四', '周五', '周六', '周末', '周天', '工作日'],
@@ -942,7 +970,7 @@
          {
            label: '工单编号',
            prop: 'job_info_num',
            width: 150,
            width: 150
          },
          {
            label: '工单名称',
@@ -950,47 +978,47 @@
            width: 100,
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '工单状态',
            prop: 'status',
            width: 88,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '所属单位',
            prop: 'dept_name',
            ellipsis: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '创建时间',
            prop: 'create_time',
            width: 144,
            ellipsis: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '已执行次数',
            prop: 'job_num',
            width: 70,
            ellipsis: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '工单内容',
            prop: 'content',
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '关联航线',
            prop: 'wayline_name',
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '关联算法',
@@ -998,7 +1026,7 @@
            width: 100,
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
            label: '关联机巢',
@@ -1006,7 +1034,7 @@
            width: 100,
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          {
@@ -1015,7 +1043,7 @@
            width: 96,
            ellipsis: true,
            overHidden: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
          },
          // {
          //   label: '关联机巢', prop: 'device_names', width: 112, ellipsis: true, overHidden: true,
@@ -1028,16 +1056,16 @@
            formatter: row => this.formatCycleTime(row),
            html: true,
            ellipsis: true,
            showOverflowTooltip: true,
            showOverflowTooltip: true
            // overHidden: true
          },
        ],
          }
        ]
      },
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      dialogVisible: false,
      detailVisible: false,
@@ -1046,24 +1074,24 @@
      rules: {
        name: [
          { required: true, message: '请输入工单名称', trigger: 'blur' },
          { max: 100, message: '工单名称不能超过100个字', trigger: 'blur' },
          { max: 100, message: '工单名称不能超过100个字', trigger: 'blur' }
        ],
        file_id: [{ required: true, message: '需要选择航线', trigger: 'change' }],
        device_sns: [{ required: true, message: '请选择机巢', trigger: 'change' }],
        content: [
          { required: true, message: '请输入工单内容', trigger: 'blur' },
          { max: 255, message: '工单内容不能超过255个字', trigger: 'blur' },
          { max: 255, message: '工单内容不能超过255个字', trigger: 'blur' }
        ],
        date_range: [{ required: true, message: '请选择时间不能为空', trigger: 'blur' }],
        rep_fre_type: [{ required: true, message: '请选择周期', trigger: 'blur' }],
        deal_time: [{ required: true, message: '请选择执行时间', trigger: 'blur' }],
        deal_time: [{ required: true, message: '请选择执行时间', trigger: 'blur' }]
      },
      loading: false,
      globalCounts: {},
      mapLoaded: false,
      // 配置时间选择器默认配置
      datePickerDefaultVal: calculateDefaultRange(),
      datePickerDefaultVal: calculateDefaultRange()
    };
  },
  async created() {
@@ -1077,7 +1105,7 @@
    const { dept_data, event_type, ai_type } = response2.data.data;
    this.departments = dept_data.map(item => ({
      label: item.dept_name,
      value: item.id,
      value: item.id
    }));
  },
  mounted() {
@@ -1096,7 +1124,7 @@
  },
  computed: {
    CircleClose() {
      return CircleClose
      return CircleClose;
    },
    ...mapGetters(['userInfo', 'permission']),
    lastHeight() {
@@ -1119,7 +1147,7 @@
          return { ...tab, isShow: true };
        })
        .filter(tab => tab.isShow);
    },
    }
  },
  methods: {
@@ -1251,7 +1279,7 @@
        rep_fre_type: this.filters.rep_fre_type || undefined,
        deal_time: this.filters.deal_time || undefined,
        current: this.page.currentPage,
        size: this.page.pageSize,
        size: this.page.pageSize
      };
      return params;
    },
@@ -1280,8 +1308,8 @@
          const maxItem = this.device_sns.reduce((max, item) => {
            return item.drone_height > max.drone_height ? item : max;
          });
          console.log(maxItem, '高度')
          let result = _.round((maxItem.drone_height + this.form.rth_altitude), 2)
          console.log(maxItem, '高度');
          let result = _.round((maxItem.drone_height + this.form.rth_altitude), 2);
          if (this.lastHeight > result) {
            this.$confirm(`安全返航真高${result}米低于航线返航点高度${this.lastHeight}米,为确保返航路径安全,建议您进行调整后再发布`, '提示', {
@@ -1292,7 +1320,7 @@
              const submitData = {
                ...this.form,
                status: status,
                ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
                ai_types: this.form.ai_types?.length ? this.form.ai_types : []
              };
              await saveUpdateOrderLog(submitData);
              let id = this.form.id;
@@ -1311,7 +1339,7 @@
            const submitData = {
              ...this.form,
              status: status,
              ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
              ai_types: this.form.ai_types?.length ? this.form.ai_types : []
            };
            await saveUpdateOrderLog(submitData);
            let id = this.form.id;
@@ -1334,10 +1362,10 @@
      this.$confirm(data.remark, '驳回原因', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        type: 'warning'
      }).then(() => {
        this.form = {
          ...response.data.data,
          ...response.data.data
        };
        // this.detailVisible = true
        this.handleViewDetail(data);
@@ -1356,7 +1384,7 @@
        0: '草稿',
        1: '待审核',
        2: '已驳回',
        3: '已通过',
        3: '已通过'
      };
      return statusTextMap[status] || '未知状态';
    },
@@ -1367,7 +1395,7 @@
        2: 'info',
        3: 'primary',
        4: 'success',
        5: 'danger',
        5: 'danger'
      };
      return statusMap[status] || 'info';
    },
@@ -1399,7 +1427,7 @@
        department: '',
        type: '',
        dateRange: [],
        status: '',
        status: ''
      };
      this.page.currentPage = 1;
      this.fetchTableData();
@@ -1415,7 +1443,7 @@
        DRAFT: 0,
        WAIT_AUDIT: 0,
        REJECTED: 0,
        PASS: 0,
        PASS: 0
      };
      var reponse = await jobStatusNum();
      // console.log('统计' + reponse.data.data)
@@ -1451,7 +1479,7 @@
        location: '',
        address: '',
        content: '',
        photos: [],
        photos: []
      };
      if (this.$refs.testform) {
        this.$refs.testform.resetFields();
@@ -1468,7 +1496,7 @@
      const response = await orderLogDetails(row.id);
      const data = response.data.data;
      this.form = {
        ...data,
        ...data
      };
      // 更新机巢列表
@@ -1504,7 +1532,7 @@
      const response = await orderLogDetails(row.id);
      const data = response.data.data;
      this.form = {
        ...data,
        ...data
      };
      // 更新航线列表,追加 wayline_file_region_vo 数据
      // 更新航线列表,追加 wayline_file_region_vo 数据
@@ -1530,7 +1558,7 @@
      this.$confirm('是否智飞工单数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        type: 'warning'
      }).then(() => {
        NProgress.start();
        let params = this.getQueryParam();
@@ -1567,7 +1595,7 @@
      this.$confirm('确定发布吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        type: 'warning'
      }).then(() => {
        let response = userPublish(id);
        this.$message.success('发布成功');
@@ -1580,7 +1608,7 @@
      this.$confirm('确定删除吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        type: 'warning'
      }).then(() => {
        let response = deleteOrderLog(id);
        this.$message.success('删除');
@@ -1597,15 +1625,16 @@
        waylineType: undefined,
        current: 1,
        size: 99999999,
        descs: 'update_time',
      }
        descs: 'update_time'
      };
      var wayLineListResponse = await newGetWorkspacesPage(formData);
      this.wayLineList =  wayLineListResponse.data.data.records
      this.wayLineList = wayLineListResponse.data.data.records;
      this.initMapLine();
    },
    initMapLine(infos = {}, cb = () => {}) {
    initMapLine(infos = {}, cb = () => {
    }) {
      let currentLine = this.wayLineList.find(item => item.wayline_id == this.form.file_id);
      if (!currentLine) return;
@@ -1618,7 +1647,7 @@
            }?_t=${new Date().getTime()}`,
            type: currentLine.wayline_type,
            cb,
            infos,
            infos
          });
        }
      });
@@ -1638,7 +1667,7 @@
        const params = {
          type: ['2', '4', '5'].includes(currentLine.wayline_type) ? 2 : 0,
          wayline_id: waylineId,
          polygon,
          polygon
        };
        var wayLineListResponse = await getFlyingNestBy(params);
        // 再赋值
@@ -1651,7 +1680,7 @@
      this.$confirm('确定撤回则到草稿箱。', '是否撤回?', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        type: 'warning'
      }).then(async () => {
        let reposne = await orderLogRecall(id);
        this.handleSearch();
@@ -1681,7 +1710,7 @@
    async orderLogReject(id) {
      this.$prompt('', '驳回原因', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        cancelButtonText: '取消'
      }).then(async ({ value }) => {
        let response = await orderLogReject(id, value);
        let data = response.data.data;
@@ -1693,7 +1722,7 @@
        this.page.currentPage = 1;
        this.onLoad(this.page, this.query);
      });
    },
    }
  },
  watch: {
    // lastHeight(newVal, oldVal) {
@@ -1704,19 +1733,21 @@
      handler() {
        // this.updateTabCounts()
      },
      deep: true,
    },
  },
      deep: true
    }
  }
};
</script>
<style lang="scss" scoped>
:deep(.el-input-number) {
  width: 200px;
}
:deep(.el-form-item__label) {
  width: 100px !important;
}
//:deep(.el-input-number) {
//  width: 200px;
//}
//:deep(.el-form-item__label) {
//  width: 100px !important;
//}
::v-deep(.el-tabs) {
  height: 100%;
  display: flex;