From 12e3a3301ecea615339d67d59b8a411200e21bc8 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Thu, 26 Feb 2026 10:57:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/task-work-order/src/views/orderView/organizational/userMange/FormDiaLog.vue | 0
applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/equipmentResourceApi.js | 0
applications/task-work-order/src/views/orderView/organizational/userMange/index.vue | 0
applications/task-work-order/src/views/orderView/organizational/roleMange/index.vue | 0
applications/task-work-order/src/views/orderView/organizational/roleMange/RolePermissionDialog.vue | 22 +-
applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue | 44 +++---
applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/index.vue | 211 ++++++++++++++++++++++++++++++
applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/FormDiaLog.vue | 142 ++++++++++++++++++++
applications/task-work-order/src/views/orderView/organizational/roleMange/FormDiaLog.vue | 0
applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/FormDiaLog.vue | 0
applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/index.vue | 0
11 files changed, 386 insertions(+), 33 deletions(-)
diff --git a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
index 37c6736..b76bfe3 100644
--- a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
@@ -20,28 +20,28 @@
:props="treeProps"
/>
</el-tab-pane>
- <el-tab-pane label="任务工单">
- <el-tree
- class="command-tree"
- ref="workRef"
- :data="menuGrantListWord"
- show-checkbox
- node-key="id"
- :default-checked-keys="menuTreeObjWork"
- :props="treeProps"
- />
- </el-tab-pane>
- <el-tab-pane label="移动app">
- <el-tree
- class="command-tree"
- ref="treeMenuApp"
- :data="menuGrantListApp"
- show-checkbox
- node-key="id"
- :default-checked-keys="menuTreeObjApp"
- :props="treeProps"
- />
- </el-tab-pane>
+<!-- <el-tab-pane label="任务工单">-->
+<!-- <el-tree-->
+<!-- class="command-tree"-->
+<!-- ref="workRef"-->
+<!-- :data="menuGrantListWord"-->
+<!-- show-checkbox-->
+<!-- node-key="id"-->
+<!-- :default-checked-keys="menuTreeObjWork"-->
+<!-- :props="treeProps"-->
+<!-- />-->
+<!-- </el-tab-pane>-->
+<!-- <el-tab-pane label="移动app">-->
+<!-- <el-tree-->
+<!-- class="command-tree"-->
+<!-- ref="treeMenuApp"-->
+<!-- :data="menuGrantListApp"-->
+<!-- show-checkbox-->
+<!-- node-key="id"-->
+<!-- :default-checked-keys="menuTreeObjApp"-->
+<!-- :props="treeProps"-->
+<!-- />-->
+<!-- </el-tab-pane>-->
</el-tabs>
<template #footer>
<el-button color="#2B2B4C" @click="visible = false">取消</el-button>
diff --git a/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/FormDiaLog.vue
new file mode 100644
index 0000000..ddb6a4f
--- /dev/null
+++ b/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/FormDiaLog.vue
@@ -0,0 +1,142 @@
+<template>
+ <el-dialog class="gd-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close
+ :close-on-click-modal="false">
+ <!-- <div class="detail-row-view" v-if="dialogReadonly">-->
+ <el-table :data="list" class="gd-dialog-table">
+ <el-table-column prop="resultCode" show-overflow-tooltip label="序号" />
+ <el-table-column prop="resultCode" show-overflow-tooltip label="设备状态" />
+ <el-table-column prop="shootTime" show-overflow-tooltip label="发生时间" />
+ </el-table>
+ </el-dialog>
+</template>
+
+<script setup>
+import { computed, onMounted, ref } from 'vue'
+import { ElMessage } from 'element-plus'
+import { add, getUser, update } from '@/api/system/user'
+import { getDeptTree } from '@/api/system/dept'
+import { getRoleTree } from '@/api/system/role'
+import func from '@/utils/func'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
+
+const list = ref([])
+
+const initForm = () => ({
+ account: '',
+ password: '',
+ password2: '',
+ realName: '',
+ phone: '',
+ email: '',
+ sex: null,
+ birthday: '',
+ code: '',
+ roleId: '',
+ deptId: '',
+ // sysType: 6
+})
+
+const treeProps = {
+ label: 'title',
+ children: 'children',
+}
+const deptTreeSelectProps = {
+ label: 'name',
+ value: 'id',
+ children: 'children',
+}
+
+const emit = defineEmits(['success'])
+const formRef = ref(null)
+const formData = ref(initForm())
+const visible = ref(false)
+const dialogMode = ref('add')
+const submitting = ref(false)
+const dialogReadonly = computed(() => dialogMode.value === 'view')
+const dialogTitle = computed(() => {
+ if (dialogMode.value === 'edit') return '编辑'
+ if (dialogMode.value === 'view') return '查看'
+ return '新增'
+})
+const roleTree = ref([])
+const deptTree = ref([])
+const route = useRoute()
+
+const validatePass = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('请输入密码'))
+ } else {
+ callback()
+ }
+}
+const validatePass2 = (rule, value, callback) => {
+ if (value === '') {
+ callback(new Error('请再次输入密码'))
+ } else if (value !== formData.value.password) {
+ callback(new Error('两次输入密码不一致'))
+ } else {
+ callback()
+ }
+}
+
+async function getRoleTreeData() {
+ const res = await getRoleTree('000000')
+ roleTree.value = res.data.data
+}
+
+async function getDeptTreeData() {
+ const res = await getDeptTree('000000')
+ deptTree.value = res.data.data
+}
+
+function handleCancel() {
+ visible.value = false
+}
+
+async function loadDetail() {
+ if (!formData.value.id) return
+ const res = await getUser(formData.value.id)
+ const data = res?.data?.data ?? {}
+ if (data.roleId) {
+ data.roleId = func.split(data.roleId)[0] || data.roleId
+ }
+ formData.value = data
+}
+
+function handleClosed() {
+ formData.value = initForm()
+}
+
+async function open({ mode, row } = {}) {
+ dialogMode.value = mode || 'add'
+ visible.value = true
+ if (dialogMode.value === 'add') {
+ formData.value = initForm()
+ return
+ }
+ formData.value = { id: row.id }
+ await loadDetail()
+}
+
+onMounted(() => {
+ getRoleTreeData()
+ getDeptTreeData()
+})
+
+defineExpose({ open })
+</script>
+
+<style scoped lang="scss">
+:deep(.el-select) {
+ width: 100%;
+}
+
+:deep(.el-date-editor) {
+ width: 100%;
+}
+
+:deep(.el-tree-select) {
+ width: 100%;
+}
+</style>
diff --git a/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/index.vue b/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/index.vue
new file mode 100644
index 0000000..862a156
--- /dev/null
+++ b/applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/index.vue
@@ -0,0 +1,211 @@
+<template>
+ <basic-container>
+ <el-form ref="queryParamsRef" :model="searchParams" class="gd-search-form">
+ <el-form-item label="登录账号" prop="account">
+ <el-input
+ class="gd-input gray"
+ v-model="searchParams.account"
+ placeholder="请输入"
+ clearable
+ @clear="handleSearch"
+ />
+ </el-form-item>
+
+ <el-form-item label="用户姓名" prop="realName">
+ <el-input
+ class="gd-input gray"
+ v-model="searchParams.realName"
+ placeholder="请输入"
+ clearable
+ @clear="handleSearch"
+ />
+ </el-form-item>
+
+ <el-form-item label="所属部门" prop="deptId">
+ <el-tree-select
+ class="gd-select gray"
+ popper-class="gd-select-popper"
+ v-model="searchParams.deptId"
+ :data="deptTree"
+ :props="treeProps"
+ node-key="id"
+ check-strictly
+ clearable
+ @change="handleSearch"
+ />
+ </el-form-item>
+
+ <el-form-item class="gd-search-actions">
+ <el-button :icon="RefreshRight" @click="resetForm"></el-button>
+ <el-button class="search-btn" :icon="Search" @click="handleSearch"></el-button>
+ </el-form-item>
+ </el-form>
+
+ <div class="gd-table-toolbar">
+ <el-button v-if="permission.orderUser_add" :icon="Plus" color="#4C34FF" type="primary" @click="handleAdd">
+ 新增
+ </el-button>
+ <el-button
+ v-if="permission.orderUser_remove"
+ :icon="Delete"
+ :disabled="!selectedIds.length"
+ @click="handleDelete()"
+ >
+ 删除
+ </el-button>
+ </div>
+
+ <div class="gd-table-container" v-loading="loading">
+ <div class="gd-table-content gd-table-content-bg">
+ <el-table class="gd-table" :data="list" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="46" />
+ <el-table-column type="index" show-overflow-tooltip width="64" label="序号" />
+ <el-table-column prop="account" show-overflow-tooltip label="任务名称" />
+ <el-table-column prop="realName" show-overflow-tooltip label="发起任务部门" />
+ <el-table-column prop="roleName" show-overflow-tooltip label="任务发起人" />
+ <el-table-column prop="deptName" show-overflow-tooltip label="飞行时长" />
+ <el-table-column prop="phone" show-overflow-tooltip label="飞行里程(m)" />
+ <el-table-column prop="phone" show-overflow-tooltip label="执行设备" />
+ <el-table-column prop="phone" show-overflow-tooltip label="计划执行时间" />
+ <el-table-column prop="phone" show-overflow-tooltip label="实际执行时间" />
+ <el-table-column label="操作" class-name="operation-btns" width="180">
+ <template v-slot="{ row }">
+ <el-link @click="handleView(row)">查看</el-link>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <div class="gd-pagination-parent">
+ <el-pagination
+ popper-class="gd-select-popper"
+ v-model:current-page="searchParams.current"
+ v-model:page-size="searchParams.size"
+ layout="total, prev, pager, next, sizes"
+ :total="total"
+ @change="getList"
+ />
+ </div>
+ </div>
+
+ <FormDiaLog ref="dialogRef" @success="getList" />
+ </basic-container>
+</template>
+
+<script setup>
+import { Delete, Plus, RefreshRight, Search } from '@element-plus/icons-vue'
+import { computed, onMounted, ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { getDeptTree } from '@/api/system/dept'
+import { getList as getUserList, remove } from '@/api/system/user'
+import { useStore } from 'vuex'
+import FormDiaLog from './FormDiaLog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
+
+const initSearchParams = () => ({
+ account: '',
+ realName: '',
+ deptId: '',
+ current: 1,
+ size: 10,
+ // sysType: 6
+})
+
+const searchParams = ref(initSearchParams())
+const loading = ref(true)
+const list = ref([])
+const total = ref(0)
+const selectedIds = ref([])
+const queryParamsRef = ref(null)
+const dialogRef = ref(null)
+const deptTree = ref([])
+const treeProps = {
+ label: 'name',
+ children: 'children',
+}
+const store = useStore()
+const permission = computed(() => store.getters.permission || {})
+const route = useRoute()
+
+async function getList() {
+ loading.value = true
+ try {
+ const res = await getUserList(
+ searchParams.value.current,
+ searchParams.value.size,
+ // searchParams.value.sysType,
+ {
+ account: searchParams.value.account,
+ realName: searchParams.value.realName,
+ },
+ searchParams.value.deptId
+ )
+ list.value = res?.data?.data?.records ?? []
+ total.value = res?.data?.data?.total ?? 0
+ } finally {
+ loading.value = false
+ }
+}
+
+function handleSearch() {
+ searchParams.value.current = 1
+ getList()
+}
+
+function resetForm() {
+ queryParamsRef.value?.resetFields()
+ searchParams.value.current = 1
+ searchParams.value.deptId = ''
+ getList()
+}
+
+function handleAdd() {
+ dialogRef.value?.open({ mode: 'add' })
+}
+
+function handleView(row) {
+ dialogRef.value?.open({ mode: 'view', row: { ...row } })
+}
+
+function handleEdit(row) {
+ dialogRef.value?.open({ mode: 'edit', row: { ...row } })
+}
+
+async function handleDelete(row) {
+ const tips = row ? '该条' : '选中的项'
+ await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', {
+ type: 'warning',
+ customClass: 'command-page-view-message-box',
+ confirmButtonClass: 'command-message-box-confirm',
+ cancelButtonClass: 'command-message-box-cancel',
+ })
+ const ids = row ? row.id : selectedIds.value.join(',')
+ await remove(ids)
+ saveOperationLog({
+ requestUri: route.path,
+ title: `${route.name || '用户管理'}-删除`,
+ type: 1
+ })
+ ElMessage.success('删除成功')
+ selectedIds.value = []
+ getList()
+}
+
+function handleSelectionChange(rows) {
+ selectedIds.value = rows.map(item => item.id)
+}
+
+function getDeptTreeList() {
+ getDeptTree().then(res => {
+ deptTree.value = res?.data?.data ?? []
+ })
+}
+
+onMounted(() => {
+ getList()
+ getDeptTreeList()
+})
+</script>
+
+<style scoped lang="scss"></style>
diff --git a/applications/task-work-order/src/views/orderView/equipmentResource/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/FormDiaLog.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/equipmentResource/FormDiaLog.vue
rename to applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/FormDiaLog.vue
diff --git a/applications/task-work-order/src/views/orderView/equipmentResource/equipmentResourceApi.js b/applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/equipmentResourceApi.js
similarity index 100%
rename from applications/task-work-order/src/views/orderView/equipmentResource/equipmentResourceApi.js
rename to applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/equipmentResourceApi.js
diff --git a/applications/task-work-order/src/views/orderView/equipmentResource/index.vue b/applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/index.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/equipmentResource/index.vue
rename to applications/task-work-order/src/views/orderView/deviceInvocation/equipmentResource/index.vue
diff --git a/applications/task-work-order/src/views/orderView/systemMange/roleMange/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/organizational/roleMange/FormDiaLog.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/systemMange/roleMange/FormDiaLog.vue
rename to applications/task-work-order/src/views/orderView/organizational/roleMange/FormDiaLog.vue
diff --git a/applications/task-work-order/src/views/orderView/systemMange/roleMange/RolePermissionDialog.vue b/applications/task-work-order/src/views/orderView/organizational/roleMange/RolePermissionDialog.vue
similarity index 90%
rename from applications/task-work-order/src/views/orderView/systemMange/roleMange/RolePermissionDialog.vue
rename to applications/task-work-order/src/views/orderView/organizational/roleMange/RolePermissionDialog.vue
index 3b14f65..e4312df 100644
--- a/applications/task-work-order/src/views/orderView/systemMange/roleMange/RolePermissionDialog.vue
+++ b/applications/task-work-order/src/views/orderView/organizational/roleMange/RolePermissionDialog.vue
@@ -31,17 +31,17 @@
:props="treeProps"
/>
</el-tab-pane>
-<!-- <el-tab-pane label="移动app">-->
-<!-- <el-tree-->
-<!-- class="command-tree"-->
-<!-- ref="treeMenuApp"-->
-<!-- :data="menuGrantListApp"-->
-<!-- show-checkbox-->
-<!-- node-key="id"-->
-<!-- :default-checked-keys="menuTreeObjApp"-->
-<!-- :props="treeProps"-->
-<!-- />-->
-<!-- </el-tab-pane>-->
+ <el-tab-pane label="移动app">
+ <el-tree
+ class="command-tree"
+ ref="treeMenuApp"
+ :data="menuGrantListApp"
+ show-checkbox
+ node-key="id"
+ :default-checked-keys="menuTreeObjApp"
+ :props="treeProps"
+ />
+ </el-tab-pane>
</el-tabs>
<template #footer>
<el-button color="#F2F3F5" @click="visible = false">取消</el-button>
diff --git a/applications/task-work-order/src/views/orderView/systemMange/roleMange/index.vue b/applications/task-work-order/src/views/orderView/organizational/roleMange/index.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/systemMange/roleMange/index.vue
rename to applications/task-work-order/src/views/orderView/organizational/roleMange/index.vue
diff --git a/applications/task-work-order/src/views/orderView/systemMange/userMange/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/organizational/userMange/FormDiaLog.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/systemMange/userMange/FormDiaLog.vue
rename to applications/task-work-order/src/views/orderView/organizational/userMange/FormDiaLog.vue
diff --git a/applications/task-work-order/src/views/orderView/systemMange/userMange/index.vue b/applications/task-work-order/src/views/orderView/organizational/userMange/index.vue
similarity index 100%
rename from applications/task-work-order/src/views/orderView/systemMange/userMange/index.vue
rename to applications/task-work-order/src/views/orderView/organizational/userMange/index.vue
--
Gitblit v1.9.3