From 8bfd657326eb9d4bd9b63920cfe3bd362cea4445 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 10 Oct 2025 20:59:07 +0800
Subject: [PATCH] Merge branch 'feature/v6.0/6.0.4' into prod
---
src/views/tickets/orderLog.vue | 216 ++++++++++++++++++++++++++++++------------------------
1 files changed, 120 insertions(+), 96 deletions(-)
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index 49f24ea..0b87bb0 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -138,7 +138,7 @@
<div class="search-bar-box-item search-btn">
<el-button type="primary" icon="el-icon-search" @click="handleSearch"
- >搜索</el-button
+ >搜索</el-button
>
<el-button icon="el-icon-refresh" @click="handleReset">清空</el-button>
</div>
@@ -178,10 +178,10 @@
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 +193,7 @@
type="text"
icon="el-icon-view"
@click="handleCheckDetail(row)"
- >审核</el-button
+ >审核</el-button
>
</template>
<!-- v-if="
@@ -207,42 +207,42 @@
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>
@@ -281,7 +281,7 @@
></el-input>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="6">
<el-form-item label="关联航线" prop="file_id">
<el-select
v-model="form.file_id"
@@ -298,15 +298,15 @@
</el-select>
</el-form-item>
</el-col>
-<!-- <el-col :span="6">-->
-<!-- <el-form-item label="安全返航真高" prop="rth_altitude">-->
-<!-- <el-input-number-->
-<!-- v-model="form.rth_altitude"-->
-<!-- :min="30"-->
-<!-- :max="300"-->
-<!-- ></el-input-number>-->
-<!-- </el-form-item>-->
-<!-- </el-col>-->
+ <el-col :span="6">
+ <el-form-item label="安全返航真高" prop="rth_altitude">
+ <el-input-number
+ v-model="form.rth_altitude"
+ :min="50"
+ :max="300"
+ ></el-input-number>
+ </el-form-item>
+ </el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
@@ -394,13 +394,13 @@
</el-col>
</el-row>
-<!-- <el-row>-->
-<!-- <div class="add-box-btns">-->
-<!-- <el-button type="danger" @click="submitForm(1)">发起</el-button>-->
-<!-- <el-button type="primary" @click="submitForm(0)">存草稿</el-button>-->
-<!-- <el-button @click="dialogVisible = false">取消</el-button>-->
-<!-- </div>-->
-<!-- </el-row>-->
+ <!-- <el-row>-->
+ <!-- <div class="add-box-btns">-->
+ <!-- <el-button type="danger" @click="submitForm(1)">发起</el-button>-->
+ <!-- <el-button type="primary" @click="submitForm(0)">存草稿</el-button>-->
+ <!-- <el-button @click="dialogVisible = false">取消</el-button>-->
+ <!-- </div>-->
+ <!-- </el-row>-->
</el-form>
<template #footer>
<div class="dialog-footer">
@@ -558,7 +558,8 @@
<el-col :span="3">
<el-time-picker
- style="width: 100px"
+ class="timeStyle"
+ :style="{width:pxToRem(140)}"
v-model="form.deal_time"
prop="deal_time"
value-format="HH:mm"
@@ -624,7 +625,7 @@
>驳回</el-button
>
</div>
- </template>
+ </template>
</el-dialog>
<!-- 工单详情 -->
@@ -800,39 +801,40 @@
</el-form>
<template #footer>
- <div class="dialog-footer">
- <el-button
- type="danger"
- 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 type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
- @click="submitForm(0)">保存</el-button> -->
+ <div class="dialog-footer">
+ <el-button
+ type="danger"
+ 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 type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
+ @click="submitForm(0)">保存</el-button> -->
- <el-button
- type="primary"
- v-if="form.status == 1 && hasPaddingBtnPermission()"
- @click="orderLogPass(form.id)"
- icon="el-icon-check"
- >通过</el-button
- >
- <el-button
- type="danger"
- v-if="form.status == 1 && hasRejectionBtnPermission()"
- @click="orderLogReject(form.id)"
- icon="el-icon-close"
- >驳回</el-button
- >
- <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
- </div>
- </template>
+ <el-button
+ type="primary"
+ v-if="form.status == 1 && hasPaddingBtnPermission()"
+ @click="orderLogPass(form.id)"
+ icon="el-icon-check"
+ >通过</el-button
+ >
+ <el-button
+ type="danger"
+ v-if="form.status == 1 && hasRejectionBtnPermission()"
+ @click="orderLogReject(form.id)"
+ icon="el-icon-close"
+ >驳回</el-button
+ >
+ <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
+ </div>
+ </template>
</el-dialog>
</basic-container>
</template>
<script>
+import { pxToRem, pxToRemNum } from '@/utils/rem'
import { calculateDefaultRange } from '@/utils/util';
import {
getList,
@@ -861,9 +863,13 @@
import weekday from 'dayjs/plugin/weekday';
import elTooltipCopy from '@/components/ElTooltipCopy.vue';
import { CircleClose, Promotion, Select } from '@element-plus/icons-vue';
-
+import { useStore } from 'vuex';
+import _ from 'lodash'
+// const store = useStore()
dayjs.extend(weekday);
dayjs.locale('zh-cn');
+
+// const lastHeight = computed(() => store.state.common.lastHeight)
export default {
components: { elTooltipCopy },
@@ -871,7 +877,7 @@
data() {
return {
activeTab: 'all',
-
+ getlastHeight: 0,
tabs: [
{ label: '全部工单', name: 'all', value: null, count: 0 },
{ label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 },
@@ -913,7 +919,7 @@
indexLabel: '序号',
indexFixed: true,
- align: 'center',
+ align: 'left',
border: true,
stripe: false,
searchShow: true,
@@ -1095,6 +1101,10 @@
return CircleClose
},
...mapGetters(['userInfo', 'permission']),
+ lastHeight() {
+ const height = this.$store.state.common.lastHeight;
+ return Number(height) || 0; // 确保是数字类型
+ },
filteredTabs() {
// rejection_and_draft 权限控制“已驳回”和“草稿”tab
// console.log(this.permission, '权限信息')
@@ -1269,43 +1279,53 @@
return this.$message.warning('任务时间不能小于当前时间');
}
}
+ 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)
- const submitData = {
- ...this.form,
- status: status,
- ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
- };
- // 判断该值this.form.date_range[0] 周几 和rep_fre_type 是不是相等
- // if (this.form.deal_time) {
- // const weekday = dayjs(this.form.date_range[0]).format('dddd');
- // console.log('444', weekday)
- // // form.rep_fre_type
- // const now = new Date()
- // const today = now.toDateString()
- // const selectedDate = new Date(this.form.date_range[0]).toDateString()
+ if (this.lastHeight > result) {
+ this.$confirm(`安全返航高度${result}米低于航线返航点高度${this.lastHeight}米为确保返航路径安全,建议您进行调整后再发布`, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(async () => {
+ const submitData = {
+ ...this.form,
+ status: status,
+ ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
+ };
+ await saveUpdateOrderLog(submitData);
+ let id = this.form.id;
+ if (id) {
+ this.$message.success('工单发布成功');
+ } else {
+ this.$message.success('工单创建成功');
+ }
+ this.dialogVisible = false;
+ this.detailVisible = false;
+ (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
+ }).catch(() => {
- // if (today === selectedDate) {
- // const [hours, minutes] = this.form.deal_time.split(':')
- // const selectedTime = new Date()
- // selectedTime.setHours(parseInt(hours), parseInt(minutes))
-
- // if (selectedTime < now) {
- // return this.$message.warning('任务时间不能小于当前时间')
-
- // }
- // }
- // }
-
- await saveUpdateOrderLog(submitData);
- let id = this.form.id;
- if (id) {
- this.$message.success('工单发布成功');
+ });
} else {
- this.$message.success('工单创建成功');
+ const submitData = {
+ ...this.form,
+ status: status,
+ ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
+ };
+ await saveUpdateOrderLog(submitData);
+ let id = this.form.id;
+ if (id) {
+ this.$message.success('工单发布成功');
+ } else {
+ this.$message.success('工单创建成功');
+ }
+ this.dialogVisible = false;
+ this.detailVisible = false;
+ (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
}
- this.dialogVisible = false;
- this.detailVisible = false;
- (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
}
});
},
@@ -1411,6 +1431,7 @@
handleAdd() {
this.form = {};
+ this.form.rth_altitude = 120;
this.dialogVisible = true;
this.$nextTick(() => {
@@ -1615,7 +1636,6 @@
this.initMapLine({}, async polygon => {
const currentLine = that.wayLineList.find(item => item.wayline_id === waylineId);
-
//按照航线来
const params = {
type: ['2', '4', '5'].includes(currentLine.wayline_type) ? 2 : 0,
@@ -1677,8 +1697,11 @@
});
},
},
-
watch: {
+ // lastHeight(newVal, oldVal) {
+ // console.log('lastHeight', newVal, oldVal);
+ // this.getlastHeight = newVal;
+ // },
tableData: {
handler() {
// this.updateTabCounts()
@@ -1690,6 +1713,7 @@
</script>
<style lang="scss" scoped>
+
:deep(.el-input-number) {
width: 200px;
}
--
Gitblit v1.9.3