forked from drone/command-center-dashboard

罗广辉
2025-04-14 083b65c625ddfd238b4d325f856ab3bf706f71a4
Merge remote-tracking branch 'origin/master'

# Conflicts:
# src/views/TaskManage/TaskIntermediateContent/TaskIntermediateContent.vue
9 files modified
135 ■■■■■ changed files
src/store/modules/task.js 5 ●●●●● patch | view | raw | blame | history
src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue 2 ●●● patch | view | raw | blame | history
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue 46 ●●●●● patch | view | raw | blame | history
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceJob/DeviceJob.vue 9 ●●●● patch | view | raw | blame | history
src/views/TaskManage/SearchBox.vue 11 ●●●● patch | view | raw | blame | history
src/views/TaskManage/TaskIntermediateContent/TaskIntermediateContent.vue 5 ●●●●● patch | view | raw | blame | history
src/views/TaskManage/TaskTop/TaskEvent.vue 20 ●●●● patch | view | raw | blame | history
src/views/TaskManage/TaskTop/TaskIndustry.vue 20 ●●●● patch | view | raw | blame | history
src/views/TaskManage/TaskTop/TaskTime.vue 17 ●●●● patch | view | raw | blame | history
src/store/modules/task.js
@@ -3,12 +3,13 @@
const task = {
  state: {
    // 用于任务管理搜索条件
    taskSearchParams:getStore({ name: 'taskSearchParams' }) || {},
    taskSearchParams: {},
  },
  actions: {},
  mutations: {
    setTaskSearchParams: (state, data) => {
            setStore({ name: 'taskSearchParams', content: data })
      console.log(data)
            // setStore({ name: 'taskSearchParams', content: data })
            state.taskSearchParams = data;
        },
  },
src/views/SignMachineNest/MachineLeft/InspectionRaskDetails.vue
@@ -156,7 +156,7 @@
                { value: 0, name: '待审核', itemStyle: { color: '#1860EC' } },
                { value: 0, name: '待处理', itemStyle: { color: '#47D107' } },
                { value: 0, name: '已完成', itemStyle: { color: '#F29509' } },
                { value: 0, name: '待分拨', itemStyle: { color: '#E9C81A' } },
                // { value: 0, name: '待分拨', itemStyle: { color: '#E9C81A' } },
                { value: 0, name: '处理中', itemStyle: { color: '#0FC1E8' } },
                { value: 0, name: '已完结', itemStyle: { color: '#FE577F' } }
            ]
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceEvent.vue
@@ -18,28 +18,22 @@
                </el-table-column>
            <el-table-column prop="id" label="事件编号" />
            <el-table-column prop="event_name" label="事件名称" />
            <el-table-column prop="event_name" label="所属单位 " />
            <el-table-column show-overflow-tooltip prop="media_type" label="事件内容" />
            <el-table-column prop="create_user" label="所属单位 " />
            <el-table-column show-overflow-tooltip prop="remark" label="事件内容" />
            <el-table-column show-overflow-tooltip prop="ai_types" label="关联算法" />
            <el-table-column prop="status" label="事件状态">
                <template #default="scope">
                    <el-tag v-if="scope.row.status === 0" type="info">待处理</el-tag>
                    <el-tag v-if="scope.row.status === 1" type="success">待分拨</el-tag>
                    <el-tag v-if="scope.row.status === 2" type="warning">待处理</el-tag>
                    <el-tag v-if="scope.row.status === 3" type="success">处理中</el-tag>
                    <el-tag v-if="scope.row.status === 4" type="success">已完成</el-tag>
                    <el-tag v-if="scope.row.status === 5" type="success">已完结</el-tag>
                    <div class="pending" v-if="scope.row.status === 0">待处理</div>
                    <div class="reviewed" v-if="scope.row.status === 2">待审核</div>
                    <div class="processing" v-if="scope.row.status === 3">处理中</div>
                    <div class="done" v-if="scope.row.status === 4">已完成</div>
                    <div class="ended" v-if="scope.row.status === 5">已完结</div>
                </template>
            </el-table-column>
            <el-table-column label="操作" width="80">
                <template #default="scope">
                <div class="ztzf-view" @click="distribution(scope.row)">查看</div>
                </template>
                <!-- <template #default="scope" >
                    <el-button type="success" link @click="examine(scope.row)">审核</el-button>
                    <el-button type="primary" link @click="distribution(scope.row)">查看</el-button>
                </template> -->
            </el-table-column>
        </el-table>
        </div>
@@ -49,7 +43,7 @@
            :page-sizes="[10, 20, 30, 50]"
            v-model:current-page="sizeParams.current"
            v-model:page-size="sizeParams.size"
            layout="prev, pager, next, jumper"
            layout="prev, pager, next,sizes, jumper"
            :total="total"
            @change="pageChange"
        />
@@ -145,10 +139,24 @@
    background: center center no-repeat none !important;
    color: #8eb8ea !important;
}
:deep(.el-tag){
background: none !important;
border:none !important
// 待处理
.pending{
color: #FF7411;
}
// 待审核
.reviewed{
color: #8CFEA7;
}
// 处理中
.processing{
color: #FFC398;
}
// 已完成
.done{
color: #AFD9FB;
}
// 已完结
.ended{
color: #11C4FF;
}
</style>
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceJob/DeviceJob.vue
@@ -28,7 +28,6 @@
                <el-table-column label="操作" width="80">
                    <template #default="scope">
                        <div class="ztzf-view" @click="viewJob(scope.row)">查看</div>
                        <!-- <el-button type="warning" link @click="viewJob(scope.row)">查看</el-button> -->
                    </template>
                </el-table-column>
            </el-table>
@@ -39,7 +38,7 @@
            :page-sizes="[10, 20, 30, 50]"
            v-model:current-page="sizeParams.current"
            v-model:page-size="sizeParams.size"
            layout=" prev, pager, next, jumper"
            layout=" prev, pager, next,sizes, jumper"
            :total="total"
            @change="pageChange"
        />
@@ -96,12 +95,6 @@
    getList()
})
</script>
<style lang="scss">
.devicejob-container {
    // 表格
}
</style>
<style scoped lang="scss">
// 标题
.machineTableDetailsTitle {
src/views/TaskManage/SearchBox.vue
@@ -71,7 +71,9 @@
import { deptsByAreaCode, getDockInfo } from '@/api/home/common';
import TaskAlgorithmBusiness from './components/TaskAlgorithmBusiness.vue';
import dayjs from 'dayjs';
import { useStore } from 'vuex'
const store = useStore()
const isExpand = ref(false);
const toggleExpand = () => {
  isExpand.value = !isExpand.value;
@@ -102,11 +104,14 @@
const emit = defineEmits(['search','addTask']);
const handleSearch = () => {
  emit('search', {
  // 提交至store
  let params = {
    ...searchForm,
    start_date: dateRange.value.length ? `${dateRange.value[0]} 00:00:00` : null,
    end_date: dateRange.value.length ? `${dateRange.value[1]} 23:59:59` : null
  });
  }
  store.commit('setTaskSearchParams', params);
  emit('search', params);
};
const handleReset = () => {
@@ -187,7 +192,7 @@
  checked.value = item;
  // model.value = dateRanges[item];
  // emit('change', dateRanges[item],timeListEnum[index]);
  searchForm.value.date_enum = timeListEnum[index];
  searchForm.date_enum = timeListEnum[index];
};
src/views/TaskManage/TaskIntermediateContent/TaskIntermediateContent.vue
@@ -71,7 +71,7 @@
const jobListParams = reactive({
  current: 1,
  size: 8,
  size: 10,
  searchParams:{}
});
const jobListData = ref([]);
@@ -126,8 +126,6 @@
  jobListParams.current = 1;
  jobListParams.size = 10;
  jobListParams.searchParams = params;
  // 存储查询条件 ,用于统计图搜索
  getJobList();
};
@@ -159,6 +157,7 @@
  .task-table {
    height: 528px;
    margin-top: 18px;
    overflow: auto;
  }
  .current-details {
src/views/TaskManage/TaskTop/TaskEvent.vue
@@ -10,7 +10,12 @@
import * as echarts from 'echarts';
import { jobEventBar } from '@/api/home/task';
import dayjs from 'dayjs';
import useEchartsResize from '@/hooks/useEchartsResize'
import useEchartsResize from '@/hooks/useEchartsResize';
import { useStore } from 'vuex';
const store = useStore();
// const setTaskSearchParams = computed(() => store.state.task.setTaskSearchParams);
// 日期
const currenDate = dayjs().format('YYYY-MM-DD');
@@ -100,8 +105,8 @@
};
// 获取行业统计数据
const getJobEventBar = (value,date_enum) => {
  jobEventBar({date_enum}).then(res => {
const getJobEventBar = (value) => {
  jobEventBar(value).then(res => {
    if (res.data.code !== 0) return;
    option.xAxis.data = res.data.data.map(item => item.name);
    option.series[0].data = res.data?.data.map(item => item.data[0].value);
@@ -110,9 +115,16 @@
  });
};
// 添加监听
watch(() => store.state.task.taskSearchParams, (newVal) => {
  console.log(newVal, '1111');
  if (newVal) {
    getJobEventBar(newVal);
  }
}, { deep: true });
onMounted(() => {
  getJobEventBar(newTime.value, 'CURRENT_YEAR');
  getJobEventBar({date_enum: 'TODAY'});
});
</script>
src/views/TaskManage/TaskTop/TaskIndustry.vue
@@ -9,9 +9,12 @@
<script setup>
import * as echarts from 'echarts';
import { industryJobNumPieChart } from '@/api/home/task';
import useEchartsResize from '@/hooks/useEchartsResize'
import useEchartsResize from '@/hooks/useEchartsResize';
import { useStore } from 'vuex';
const store = useStore();
const chartRef = ref(null);
let { chart } = useEchartsResize(chartRef)
let { chart } = useEchartsResize(chartRef);
const option = {
  tooltip: {
@@ -65,8 +68,8 @@
};
// 获取行业统计数据
const getIndustryJobNumPieChart = () => {
  industryJobNumPieChart().then(res => {
const getIndustryJobNumPieChart = (value) => {
  industryJobNumPieChart(value).then(res => {
    if (res.data.code !== 0) return;
    option.series[0].data.forEach(item => {
      const matchData = res.data.data.find(d => d.name === item.name);
@@ -95,9 +98,16 @@
//   });
// };
// 添加监听
watch(() => store.state.task.taskSearchParams, (newVal) => {
  console.log(newVal, '2222');
  if (newVal) {
    getIndustryJobNumPieChart(newVal);
  }
}, { deep: true });
onMounted(() => {
  getIndustryJobNumPieChart();
  getIndustryJobNumPieChart({date_enum: 'TODAY'});
});
</script>
src/views/TaskManage/TaskTop/TaskTime.vue
@@ -11,6 +11,9 @@
import { jobNumBar } from '@/api/home/task';
import dayjs from 'dayjs';
import useEchartsResize from '@/hooks/useEchartsResize'
import { useStore } from 'vuex';
const store = useStore();
// 日期
const currenDate = dayjs().format('YYYY-MM-DD');
@@ -93,8 +96,8 @@
};
// 获取任务时间统计数据
const getJobNumBar = (value,date_enum) => {
  jobNumBar({date_enum}).then(res => {
const getJobNumBar = (value) => {
  jobNumBar(value).then(res => {
    if (res.data.code !== 0) return;
    option.xAxis.data = res.data.data.map(item => item.name);
    option.series[0].data = res.data.data.map(item => item.value);
@@ -102,9 +105,17 @@
  });
};
// 添加监听
watch(() => store.state.task.taskSearchParams, (newVal) => {
  console.log(newVal, '33333');
  if (newVal) {
    getJobNumBar(newVal);
    (newVal);
  }
}, { deep: true });
onMounted(() => {
  getJobNumBar(newTime.value, 'CURRENT_YEAR');
  getJobNumBar({date_enum: 'TODAY'});
});
</script>