| | |
| | | <el-input class="ztzf-input" v-model="searchForm.key_word" placeholder="请输入任务/机巢名称" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="行政区划:"> |
| | | <el-select class="ztzf-select" v-model="searchForm.area_code" @change="deptChange" placeholder="请选择部门" clearable> |
| | | <el-select :teleported="false" class="ztzf-select" v-model="searchForm.area_code" @change="deptChange" placeholder="请选择部门" clearable> |
| | | <el-option v-for="item in deptTreeData" :key="item.area_code" :label="item.area_name" :value="item.area_code" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="所属机巢:"> |
| | | <el-select class="ztzf-select" v-model="searchForm.device_sn" placeholder="请选择机巢" clearable> |
| | | <el-select :teleported="false" class="ztzf-select" v-model="searchForm.device_sn" placeholder="请选择机巢" clearable> |
| | | <el-option v-for="item in machineData" :key="item.device_sn" :label="item.nickname" :value="item.device_sn" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-date-picker |
| | | popper-class="custom-date-picker" |
| | | class="ztzf-date-picker" |
| | | v-model="dateRange" |
| | | type="daterange" |
| | |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="YYYY-MM-DD" |
| | | @change="handleSearch" |
| | | @change="handleDateChange" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="任务算法:" v-if="isExpand"> |
| | | <TaskAlgorithmBusiness :setWidth="200" :showAlgorithm="true" @algorithmChange="algorithmChange"/> |
| | | <TaskAlgorithmBusiness :setWidth="186" :showAlgorithm="true" @algorithmChange="algorithmChange"/> |
| | | </el-form-item> |
| | | <el-form-item label="所属部门:" v-if="isExpand"> |
| | | <el-select class="ztzf-select" v-model="searchForm.create_dept" placeholder="请选择部门" clearable> |
| | | <el-select :teleported="false" class="ztzf-select" v-model="searchForm.create_dept" placeholder="请选择部门" clearable> |
| | | <el-option v-for="item in deptData" :key="item.id" :label="item.deptName" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="任务状态:" v-if="isExpand"> |
| | | <el-select class="ztzf-select" v-model="searchForm.status" placeholder="请选择状态" clearable> |
| | | <el-select :teleported="false" class="ztzf-select" v-model="searchForm.status" placeholder="请选择状态" clearable> |
| | | <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="任务类型:" v-if="isExpand"> |
| | | <TaskAlgorithmBusiness :setWidth="200" :showBusiness="true" @businessChange="businessChange"/> |
| | | <TaskAlgorithmBusiness :setWidth="186" :showBusiness="true" @businessChange="businessChange"/> |
| | | </el-form-item> |
| | | <div class="more" v-if="isExpand" @click="toggleExpand">收起</div> |
| | | <div class="more" v-else @click="toggleExpand">更多</div> |
| | |
| | | </template> |
| | | <script setup> |
| | | import { pxToRem } from '@/utils/rem' |
| | | import { ElMessage } from 'element-plus' |
| | | import { deptsByAreaCode, getDockInfo } from '@/api/home/common'; |
| | | import TaskAlgorithmBusiness from './components/TaskAlgorithmBusiness.vue'; |
| | | import dayjs from 'dayjs'; |
| | |
| | | ai_types: [], // 算法类型 |
| | | area_code: '', // 区域code |
| | | create_dept: '', // 创建部门 |
| | | date_enum: '', // 日期枚举,可用值:TODAY,CURRENT_WEEK,CURRENT_MONTH,CURRENT_YEAR |
| | | date_enum: 'TODAY', // 日期枚举,可用值:TODAY,CURRENT_WEEK,CURRENT_MONTH,CURRENT_YEAR |
| | | device_sn: '', // 设备编号 |
| | | end_date: null, // 结束时间 |
| | | industry_type: '', // 行业key |
| | |
| | | ]; |
| | | |
| | | const emit = defineEmits(['search','addTask']); |
| | | |
| | | const handleSearch = () => { |
| | | // 提交至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 = () => { |
| | | dateRange.value = null; |
| | | Object.keys(searchForm).forEach(key => { |
| | | searchForm[key] = ''; |
| | | }); |
| | | handleSearch(); |
| | | }; |
| | | |
| | | // 新增任务 |
| | | const addTask = () => { |
| | | emit('addTask'); |
| | | }; |
| | | |
| | | const algorithmChange = (val) => { |
| | | searchForm.ai_types = val; |
| | |
| | | }; |
| | | const deptChange = (value) => { |
| | | // 处理机巢数据 |
| | | searchForm.device_sn = ''; |
| | | machineData.value = ''; |
| | | machineData.value = deptTreeData.value.find(item => item.area_code === value)?.devices || []; |
| | | // 所属部门重新请求值 |
| | |
| | | |
| | | let timeClick = (item,index) => { |
| | | checked.value = item; |
| | | // model.value = dateRanges[item]; |
| | | // dateRange.value = dateRanges[item]; |
| | | dateRange.value = []; |
| | | // emit('change', dateRanges[item],timeListEnum[index]); |
| | | searchForm.date_enum = timeListEnum[index]; |
| | | handleSearch(); |
| | | }; |
| | | // 搜索 |
| | | const handleSearch = () => { |
| | | if (!dateRange.value) { dateRange.value = []; } |
| | | if (dateRange.value && dateRange.value.length) { |
| | | // 有值时 清除 日 本周 本月 本年状态 |
| | | checked.value = ''; |
| | | } |
| | | // 提交至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 handleDateChange = (val) => { |
| | | if (val && val.length === 2) { |
| | | const start = dayjs(val[0]) |
| | | const end = dayjs(val[1]) |
| | | const diff = end.diff(start, 'day') |
| | | |
| | | if (diff > 30) { |
| | | ElMessage.warning('日期范围不能超过30天') |
| | | dateRange.value = [] |
| | | return |
| | | } |
| | | } |
| | | handleSearch() |
| | | }; |
| | | // 重置 |
| | | const handleReset = () => { |
| | | dateRange.value = []; |
| | | Object.keys(searchForm).forEach(key => { |
| | | searchForm[key] = ''; |
| | | }); |
| | | searchForm.ai_types = []; |
| | | searchForm.date_enum = 'TODAY'; |
| | | checked.value = 'today'; |
| | | handleSearch(); |
| | | }; |
| | | |
| | | // 新增任务 |
| | | const addTask = () => { |
| | | emit('addTask'); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | // requestDictionary(); |
| | | getDeptsByAreaCode(); |
| | | requestDockInfo(); |
| | | // 查询一次 |
| | | handleSearch(); |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | /* 修改日期单元格背景色 */ |
| | | .custom-date-picker .el-picker-panel__body { |
| | | background: #012350 !important; |
| | | color: #fff !important; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .search-box-test { |
| | | transition: all 0.3s; |