From 194db7300a3e50d7bd0bb61f8ff6d34d22b72f55 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 17 Jan 2026 16:37:00 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web

---
 applications/drone-command/src/views/authority/role.vue                                       |  883 +++++++++++++++++++++++++++++--------------------------
 applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue |   30 +
 2 files changed, 490 insertions(+), 423 deletions(-)

diff --git a/applications/drone-command/src/views/authority/role.vue b/applications/drone-command/src/views/authority/role.vue
index 4ae8e94..45b44ac 100644
--- a/applications/drone-command/src/views/authority/role.vue
+++ b/applications/drone-command/src/views/authority/role.vue
@@ -1,48 +1,101 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
-      :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate"
-      @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-      <template #menu-left>
-        <el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">删 除
-        </el-button>
-        <el-button icon="el-icon-setting" v-if="userInfo.role_name.includes('admin')" @click="handleRole" plain>权限设置
-        </el-button>
-        <!--  -->
-      </template>
-    </avue-crud>
-    <el-dialog title="角色权限配置" append-to-body v-model="box" width="620px">
-      <el-tabs type="border-card">
-        <el-tab-pane label="后台管理">
-          <el-tree :data="menuGrantList" show-checkbox node-key="id" ref="treeMenu" :default-checked-keys="menuTreeObj"
-            :props="props">
-          </el-tree>
-        </el-tab-pane>
-        <el-tab-pane label="移动app">
-          <el-tree :data="menuGrantListApp" show-checkbox node-key="id" ref="treeMenuApp" :default-checked-keys="menuTreeObjApp"
-                   :props="props">
-          </el-tree>
-        </el-tab-pane>
+	<basic-container>
+		<avue-crud
+			:option="option"
+			:table-loading="loading"
+			:data="data"
+			ref="crud"
+			v-model="form"
+			:permission="permissionList"
+			:before-open="beforeOpen"
+			@row-del="rowDel"
+			@row-update="rowUpdate"
+			@row-save="rowSave"
+			@search-change="searchChange"
+			@search-reset="searchReset"
+			@selection-change="selectionChange"
+			@current-change="currentChange"
+			@size-change="sizeChange"
+			@refresh-change="refreshChange"
+			@on-load="onLoad"
+		>
+			<template #menu-left>
+				<el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">
+					删 除
+				</el-button>
+				<el-button icon="el-icon-setting" v-if="userInfo.role_name.includes('admin')" @click="handleRole" plain>
+					权限设置
+				</el-button>
+				<!--  -->
+			</template>
+		</avue-crud>
+		<el-dialog title="角色权限配置" append-to-body v-model="box" width="620px">
+			<el-tabs type="border-card">
+				<el-tab-pane label="后台管理">
+					<el-tree
+						:data="menuGrantList"
+						show-checkbox
+						node-key="id"
+						ref="treeMenu"
+						:default-checked-keys="menuTreeObj"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
+				<el-tab-pane label="移动app">
+					<el-tree
+						:data="menuGrantListApp"
+						show-checkbox
+						node-key="id"
+						ref="treeMenuApp"
+						:default-checked-keys="menuTreeObjApp"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
 
-        <el-tab-pane label="新大屏菜单">
-          <el-tree :data="menuGrantListNew" show-checkbox node-key="id" ref="treeMenuWebNew" :default-checked-keys="menuTreeObjNew"
-                   :props="props">
-          </el-tree>
-        </el-tab-pane>
+				<el-tab-pane label="新大屏菜单">
+					<el-tree
+						:data="menuGrantListNew"
+						show-checkbox
+						node-key="id"
+						ref="treeMenuWebNew"
+						:default-checked-keys="menuTreeObjNew"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
 
-        <el-tab-pane label="无人机管控">
-          <el-tree :data="menuGrantListDroneControl" show-checkbox node-key="id" ref="droneControl" :default-checked-keys="droneControlMenuTreeObj"
-                   :props="props">
-          </el-tree>
-        </el-tab-pane>
+				<el-tab-pane label="无人机管控">
+					<el-tree
+						:data="menuGrantListDroneControl"
+						show-checkbox
+						node-key="id"
+						ref="droneControl"
+						:default-checked-keys="droneControlMenuTreeObj"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
 
-        <el-tab-pane label="大屏菜单">
-          <el-tree :data="menuGrantListOld" show-checkbox node-key="id" ref="treeMenuWebOld" :default-checked-keys="menuTreeObjOld"
-                   :props="props">
-          </el-tree>
-        </el-tab-pane>
-        <!-- <el-tab-pane label="数据权限">
+				<el-tab-pane label="任务工单">
+					<el-tree
+						:data="menuGrantListWork"
+						show-checkbox
+						node-key="id"
+						ref="workRef"
+						:default-checked-keys="workTreeObj"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
+
+				<el-tab-pane label="大屏菜单">
+					<el-tree
+						:data="menuGrantListOld"
+						show-checkbox
+						node-key="id"
+						ref="treeMenuWebOld"
+						:default-checked-keys="menuTreeObjOld"
+						:props="props"
+					></el-tree>
+				</el-tab-pane>
+				<!-- <el-tab-pane label="数据权限">
           <el-tree
             :data="dataScopeGrantList"
             show-checkbox
@@ -64,394 +117,392 @@
           >
           </el-tree>
         </el-tab-pane> -->
-      </el-tabs>
-      <template #footer>
-        <span class="dialog-footer">
-          <el-button @click="box = false">取 消</el-button>
-          <el-button type="primary" @click="submit">确 定</el-button>
-        </span>
-      </template>
-    </el-dialog>
-  </basic-container>
+			</el-tabs>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="box = false">取 消</el-button>
+					<el-button type="primary" @click="submit">确 定</el-button>
+				</span>
+			</template>
+		</el-dialog>
+	</basic-container>
 </template>
 
 <script>
-import {
-  add,
-  getList,
-  getRole,
-  getRoleTreeById,
-  grant,
-  grantTree,
-  remove,
-  update,
-} from '@/api/system/role'
+import { add, getList, getRole, getRoleTreeById, grant, grantTree, remove, update } from '@/api/system/role'
 import { mapGetters } from 'vuex'
 import website from '@/config/website'
 
 export default {
-  data () {
-    return {
-      form: {},
-      box: false,
-      props: {
-        label: 'title',
-        value: 'key',
-      },
-      menuGrantList: [],
-      menuGrantListApp: [],
-      menuGrantListOld: [],
-      menuGrantListNew: [],
-      menuGrantListDroneControl: [],
-      dataScopeGrantList: [],
-      apiScopeGrantList: [],
-      apiGrantList: [],
-      menuTreeObj: [],
-      menuTreeObjApp: [],
-      menuTreeObjOld: [],
-      menuTreeObjNew: [],
-      droneControlMenuTreeObj: [],
-      dataScopeTreeObj: [],
-      apiScopeTreeObj: [],
-      selectionList: [],
-      query: {},
-      loading: true,
-      page: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-      option: {
-        emptyBtnText: '重置',
-        emptyBtnIcon: 'el-icon-refresh',
-        tip: false,
-        simplePage: true,
-        searchShow: true,
-        searchGutter: 30,
-        searchMenuPosition: 'left',
-        searchMenuSpan: 4,
-        tree: true,
-        border: true,
-        index: true,
-        selection: true,
-        viewBtn: true,
-        dialogWidth: 900,
-        dialogClickModal: false,
+	data() {
+		return {
+			form: {},
+			box: false,
+			props: {
+				label: 'title',
+				value: 'key',
+			},
+			menuGrantList: [],
+			menuGrantListApp: [],
+			menuGrantListOld: [],
+			menuGrantListNew: [],
+			menuGrantListDroneControl: [],
+			menuGrantListWork: [],
+			dataScopeGrantList: [],
+			apiScopeGrantList: [],
+			apiGrantList: [],
+			menuTreeObj: [],
+			menuTreeObjApp: [],
+			menuTreeObjOld: [],
+			menuTreeObjNew: [],
+			droneControlMenuTreeObj: [],
+			workTreeObj: [],
+			dataScopeTreeObj: [],
+			apiScopeTreeObj: [],
+			selectionList: [],
+			query: {},
+			loading: true,
+			page: {
+				pageSize: 10,
+				currentPage: 1,
+				total: 0,
+			},
+			option: {
+				emptyBtnText: '重置',
+				emptyBtnIcon: 'el-icon-refresh',
+				tip: false,
+				simplePage: true,
+				searchShow: true,
+				searchGutter: 30,
+				searchMenuPosition: 'left',
+				searchMenuSpan: 4,
+				tree: true,
+				border: true,
+				index: true,
+				selection: true,
+				viewBtn: true,
+				dialogWidth: 900,
+				dialogClickModal: false,
 
-        height: 'auto',
-        calcHeight: 20,
+				height: 'auto',
+				calcHeight: 20,
 
-        column: [
-          {
-            label: '角色名称',
-            prop: 'roleName',
-            search: true,
-            searchSpan: 4,
-            span: 24,
-            rules: [
-              {
-                required: true,
-                message: '请输入角色名称',
-                trigger: 'blur',
-              },
-            ],
-          },
-          // {
-          //   label: '所属租户',
-          //   prop: 'tenantId',
-          //   type: 'tree',
-          //   dicUrl: '/blade-system/tenant/select',
-          //   addDisplay: false,
-          //   editDisplay: false,
-          //   viewDisplay: website.tenantMode,
-          //   span: 24,
-          //   props: {
-          //     label: 'tenantName',
-          //     value: 'tenantId',
-          //   },
-          //   hide: !website.tenantMode,
-          //   search: website.tenantMode,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: '请输入所属租户',
-          //       trigger: 'click',
-          //     },
-          //   ],
-          // },
-          {
-            label: '角色别名',
-            prop: 'roleAlias',
-            search: true,
-            searchSpan: 4,
-            span: 24,
-            rules: [
-              {
-                required: true,
-                message: '请输入角色别名',
-                trigger: 'blur',
-              },
-            ],
-          },
-          {
-            label: '上级角色',
-            prop: 'parentId',
-            dicData: [],
-            type: 'tree',
-            hide: true,
-            span: 24,
-            props: {
-              label: 'title',
-            },
-            rules: [
-              {
-                required: false,
-                message: '请选择上级角色',
-                trigger: 'click',
-              },
-            ],
-          },
-          {
-            label: '角色排序',
-            prop: 'sort',
-            type: 'number',
-            span: 24,
-            rules: [
-              {
-                required: true,
-                message: '请输入角色排序',
-                trigger: 'blur',
-              },
-            ],
-          },
-        ],
-      },
-      data: [],
-    }
-  },
-  computed: {
-    ...mapGetters(['userInfo', 'permission']),
-    permissionList () {
-      return {
-        addBtn: this.validData(this.permission.role_add, false),
-        viewBtn: this.validData(this.permission.role_view, false),
-        delBtn: this.validData(this.permission.role_delete, false),
-        editBtn: this.validData(this.permission.role_edit, false),
-      }
-    },
-    ids () {
-      let ids = []
-      this.selectionList.forEach(ele => {
-        ids.push(ele.id)
-      })
-      return ids.join(',')
-    },
-    idsArray () {
-      let ids = []
-      this.selectionList.forEach(ele => {
-        ids.push(ele.id)
-      })
-      return ids
-    },
-  },
-  methods: {
-    initData (roleId) {
-      getRoleTreeById(roleId).then(res => {
-        const column = this.findObject(this.option.column, 'parentId')
-        column.dicData = res.data.data
-      })
-    },
-    submit () {
-      const menuList = this.$refs.treeMenu.getCheckedKeys()
-      const menuListApp = this.$refs.treeMenuApp.getCheckedKeys()
-      const menuListWebNew = this.$refs.treeMenuWebNew.getCheckedKeys()
-      const menuListDroneControl = this.$refs.droneControl.getCheckedKeys()
-      const menuListWebOld = this.$refs.treeMenuWebOld.getCheckedKeys()
+				column: [
+					{
+						label: '角色名称',
+						prop: 'roleName',
+						search: true,
+						searchSpan: 4,
+						span: 24,
+						rules: [
+							{
+								required: true,
+								message: '请输入角色名称',
+								trigger: 'blur',
+							},
+						],
+					},
+					// {
+					//   label: '所属租户',
+					//   prop: 'tenantId',
+					//   type: 'tree',
+					//   dicUrl: '/blade-system/tenant/select',
+					//   addDisplay: false,
+					//   editDisplay: false,
+					//   viewDisplay: website.tenantMode,
+					//   span: 24,
+					//   props: {
+					//     label: 'tenantName',
+					//     value: 'tenantId',
+					//   },
+					//   hide: !website.tenantMode,
+					//   search: website.tenantMode,
+					//   rules: [
+					//     {
+					//       required: true,
+					//       message: '请输入所属租户',
+					//       trigger: 'click',
+					//     },
+					//   ],
+					// },
+					{
+						label: '角色别名',
+						prop: 'roleAlias',
+						search: true,
+						searchSpan: 4,
+						span: 24,
+						rules: [
+							{
+								required: true,
+								message: '请输入角色别名',
+								trigger: 'blur',
+							},
+						],
+					},
+					{
+						label: '上级角色',
+						prop: 'parentId',
+						dicData: [],
+						type: 'tree',
+						hide: true,
+						span: 24,
+						props: {
+							label: 'title',
+						},
+						rules: [
+							{
+								required: false,
+								message: '请选择上级角色',
+								trigger: 'click',
+							},
+						],
+					},
+					{
+						label: '角色排序',
+						prop: 'sort',
+						type: 'number',
+						span: 24,
+						rules: [
+							{
+								required: true,
+								message: '请输入角色排序',
+								trigger: 'blur',
+							},
+						],
+					},
+				],
+			},
+			data: [],
+		}
+	},
+	computed: {
+		...mapGetters(['userInfo', 'permission']),
+		permissionList() {
+			return {
+				addBtn: this.validData(this.permission.role_add, false),
+				viewBtn: this.validData(this.permission.role_view, false),
+				delBtn: this.validData(this.permission.role_delete, false),
+				editBtn: this.validData(this.permission.role_edit, false),
+			}
+		},
+		ids() {
+			let ids = []
+			this.selectionList.forEach(ele => {
+				ids.push(ele.id)
+			})
+			return ids.join(',')
+		},
+		idsArray() {
+			let ids = []
+			this.selectionList.forEach(ele => {
+				ids.push(ele.id)
+			})
+			return ids
+		},
+	},
+	methods: {
+		initData(roleId) {
+			getRoleTreeById(roleId).then(res => {
+				const column = this.findObject(this.option.column, 'parentId')
+				column.dicData = res.data.data
+			})
+		},
+		submit() {
+			const menuList = this.$refs.treeMenu.getCheckedKeys()
+			const menuListApp = this.$refs.treeMenuApp.getCheckedKeys()
+			const menuListWebNew = this.$refs.treeMenuWebNew.getCheckedKeys()
+			const menuListWork = this.$refs.workRef.getCheckedKeys()
+			const menuListDroneControl = this.$refs.droneControl.getCheckedKeys()
+			const menuListWebOld = this.$refs.treeMenuWebOld.getCheckedKeys()
 
-      
+			// const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
+			const dataScopeList = []
+			// const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
+			const apiScopeList = []
+			grant(
+				this.idsArray,
+				[...menuList, ...menuListApp, ...menuListWebNew, ...menuListDroneControl, ...menuListWebOld, ...menuListWork],
+				dataScopeList,
+				apiScopeList
+			).then(() => {
+				this.box = false
+				this.$message({
+					type: 'success',
+					message: '操作成功!',
+				})
+				this.onLoad(this.page)
+			})
+		},
+		rowSave(row, done, loading) {
+			add(row).then(
+				() => {
+					this.onLoad(this.page)
+					this.$message({
+						type: 'success',
+						message: '操作成功!',
+					})
+					done()
+				},
+				error => {
+					window.console.log(error)
+					loading()
+				}
+			)
+		},
+		rowUpdate(row, index, done, loading) {
+			update(row).then(
+				() => {
+					this.onLoad(this.page)
+					this.$message({
+						type: 'success',
+						message: '操作成功!',
+					})
+					done()
+				},
+				error => {
+					window.console.log(error)
+					loading()
+				}
+			)
+		},
+		rowDel(row) {
+			this.$confirm('确定将选择数据删除?', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+			})
+				.then(() => {
+					return remove(row.id)
+				})
+				.then(() => {
+					this.onLoad(this.page)
+					this.$message({
+						type: 'success',
+						message: '操作成功!',
+					})
+				})
+		},
 
-      // const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
-      const dataScopeList = []
-      // const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
-      const apiScopeList = []
-      grant(this.idsArray, [
-        ...menuList,
-        ...menuListApp,
-        ...menuListWebNew,
-        ...menuListDroneControl,
-        ...menuListWebOld,
-      ], dataScopeList, apiScopeList).then(() => {
-        this.box = false
-        this.$message({
-          type: 'success',
-          message: '操作成功!',
-        })
-        this.onLoad(this.page)
-      })
-    },
-    rowSave (row, done, loading) {
-      add(row).then(
-        () => {
-          this.onLoad(this.page)
-          this.$message({
-            type: 'success',
-            message: '操作成功!',
-          })
-          done()
-        },
-        error => {
-          window.console.log(error)
-          loading()
-        }
-      )
-    },
-    rowUpdate (row, index, done, loading) {
-      update(row).then(
-        () => {
-          this.onLoad(this.page)
-          this.$message({
-            type: 'success',
-            message: '操作成功!',
-          })
-          done()
-        },
-        error => {
-          window.console.log(error)
-          loading()
-        }
-      )
-    },
-    rowDel (row) {
-      this.$confirm('确定将选择数据删除?', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      })
-        .then(() => {
-          return remove(row.id)
-        })
-        .then(() => {
-          this.onLoad(this.page)
-          this.$message({
-            type: 'success',
-            message: '操作成功!',
-          })
-        })
-    },
+		searchReset() {
+			this.query = {}
+			this.onLoad(this.page)
+		},
+		searchChange(params, done) {
+			this.query = params
+			this.page.currentPage = 1
+			this.onLoad(this.page, params)
+			done()
+		},
+		selectionChange(list) {
+			this.selectionList = list
+		},
+		selectionClear() {
+			this.selectionList = []
+			this.$refs.crud.toggleSelection()
+		},
+		beforeOpen(done, type) {
+			if (['add', 'edit'].includes(type)) {
+				this.initData(this.form.id)
+			}
+			done()
+		},
+		handleRole() {
+			if (this.selectionList.length !== 1) {
+				this.$message.warning('只能选择一条数据')
+				return
+			}
+			this.menuTreeObj = []
+			this.dataScopeTreeObj = []
+			this.apiScopeTreeObj = []
+			grantTree({ sysType: 1 }).then(res => {
+				this.menuGrantList = res.data.data.menu
+				this.dataScopeGrantList = res.data.data.dataScope
+				this.apiScopeGrantList = res.data.data.apiScope
+				getRole(this.ids).then(res => {
+					this.menuTreeObj = res.data.data.menu
+					this.dataScopeTreeObj = res.data.data.dataScope
+					this.apiScopeTreeObj = res.data.data.apiScope
+					this.box = true
+				})
+			})
+			grantTree({ sysType: 3 }).then(res => {
+				this.menuGrantListApp = res.data.data.menu
+				getRole(this.ids).then(res => {
+					this.menuTreeObjApp = res.data.data.menu
+					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
+				})
+			})
 
-    searchReset () {
-      this.query = {}
-      this.onLoad(this.page)
-    },
-    searchChange (params, done) {
-      this.query = params
-      this.page.currentPage = 1
-      this.onLoad(this.page, params)
-      done()
-    },
-    selectionChange (list) {
-      this.selectionList = list
-    },
-    selectionClear () {
-      this.selectionList = []
-      this.$refs.crud.toggleSelection()
-    },
-    beforeOpen (done, type) {
-      if (['add', 'edit'].includes(type)) {
-        this.initData(this.form.id)
-      }
-      done()
-    },
-    handleRole () {
-      if (this.selectionList.length !== 1) {
-        this.$message.warning('只能选择一条数据')
-        return
-      }
-      this.menuTreeObj = []
-      this.dataScopeTreeObj = []
-      this.apiScopeTreeObj = []
-      grantTree({sysType: 1}).then(res => {
-        this.menuGrantList = res.data.data.menu
-        this.dataScopeGrantList = res.data.data.dataScope
-        this.apiScopeGrantList = res.data.data.apiScope
-        getRole(this.ids).then(res => {
-          this.menuTreeObj = res.data.data.menu
-          this.dataScopeTreeObj = res.data.data.dataScope
-          this.apiScopeTreeObj = res.data.data.apiScope
-          this.box = true
-        })
-      })
-      grantTree({sysType: 3}).then(res => {
-        this.menuGrantListApp = res.data.data.menu
-        getRole(this.ids).then(res => {
-          this.menuTreeObjApp = res.data.data.menu
-          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
-        })
-      })
-    
-      grantTree({sysType: 4}).then(res => {
-        this.menuGrantListNew = res.data.data.menu
-        getRole(this.ids).then(res => {
-          this.menuTreeObjNew = res.data.data.menu
-          this.box = true
-        })
-      })
+			grantTree({ sysType: 4 }).then(res => {
+				this.menuGrantListNew = res.data.data.menu
+				getRole(this.ids).then(res => {
+					this.menuTreeObjNew = res.data.data.menu
+					this.box = true
+				})
+			})
 
-      grantTree({sysType: 5}).then(res => {
-        this.menuGrantListDroneControl = res.data.data.menu
-        getRole(this.ids).then(res => {
-          this.droneControlMenuTreeObj = res.data.data.menu
-          this.box = true
-        })
-      })
-    },
-    handleDelete () {
-      if (this.selectionList.length === 0) {
-        this.$message.warning('请选择至少一条数据')
-        return
-      }
-      this.$confirm('确定将选择数据删除?', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      })
-        .then(() => {
-          return remove(this.ids)
-        })
-        .then(() => {
-          this.onLoad(this.page)
-          this.$message({
-            type: 'success',
-            message: '操作成功!',
-          })
-          this.$refs.crud.toggleSelection()
-        })
-    },
-    currentChange (currentPage) {
-      this.page.currentPage = currentPage
-    },
-    sizeChange (pageSize) {
-      this.page.pageSize = pageSize
-    },
-    refreshChange () {
-      this.onLoad(this.page, this.query)
-    },
-    onLoad (page, params = {}) {
-      this.loading = true
-      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-        this.data = res.data.data
-        this.loading = false
-        this.selectionClear()
-      })
-    },
-  },
+			grantTree({ sysType: 5 }).then(res => {
+				this.menuGrantListDroneControl = res.data.data.menu
+				getRole(this.ids).then(res => {
+					this.droneControlMenuTreeObj = res.data.data.menu
+					this.box = true
+				})
+			})
+			grantTree({ sysType: 6 }).then(res => {
+				this.menuGrantListWork = res.data.data.menu
+				getRole(this.ids).then(res => {
+					this.workTreeObj = res.data.data.menu
+					this.box = true
+				})
+			})
+		},
+		handleDelete() {
+			if (this.selectionList.length === 0) {
+				this.$message.warning('请选择至少一条数据')
+				return
+			}
+			this.$confirm('确定将选择数据删除?', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+			})
+				.then(() => {
+					return remove(this.ids)
+				})
+				.then(() => {
+					this.onLoad(this.page)
+					this.$message({
+						type: 'success',
+						message: '操作成功!',
+					})
+					this.$refs.crud.toggleSelection()
+				})
+		},
+		currentChange(currentPage) {
+			this.page.currentPage = currentPage
+		},
+		sizeChange(pageSize) {
+			this.page.pageSize = pageSize
+		},
+		refreshChange() {
+			this.onLoad(this.page, this.query)
+		},
+		onLoad(page, params = {}) {
+			this.loading = true
+			getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+				this.data = res.data.data
+				this.loading = false
+				this.selectionClear()
+			})
+		},
+	},
 }
 </script>
 <style scoped lang="scss"></style>
diff --git a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
index 95fdd9c..4df6303 100644
--- a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
@@ -48,6 +48,16 @@
 					:props="treeProps"
 				/>
 			</el-tab-pane>
+			<el-tab-pane label="任务工单">
+				<el-tree
+					ref="workRef"
+					:data="menuGrantListWord"
+					show-checkbox
+					node-key="id"
+					:default-checked-keys="menuTreeObjWork"
+					:props="treeProps"
+				/>
+			</el-tab-pane>
 			<el-tab-pane label="大屏菜单">
 				<el-tree
 					ref="treeMenuWebOld"
@@ -81,16 +91,19 @@
 const menuGrantListOld = ref([])
 const menuGrantListNew = ref([])
 const menuGrantListDroneControl = ref([])
+const menuGrantListWord = ref([])
 const menuTreeObj = ref([])
 const menuTreeObjApp = ref([])
 const menuTreeObjOld = ref([])
 const menuTreeObjNew = ref([])
 const droneControlMenuTreeObj = ref([])
+const menuTreeObjWork = ref([])
 
 const treeMenu = ref(null)
 const treeMenuApp = ref(null)
 const treeMenuWebOld = ref(null)
 const treeMenuWebNew = ref(null)
+const workRef = ref(null)
 const droneControl = ref(null)
 
 const emit = defineEmits(['success'])
@@ -101,11 +114,13 @@
 	menuGrantListOld.value = []
 	menuGrantListNew.value = []
 	menuGrantListDroneControl.value = []
+	menuGrantListWord.value = []
 	menuTreeObj.value = []
 	menuTreeObjApp.value = []
 	menuTreeObjOld.value = []
 	menuTreeObjNew.value = []
 	droneControlMenuTreeObj.value = []
+	menuTreeObjWork.value = []
 }
 
 async function loadGrantTree(sysType, setter, keysSetter) {
@@ -124,6 +139,7 @@
 		loadGrantTree(3, menuGrantListApp, menuTreeObjApp),
 		loadGrantTree(4, menuGrantListNew, menuTreeObjNew),
 		loadGrantTree(5, menuGrantListDroneControl, droneControlMenuTreeObj),
+		loadGrantTree(6, menuGrantListWord, menuTreeObjWork),
 		loadGrantTree(2, menuGrantListOld, menuTreeObjOld),
 	])
 }
@@ -132,15 +148,15 @@
 	const menuList = treeMenu.value?.getCheckedKeys?.() ?? []
 	const menuListApp = treeMenuApp.value?.getCheckedKeys?.() ?? []
 	const menuListWebNew = treeMenuWebNew.value?.getCheckedKeys?.() ?? []
+	const menuListWebWork = workRef.value?.getCheckedKeys?.() ?? []
 	const menuListDroneControl = droneControl.value?.getCheckedKeys?.() ?? []
 	const menuListWebOld = treeMenuWebOld.value?.getCheckedKeys?.() ?? []
-	grant([roleId.value], [
-		...menuList,
-		...menuListApp,
-		...menuListWebNew,
-		...menuListDroneControl,
-		...menuListWebOld,
-	], [], []).then(() => {
+	grant(
+		[roleId.value],
+		[...menuList, ...menuListApp, ...menuListWebNew, ...menuListDroneControl, ...menuListWebOld, ...menuListWebWork],
+		[],
+		[]
+	).then(() => {
 		visible.value = false
 		emit('success')
 	})

--
Gitblit v1.9.3