吉安感知网项目-前端
张含笑
2026-01-27 dd57e0e9a989e7ee8b3e3473a7ee6a1dff06a4ae
applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue
@@ -1,7 +1,7 @@
<template>
   <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
   <el-dialog class="command-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close
      :close-on-click-modal="false">
      <div class="detail-container" v-if="dialogReadonly">
         <div class="detail-title">用户详情</div>
         <el-row>
            <el-col :span="12">
               <div class="label">登录账号</div>
@@ -63,17 +63,17 @@
      </div>
      <el-form class="dialog-form" v-else ref="formRef" :model="formData" :rules="rules" label-width="110px">
         <el-divider content-position="left">基础信息</el-divider>
         <div class="detail-title">基础信息</div>
         <el-row :gutter="16">
            <el-col :span="12">
               <el-form-item label="登录账号" prop="account">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.account" maxlength="50" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.account" maxlength="50" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12" v-if="dialogMode === 'add'">
               <el-form-item label="密码" prop="password">
                  <el-input
                     class="ztzf-data-cockpit-search-input"
                     class="command-input"
                     v-model="formData.password"
                     type="password"
                     maxlength="50"
@@ -86,7 +86,7 @@
            <el-col :span="12" v-if="dialogMode === 'add'">
               <el-form-item label="确认密码" prop="password2">
                  <el-input
                     class="ztzf-data-cockpit-search-input"
                     class="command-input"
                     v-model="formData.password2"
                     type="password"
                     maxlength="50"
@@ -98,26 +98,26 @@
            </el-col>
         </el-row>
         <el-divider content-position="left">详细信息</el-divider>
         <div class="detail-title">详细信息</div>
         <el-row :gutter="16">
            <el-col :span="12">
               <el-form-item label="用户姓名" prop="realName">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.realName" maxlength="50" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.realName" maxlength="50" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12">
               <el-form-item label="手机号" prop="phone">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.phone" maxlength="20" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.phone" maxlength="20" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12">
               <el-form-item label="电子邮箱" prop="email">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.email" maxlength="50" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.email" maxlength="50" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12">
               <el-form-item label="用户性别" prop="sex">
                  <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper" v-model="formData.sex" placeholder="请选择" clearable>
                  <el-select class="command-select" popper-class="command-select-popper" v-model="formData.sex" placeholder="请选择" clearable>
                     <el-option label="男" :value="1" />
                     <el-option label="女" :value="2" />
                     <el-option label="未知" :value="3" />
@@ -127,8 +127,8 @@
            <el-col :span="12">
               <el-form-item label="用户生日" prop="birthday">
                  <el-date-picker
                     class="ztzf-data-cockpit-date-picker"
                     popper-class="ztzf-data-cockpit-date-picker-popper"
                     class="command-date-picker"
                     popper-class="command-date-picker-popper"
                     v-model="formData.birthday"
                     type="datetime"
                     placeholder="请选择"
@@ -140,18 +140,18 @@
            </el-col>
         </el-row>
         <el-divider content-position="left">职责信息</el-divider>
         <div class="detail-title">职责信息</div>
         <el-row :gutter="16">
            <el-col :span="12">
               <el-form-item label="用户编号" prop="code">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.code" maxlength="50" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.code" maxlength="50" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12">
               <el-form-item label="所属角色" prop="roleId">
                  <el-tree-select
                     class="ztzf-data-cockpit-select"
                     popper-class="ztzf-data-cockpit-tree-select-popper"
                     class="command-select"
                     popper-class="command-tree-select-popper"
                     v-model="formData.roleId"
                     :data="roleTree"
                     :props="treeProps"
@@ -165,8 +165,8 @@
            <el-col :span="12">
               <el-form-item label="所属部门" prop="deptId">
                  <el-tree-select
                     class="ztzf-data-cockpit-select"
                     popper-class="ztzf-data-cockpit-tree-select-popper"
                     class="command-select"
                     popper-class="command-tree-select-popper"
                     v-model="formData.deptId"
                     :data="deptTree"
                     :props="deptTreeSelectProps"
@@ -179,13 +179,13 @@
            </el-col>
         </el-row>
         <el-divider content-position="left">登录限制</el-divider>
         <div class="detail-title">登录限制</div>
         <el-row :gutter="16">
            <el-col :span="12">
               <el-form-item label="到期时间" prop="expireTime">
                  <el-date-picker
                     class="ztzf-data-cockpit-date-picker"
                     popper-class="ztzf-data-cockpit-date-picker-popper"
                     class="command-date-picker"
                     popper-class="command-date-picker-popper"
                     v-model="formData.expireTime"
                     type="datetime"
                     placeholder="请选择"
@@ -197,14 +197,14 @@
            </el-col>
            <el-col :span="12">
               <el-form-item label="次数限制" prop="maxLoginNum">
                  <el-input class="ztzf-data-cockpit-search-input" v-model="formData.maxLoginNum" placeholder="请输入" clearable />
                  <el-input class="command-input" v-model="formData.maxLoginNum" placeholder="请输入" clearable />
               </el-form-item>
            </el-col>
            <el-col :span="12">
               <el-form-item label="飞行开始时间" prop="flightStartTime">
                  <el-time-picker
                     class="ztzf-data-cockpit-date-picker"
                     popper-class="ztzf-data-cockpit-date-picker-popper"
                     class="command-date-picker"
                     popper-class="command-date-picker-popper"
                     v-model="formData.flightStartTime"
                     placeholder="请选择"
                     format="HH:mm"
@@ -216,8 +216,8 @@
            <el-col :span="12">
               <el-form-item label="飞行结束时间" prop="flightEndTime">
                  <el-time-picker
                     class="ztzf-data-cockpit-date-picker"
                     popper-class="ztzf-data-cockpit-date-picker-popper"
                     class="command-date-picker"
                     popper-class="command-date-picker-popper"
                     v-model="formData.flightEndTime"
                     placeholder="请选择"
                     format="HH:mm"
@@ -230,7 +230,7 @@
      </el-form>
      <template #footer>
         <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
         <el-button v-if="dialogMode != 'view'" color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
         <el-button color="#284FE3" v-if="!dialogReadonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit">
            保存
         </el-button>
@@ -245,6 +245,8 @@
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 initForm = () => ({
   account: '',
@@ -288,6 +290,7 @@
})
const roleTree = ref([])
const deptTree = ref([])
const route = useRoute()
const validatePass = (rule, value, callback) => {
   if (value === '') {
@@ -362,8 +365,18 @@
      submitData.name = submitData.realName
      if (dialogMode.value === 'add') {
         await add(submitData)
         saveOperationLog({
            requestUri: route.path,
            title: `${route.name || '用户管理'}-新增`,
            type: 1
         })
      } else {
         await update(submitData)
         saveOperationLog({
            requestUri: route.path,
            title: `${route.name || '用户管理'}-编辑`,
            type: 1
         })
      }
      ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
      visible.value = false