From e28434bc0c92113c93d7ffe0f0656f609690279b Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 25 Nov 2025 19:10:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/feature/v8.0/8.0.3' into feature/v8.0/8.0.3
---
src/views/tickets/component/AddEditDetails.vue | 10 +
/dev/null | 191 --------------------------------------
src/views/tickets/orderLog.vue | 49 +++++++--
src/views/system/user.vue | 12 +-
src/views/tickets/component/SearchBox.vue | 12 ++
src/views/authority/role.vue | 14 ++
6 files changed, 72 insertions(+), 216 deletions(-)
diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue
index 9082ed2..85811e3 100644
--- a/src/views/authority/role.vue
+++ b/src/views/authority/role.vue
@@ -24,6 +24,11 @@
:props="props">
</el-tree>
</el-tab-pane>
+ <el-tab-pane label="大屏菜单">
+ <el-tree :data="menuGrantListOld" show-checkbox node-key="id" ref="treeMenuApp" :default-checked-keys="menuTreeObjOld"
+ :props="props">
+ </el-tree>
+ </el-tab-pane>
<!-- <el-tab-pane label="数据权限">
<el-tree
:data="dataScopeGrantList"
@@ -82,11 +87,13 @@
},
menuGrantList: [],
menuGrantListApp: [],
+ menuGrantListOld: [],
dataScopeGrantList: [],
apiScopeGrantList: [],
apiGrantList: [],
menuTreeObj: [],
menuTreeObjApp: [],
+ menuTreeObjOld: [],
dataScopeTreeObj: [],
apiScopeTreeObj: [],
selectionList: [],
@@ -350,6 +357,13 @@
this.box = true
})
})
+ grantTree({sysType: 2}).then(res => {
+ this.menuGrantListOld = res.data.data.menu
+ getRole(this.ids).then(res => {
+ this.menuTreeObjOld = res.data.data.menu
+ this.box = true
+ })
+ })
},
handleDelete () {
if (this.selectionList.length === 0) {
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index 84b895f..a4782da 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -490,7 +490,7 @@
label: '所属部门',
prop: 'deptId',
type: 'tree',
- multiple: true,
+ multiple: false,
dicData: [],
// props: {
// label: 'title',
@@ -793,7 +793,7 @@
}
}
- row.deptId = func.join(row.deptId)
+ // row.deptId = func.join(row.deptId)
row.roleId = func.join(row.roleId)
row.postId = func.join(row.postId)
row.name = row.realName
@@ -836,7 +836,7 @@
}
}
- row.deptId = func.join(row.deptId)
+ // row.deptId = func.join(row.deptId)
row.roleId = func.join(row.roleId)
row.postId = func.join(row.postId)
row.name = row.realName
@@ -1061,9 +1061,9 @@
if (['edit', 'view'].includes(type)) {
getUser(this.form.id).then(res => {
this.form = res.data.data
- if (this.form.hasOwnProperty('deptId')) {
- this.form.deptId = func.split(this.form.deptId)
- }
+ // if (this.form.hasOwnProperty('deptId')) {
+ // this.form.deptId = func.split(this.form.deptId)
+ // }
if (this.form.hasOwnProperty('roleId')) {
this.form.roleId = func.split(this.form.roleId)
}
diff --git a/src/views/tickets/component/AddEditDetails.vue b/src/views/tickets/component/AddEditDetails.vue
index 2752d90..e0c0330 100644
--- a/src/views/tickets/component/AddEditDetails.vue
+++ b/src/views/tickets/component/AddEditDetails.vue
@@ -364,12 +364,14 @@
positions.unshift({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height })
positions.push({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height})
let resultHeight = 0
+ let valueHeight = 0
await getWaylineMaxTerrainHeight(positions).then(res => {
- resultHeight = safeHeight.value > (res.data.data + 30) ? safeHeight.value : (res.data.data + 30)
+ resultHeight = (safeHeight.value + maxItem.drone_height) > (res.data.data + 30) ? (safeHeight.value + maxItem.drone_height) : (res.data.data + 30)
+ console.log(resultHeight,maxItem.drone_height, '999')
+ valueHeight = (resultHeight - maxItem.drone_height) > backHeight ? _.round(resultHeight - maxItem.drone_height) : 0
})
- let valueHeight = _.round(backHeight - resultHeight, 2)
- if (valueHeight < 0) {
- await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${resultHeight}米以上后进行发布`, '提示', {
+ if (valueHeight > 0) {
+ await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${valueHeight}米以上后进行发布`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
diff --git a/src/views/tickets/component/SearchBox.vue b/src/views/tickets/component/SearchBox.vue
index 9f9226f..05d7d21 100644
--- a/src/views/tickets/component/SearchBox.vue
+++ b/src/views/tickets/component/SearchBox.vue
@@ -115,6 +115,9 @@
const aiTypeList = inject('aiTypeList')
watch(activeTab, (newTab, oldTab) => {
+ if (newTab === 'all') {
+ searchForm.status = ''
+ }
if(newTab === 'WAIT_AUDIT') {
searchForm.status = '1'
}
@@ -124,7 +127,8 @@
if(newTab === 'PASS') {
searchForm.status = '3'
}
-}, { immediate: true })
+ emit('search', searchForm);
+})
// 周期
const cycles = ref(['每天', '周一', '周二', '周三', '周四', '周五', '周六', '周末', '周天', '工作日'])
@@ -172,10 +176,14 @@
searchForm.deal_time = ""
searchForm.file_id = ""
searchForm.key_word = ""
- searchForm.status = ''
+ 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);
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index eaae7b1..d88bbbb 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -9,7 +9,7 @@
<el-button type="success" plain icon="el-icon-download" @click="exportData">导出
</el-button>
<div class="task-table">
- <el-table border :data="orderListTable" class="custom-header">
+ <el-table border :data="orderListTable" class="custom-header" @cell-click="handleCellClick">
<el-table-column label="序号" type="index" width="60">
<template #default="{ $index }">
{{ ($index + 1 + (orderListParams.current - 1) * orderListParams.size).toString().padStart(2,
@@ -173,17 +173,17 @@
// tab切换
function handleTabChange (tab) {
activeTab.value = tab.paneName
- orderListParams.status = ''
- if (tab.paneName === 'WAIT_AUDIT') {
- orderListParams.status = '1'
- } else if (tab.paneName === 'REJECTED') {
- orderListParams.status = '2'
- } else if (tab.paneName === 'PASS') {
- orderListParams.status = '3'
- } else if (tab.paneName === 'DRAFT') {
- orderListParams.status = '0'
- }
- refreshGetOrderList()
+ // orderListParams.status = ''
+ // if (tab.paneName === 'WAIT_AUDIT') {
+ // orderListParams.status = '1'
+ // } else if (tab.paneName === 'REJECTED') {
+ // orderListParams.status = '2'
+ // } else if (tab.paneName === 'PASS') {
+ // orderListParams.status = '3'
+ // } else if (tab.paneName === 'DRAFT') {
+ // orderListParams.status = '0'
+ // }
+ // refreshGetOrderList()
}
// 更新统计数
@@ -260,7 +260,6 @@
const searchClick = params => {
orderListParams.current = 1
orderListParams.size = 10
- console.log('333', params)
orderListParams.searchParams = params
getTableList()
}
@@ -398,6 +397,30 @@
}
}
+function handleCellClick (row, column) {
+ if (column.no === 1) {
+ navigator.clipboard.writeText(row.job_info_num).then(() => {
+ ElMessage.success('复制工单编号成功')
+ })
+ } else if (column.no === 2) {
+ navigator.clipboard.writeText(row.name).then(() => {
+ ElMessage.success('复制工单名称成功')
+ })
+ } else if (column.no === 4) {
+ navigator.clipboard.writeText(row.dept_name).then(() => {
+ ElMessage.success('复制所属单位成功')
+ })
+ } else if (column.no === 8) {
+ navigator.clipboard.writeText(row.wayline_name).then(() => {
+ ElMessage.success('复制关联航线成功')
+ })
+ } else if (column.no === 9) {
+ navigator.clipboard.writeText(row.ai_type_str).then(() => {
+ ElMessage.success('复制关联算法成功')
+ })
+ }
+}
+
// 删除
async function deleteOrder(id) {
try {
diff --git a/src/views/tickets/orderLog1.vue b/src/views/tickets/orderLog1.vue
deleted file mode 100644
index 925b20b..0000000
--- a/src/views/tickets/orderLog1.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-<!-- 任务统计表格 -->
-<template>
- <div class="order-log-update">
- <el-tabs v-model="activeTab" @tab-click="handleTabChange">
- <el-tab-pane v-for="tab in tabsList" :key="tab.name" :label="`${tab.label} (${tab.count})`" :name="tab.name">
- <SearchBox @search="searchClick"></SearchBox>
- <div class="task-table">
- <el-table border :data="orderListTable" class="custom-header">
- <el-table-column label="序号" type="index" width="60">
- <template #default="{ $index }">
- {{ ($index + 1 + (orderListParams.current - 1) * orderListParams.size).toString().padStart(2,
- '0') }}
- </template>
- </el-table-column>
- <el-table-column prop="job_info_num" label="工单编号" width="160">
- <template #default="scope">
- <el-tooltip-copy :content="scope.row.job_info_num" :showCopyText="true">
- {{scope.row.job_info_num}}
- </el-tooltip-copy>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="工单名称" width="160">
- <template #default="scope">
- <el-tooltip-copy :content="scope.row.name" :showCopyText="true">
- {{scope.row.name}}
- </el-tooltip-copy>
- </template>
- </el-table-column>
- <el-table-column prop="dept_name" label="所属单位" show-overflow-tooltip/>
- <el-table-column prop="create_time" label="创建时间" show-overflow-tooltip/>
- <el-table-column prop="job_num" label="已执行次数" show-overflow-tooltip align="center" />
- <el-table-column prop="content" label="工单内容" show-overflow-tooltip align="center" />
- <el-table-column prop="wayline_name" label="关联航线" show-overflow-tooltip />
- <el-table-column prop="ai_type_str" label="关联算法" width="200" align="center" />
- <el-table-column prop="device_names" label="关联机巢" width="200" align="center" />
- <el-table-column prop="creator_name" label="创建人" align="center" show-overflow-tooltip />
- <el-table-column prop="cycle_time_value" label="工单周期频次" align="center" show-overflow-tooltip />
- <el-table-column label="操作" width="200" align="center">
- <template #default="scope">
- <el-button icon="el-icon-back" v-if="scope.row.status === 2" type="text"@click="turnBack(scope.row)">返航</el-button>
- <el-button icon="el-icon-close" v-if="scope.row.status === 1" type="text" @click="cancelTask(scope.row)">取消任务</el-button>
- <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div class="pagination">
- <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
- :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="orderListParams.current"
- v-model:page-size="orderListParams.size" layout="total, sizes, prev, pager, next, jumper" :total="total"
- @size-change="handleSizeChange" @current-change="handleCurrentChange" />
- </div>
- </el-tab-pane>
- </el-tabs>
- </div>
-</template>
-
-<script setup>
-import SearchBox from './component/SearchBox.vue'
-import {
- getList,
- saveUpdateOrderLog,
- orderLogDetails,
- orderLogRecall,
- orderLogReject,
- orderLogPass,
- orderLogExport,
- jobStatusNum,
- userPublish,
- deleteOrderLog,
- getWaylineMaxTerrainHeight
-} from '@/api/tickets/orderLog'
-import { cloneDeep } from 'lodash';
-
-let tabsList = ref([
- { label: '全部工单', name: 'all', value: null, count: 0 },
- { 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 }
-])
-
-const orderListParams = reactive({
- current: 1,
- size: 10,
- searchParams: {},
-})
-
-const orderListTable = ref([])
-function getTableList() {
- const apiParams = {
- ...cloneDeep(orderListParams),
- searchParams: {
- ...cloneDeep(orderListParams.searchParams)
- },
- }
- getList(apiParams).then(res => {
- orderListTable.value = res.data.data
- })
-}
-
-// 分页大小改变
-const handleSizeChange = val => {
- orderListParams.size = val
- getTableList()
-}
-
-// 页码改变
-const handleCurrentChange = val => {
- orderListParams.current = val
- getTableList()
-}
-
-// 传参查询条件
-const searchClick = params => {
- orderListParams.current = 1
- orderListParams.size = 10
- orderListParams.searchParams = params
- getTableList()
-}
-
-const refreshGetJobList = () => {
- orderListParams.current = 1
- orderListParams.size = 10
- getTableList()
-}
-</script>
-
-<style lang="scss" scoped>
-.order-log-update {
- height: 0;
- flex: 1;
- margin: 0 10px 10px 10px;
- background-color: #ffffff;
- padding: 10px 20px;
- border-radius: 5px;
- display: flex;
- flex-direction: column;
-
- // 表格
- .task-table {
- height: 0;
- flex: 1;
- margin-top: 18px;
- overflow: auto;
- }
-
- .btnItem {
- height: 27px;
- line-height: 27px;
- border-radius: 0px 0px 0px 0px;
- border: 1px solid #51a8ff;
- font-family: Segoe UI, Segoe UI;
- font-weight: 400;
- font-size: 14px;
- color: #1C5CFF;
- padding: 0 10px;
- display: inline-block;
- margin-right: 10px;
- cursor: pointer;
-
- &.turnBack {
- border: 1px solid #ffa500;
- color: #ffa500;
- }
-
- &.cancelTask {
- border: 1px solid #00AA2D;
- color: #00AA2D;
- }
- }
- // 分页
- :deep(.custom-header th.el-table__cell) {
- color: rgba(0, 0, 0, 0.85);
- }
-
- :deep(.el-table td.el-table__cell) {
- color: #606266;
- }
-
- :deep(.el-pagination) {
- display: flex;
- justify-content: right;
- }
-
- :deep(.el-pagination button) {
- background: center center no-repeat none !important;
- color: #8eb8ea !important;
- }
-}
-</style>
--
Gitblit v1.9.3