无人机管理后台前端(已迁走)
张含笑
2025-12-09 5808f76456ca0d40de5074f132b73a5a488e3e13
src/views/tickets/component/SearchBox.vue
@@ -2,16 +2,16 @@
  <div class="search-box-test">
    <el-form :model="searchForm" inline>
      <div class="search-first">
        <el-form-item>
        <el-form-item label="关键字:">
          <el-input v-model="searchForm.key_word" placeholder="编号/名称/内容/姓名" clearable />
        </el-form-item>
        <el-form-item label="选择日期:">
        <el-form-item label="选择日期:" :style="{ width: pxToRem(460) }">
          <el-date-picker
            v-model="dateRange"
            type="daterange"
            range-separator="至" start-placeholder="开始日期"
            end-placeholder="结束日期"
            :default-value="datePickerDefaultVal" />
            :default-value="datePickerDefaultVal" @change="handleSearch" />
        </el-form-item>
        <el-form-item label="关联航线:">
          <el-select
@@ -32,9 +32,9 @@
        <el-form-item label="关联算法:">
          <el-select
            :teleported="false"
            v-model="searchForm.ai_types"
            placeholder="请选择关联航线"
            clearable>
            v-model="searchForm.ai_typesValue"
            placeholder="请选择关联算法"
            clearable @change="handleSearch">
            <el-option
              v-for="item in aiTypeList"
              :key="item.dictKey"
@@ -46,8 +46,10 @@
        <el-form-item label="工单状态:">
          <el-select
            :teleported="false"
            :disabled="activeTab === 'WAIT_AUDIT' || activeTab === 'REJECTED' || activeTab === 'PASS'"
            v-model="searchForm.status"
            placeholder="请选择关联航线"
            placeholder="请选择单状态"
            @change="handleSearch"
            clearable>
            <el-option
              v-for="item in orderStatus"
@@ -57,21 +59,21 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item label="工单周期:">
        <el-form-item label="工单周期:" :style="{ width: pxToRem(460) }">
          <el-date-picker
            v-model="cycleDateRange"
            type="daterange"
            range-separator="至" start-placeholder="开始日期"
            end-placeholder="结束日期"
            :default-value="datePickerDefaultVal" />
            :default-value="datePickerDefaultVal" @change="handleSearch"/>
        </el-form-item>
        <el-form-item label="选择频次:">
          <el-select v-model="searchForm.rep_fre_type" placeholder="请选择频次" clearable>
          <el-select v-model="searchForm.rep_fre_type" placeholder="请选择频次" clearable @change="handleSearch">
            <el-option v-for="item in cycles" :key="item" :label="item" :value="item" />
          </el-select>
        </el-form-item>
        <el-form-item label="执行时间:">
          <el-time-picker
          <el-time-picker @change="handleSearch"
            v-model="searchForm.deal_time"
            placeholder="请选择执行时间"
            prop="deal_time"
@@ -97,6 +99,7 @@
const cycleDateRange = ref('')
const searchForm = reactive({
  ai_types: [],
  ai_typesValue: '',
  deal_time: "",
  file_id: "",
  key_word: "",
@@ -106,28 +109,26 @@
const emit = defineEmits(['search']);
// 获取航线
let lineList = ref([])
function getLines() {
  const formData = {
    name: '',
    waylineType: undefined,
    current: 1,
    size: 99999999,
    descs: 'update_time'
  }
  newGetWorkspacesPage(formData).then(res => {
    lineList.value = res.data.data.records
  })
}
const rowObj = inject('rowObj')
const activeTab = inject('activeTab')
const lineList = inject('lineList')
const aiTypeList = inject('aiTypeList')
// 获取算法
let aiTypeList = ref([])
function aitypeList() {
  getDictionaryByCode('SF').then(res => {
    aiTypeList.value = res.data.data['SF']
  })
}
watch(activeTab, (newTab, oldTab) => {
  if (newTab === 'all') {
    searchForm.status = ''
  }
  if(newTab === 'WAIT_AUDIT') {
    searchForm.status = '1'
  }
  if(newTab === 'REJECTED') {
    searchForm.status = '2'
  }
  if(newTab === 'PASS') {
    searchForm.status = '3'
  }
  emit('search', searchForm);
})
// 周期
const cycles = ref(['每天', '周一', '周二', '周三', '周四', '周五', '周六', '周末', '周天', '工作日'])
@@ -143,6 +144,9 @@
  if (!dateRange.value) {
    dateRange.value = [];
  }
  if (!cycleDateRange.value) {
    cycleDateRange.value = [];
  }
  // if (dateRange.value && dateRange.value.length) {
  //   checked.value = '';
  //   searchForm.date_enum = '';
@@ -153,25 +157,42 @@
    create_start_date: dateRange.value.length
      ? dayjs(dateRange?.value[0]).startOf('day').format(timeFormat)
      : null,
    create_end_date: dateRange.value.length
    create_end_date: dateRange?.value.length
      ? dayjs(dateRange?.value[1]).endOf('day').format(timeFormat)
      : null,
    start_date: cycleDateRange.value.length
      ? dayjs(dateRange?.value[0]).startOf('day').format(timeFormat)
    start_date: cycleDateRange?.value.length
      ? dayjs(cycleDateRange?.value[0]).startOf('day').format(timeFormat)
      : null,
    emd_date: cycleDateRange.value.length
      ? dayjs(dateRange?.value[1]).startOf('day').format(timeFormat)
    end_date: cycleDateRange?.value.length
      ? dayjs(cycleDateRange?.value[1]).startOf('day').format(timeFormat)
      : null,
  };
  emit('search', params);
};
onMounted(() => {
  aitypeList()
  getLines()
  // 查询一次
  // handleSearch()
});
function handleReset () {
  searchForm.ai_types = []
  searchForm.ai_typesValue = ''
  searchForm.deal_time = ""
  searchForm.file_id = ""
  searchForm.key_word = ""
  if (activeTab.value === 'all') {
    searchForm.status = ''
  }
  searchForm.rep_fre_type = ''
  dateRange.value = ''
  searchForm.create_start_date = null
  searchForm.create_end_date = null
  cycleDateRange.value = ''
  searchForm.start_date = null
  searchForm.emd_date = null
  emit('search', searchForm);
}
// onMounted(() => {
//   aitypeList()
//   getLines()
// });
</script>
<style lang="scss" scoped>
@@ -273,6 +294,9 @@
    :deep(.el-input__wrapper.is-disabled) {
      box-shadow: 0 0 0 1px #026ad6;
    }
    .el-form-item__label {
      width: 80px;
    }
    .el-form-item {
      margin-bottom: 0;