杜迪迪 il y a 1 an
Parent
commit
7b1ea2627a

+ 81 - 80
src/router/index.js

@@ -1,6 +1,6 @@
-import { createWebHistory, createRouter } from 'vue-router'
+import { createWebHistory, createRouter } from "vue-router";
 /* Layout */
-import Layout from '@/layout'
+import Layout from "@/layout";
 
 /**
  * Note: 路由配置项
@@ -27,147 +27,148 @@ import Layout from '@/layout'
 // 公共路由
 export const constantRoutes = [
   {
-    path: '/redirect',
+    path: "/redirect",
     component: Layout,
     hidden: true,
     children: [
       {
-        path: '/redirect/:path(.*)',
-        component: () => import('@/views/redirect/index.vue')
-      }
-    ]
+        path: "/redirect/:path(.*)",
+        component: () => import("@/views/redirect/index.vue"),
+      },
+    ],
   },
+
   {
-    path: '/login',
-    component: () => import('@/views/login'),
-    hidden: true
+    path: "/login",
+    component: () => import("@/views/login"),
+    hidden: true,
   },
   {
-    path: '/register',
-    component: () => import('@/views/register'),
-    hidden: true
+    path: "/register",
+    component: () => import("@/views/register"),
+    hidden: true,
   },
   {
     path: "/:pathMatch(.*)*",
-    component: () => import('@/views/error/404'),
-    hidden: true
+    component: () => import("@/views/error/404"),
+    hidden: true,
   },
   {
-    path: '/401',
-    component: () => import('@/views/error/401'),
-    hidden: true
+    path: "/401",
+    component: () => import("@/views/error/401"),
+    hidden: true,
   },
   {
-    path: '',
+    path: "",
     component: Layout,
-    redirect: '/index',
+    redirect: "/index",
     children: [
       {
-        path: '/index',
-        component: () => import('@/views/index'),
-        name: 'Index',
-        meta: { title: '首页', icon: 'dashboard', affix: true }
-      }
-    ]
+        path: "/index",
+        component: () => import("@/views/index"),
+        name: "Index",
+        meta: { title: "首页", icon: "dashboard", affix: true },
+      },
+    ],
   },
   {
-    path: '/user',
+    path: "/user",
     component: Layout,
     hidden: true,
-    redirect: 'noredirect',
+    redirect: "noredirect",
     children: [
       {
-        path: 'profile',
-        component: () => import('@/views/system/user/profile/index'),
-        name: 'Profile',
-        meta: { title: '个人中心', icon: 'user' }
-      }
-    ]
-  }
-]
+        path: "profile",
+        component: () => import("@/views/system/user/profile/index"),
+        name: "Profile",
+        meta: { title: "个人中心", icon: "user" },
+      },
+    ],
+  },
+];
 
 // 动态路由,基于用户权限动态去加载
 export const dynamicRoutes = [
   {
-    path: '/system/user-auth',
+    path: "/system/user-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:user:edit'],
+    permissions: ["system:user:edit"],
     children: [
       {
-        path: 'role/:userId(\\d+)',
-        component: () => import('@/views/system/user/authRole'),
-        name: 'AuthRole',
-        meta: { title: '分配角色', activeMenu: '/system/user' }
-      }
-    ]
+        path: "role/:userId(\\d+)",
+        component: () => import("@/views/system/user/authRole"),
+        name: "AuthRole",
+        meta: { title: "分配角色", activeMenu: "/system/user" },
+      },
+    ],
   },
   {
-    path: '/system/role-auth',
+    path: "/system/role-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:role:edit'],
+    permissions: ["system:role:edit"],
     children: [
       {
-        path: 'user/:roleId(\\d+)',
-        component: () => import('@/views/system/role/authUser'),
-        name: 'AuthUser',
-        meta: { title: '分配用户', activeMenu: '/system/role' }
-      }
-    ]
+        path: "user/:roleId(\\d+)",
+        component: () => import("@/views/system/role/authUser"),
+        name: "AuthUser",
+        meta: { title: "分配用户", activeMenu: "/system/role" },
+      },
+    ],
   },
   {
-    path: '/system/dict-data',
+    path: "/system/dict-data",
     component: Layout,
     hidden: true,
-    permissions: ['system:dict:list'],
+    permissions: ["system:dict:list"],
     children: [
       {
-        path: 'index/:dictId(\\d+)',
-        component: () => import('@/views/system/dict/data'),
-        name: 'Data',
-        meta: { title: '字典数据', activeMenu: '/system/dict' }
-      }
-    ]
+        path: "index/:dictId(\\d+)",
+        component: () => import("@/views/system/dict/data"),
+        name: "Data",
+        meta: { title: "字典数据", activeMenu: "/system/dict" },
+      },
+    ],
   },
   {
-    path: '/monitor/job-log',
+    path: "/monitor/job-log",
     component: Layout,
     hidden: true,
-    permissions: ['monitor:job:list'],
+    permissions: ["monitor:job:list"],
     children: [
       {
-        path: 'index/:jobId(\\d+)',
-        component: () => import('@/views/monitor/job/log'),
-        name: 'JobLog',
-        meta: { title: '调度日志', activeMenu: '/monitor/job' }
-      }
-    ]
+        path: "index/:jobId(\\d+)",
+        component: () => import("@/views/monitor/job/log"),
+        name: "JobLog",
+        meta: { title: "调度日志", activeMenu: "/monitor/job" },
+      },
+    ],
   },
   {
-    path: '/tool/gen-edit',
+    path: "/tool/gen-edit",
     component: Layout,
     hidden: true,
-    permissions: ['tool:gen:edit'],
+    permissions: ["tool:gen:edit"],
     children: [
       {
-        path: 'index/:tableId(\\d+)',
-        component: () => import('@/views/tool/gen/editTable'),
-        name: 'GenEdit',
-        meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
-      }
-    ]
-  }
-]
+        path: "index/:tableId(\\d+)",
+        component: () => import("@/views/tool/gen/editTable"),
+        name: "GenEdit",
+        meta: { title: "修改生成配置", activeMenu: "/tool/gen" },
+      },
+    ],
+  },
+];
 
 const router = createRouter({
   history: createWebHistory(),
   routes: constantRoutes,
   scrollBehavior(to, from, savedPosition) {
     if (savedPosition) {
-      return savedPosition
+      return savedPosition;
     } else {
-      return { top: 0 }
+      return { top: 0 };
     }
   },
 });

+ 12 - 11
src/views/activiti/definition/index.vue

@@ -13,7 +13,7 @@
           clearable
           size="small"
           style="width: 240px"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="名称" prop="name">
@@ -23,7 +23,7 @@
           clearable
           size="small"
           style="width: 240px"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="所属分类" prop="name">
@@ -33,7 +33,7 @@
           clearable
           size="small"
           style="width: 240px"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item>
@@ -64,7 +64,7 @@
         >
       </el-col>
       <right-toolbar
-        :showSearch.sync="showSearch"
+        :showSearch="showSearch"
         @queryTable="getList"
       ></right-toolbar>
     </el-row>
@@ -155,15 +155,14 @@
     <pagination
       v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page="queryParams.pageNum"
+      :limit="queryParams.pageSize"
       @pagination="getList"
     />
 
     <!-- 部署流程定义对话框 -->
     <el-dialog
       v-bind="$attrs"
-      v-on="$listeners"
       @open="onOpen"
       @close="onClose"
       :title="title"
@@ -191,10 +190,12 @@
           </el-upload>
         </el-form-item>
       </el-form>
-      <div slot="footer">
-        <el-button @click="close">取消</el-button>
-        <el-button type="primary" @click="handelConfirm">确定</el-button>
-      </div>
+      <template v-slot:scope>
+        <div>
+          <el-button @click="close">取消</el-button>
+          <el-button type="primary" @click="handelConfirm">确定</el-button>
+        </div>
+      </template>
     </el-dialog>
   </div>
 </template>

+ 16 - 21
src/views/activiti/modeler/index.vue

@@ -13,7 +13,7 @@
           clearable
           size="small"
           style="width: 240px"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="名称" prop="name">
@@ -23,7 +23,7 @@
           clearable
           size="small"
           style="width: 240px"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item>
@@ -52,7 +52,7 @@
         >
       </el-col>
       <right-toolbar
-        :showSearch.sync="showSearch"
+        :showSearch="showSearch"
         @queryTable="getList"
       ></right-toolbar>
     </el-row>
@@ -142,10 +142,12 @@
           />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
+      <template v-slot:footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
     </el-dialog>
   </div>
 </template>
@@ -159,7 +161,7 @@ import {
   exportModeler,
 } from "@/api/activiti/modeler.js";
 import { format } from "@/utils/activiti/myUtil.js";
-
+import { ElMessage } from "element-plus";
 export default {
   name: "Modeler",
   data() {
@@ -266,7 +268,7 @@ export default {
       this.$refs["form"].validate((valid) => {
         if (valid) {
           addModeler(this.form).then((response) => {
-            if (response.code === 200) {
+            if (response.code == 200) {
               // this.msgSuccess("新增成功");
               ElMessage({
                 message: "新增成功",
@@ -275,7 +277,7 @@ export default {
               this.open = false;
               this.getList();
 
-              this.designModeler(response.data);
+              // this.designModeler(response.data);
             }
           });
         }
@@ -284,17 +286,10 @@ export default {
     /** 模型在线设计 */
     designModeler(id) {
       // 打开新标签页
-      // const routeUrl = this.$router.resolve({
-      //   path:
-      //     import.meta.env.VITE_APP_BASE_API +
-      //     "/modeler/modeler.html?modelId=" +
-      //     id,
-      // });
-      // window.open(routeUrl.href, "_blank");
-      window.location.href =
-        import.meta.env.VITE_APP_BASE_API +
-        "/modeler/modeler.html?modelId=" +
-        id;
+      const url = `${
+        import.meta.env.VITE_APP_BASE_API
+      }/modeler/modeler.html?modelId=${id}`;
+      window.open(url, "_blank");
     },
     /** 删除按钮操作 */
     handleDelete(row) {

+ 56 - 46
src/views/example/demo/demoForm.vue

@@ -1,79 +1,89 @@
 <template>
   <div>
     <!--查看和审批对话框-->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" label-width="100px">
         <el-form-item label="申请编号" prop="applyNum">
-          <el-input v-model="form.applyNum" :readonly="taskName!=='调整申请'" />
+          <el-input
+            v-model="form.applyNum"
+            :readonly="taskName !== '调整申请'"
+          />
         </el-form-item>
         <el-form-item label="是否高压停电">
-          <el-radio-group v-model="form.highVoltage" :disabled="taskName!=='调整申请'">
+          <el-radio-group
+            v-model="form.highVoltage"
+            :disabled="taskName !== '调整申请'"
+          >
             <el-radio label="0">否</el-radio>
             <el-radio label="1">是</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="申请人" prop="applyUserName">
-          <el-input v-model="form.applyUserName" :readonly="taskName!=='调整申请'" />
+          <el-input
+            v-model="form.applyUserName"
+            :readonly="taskName !== '调整申请'"
+          />
         </el-form-item>
         <el-form-item label="申请时间" prop="applyTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.applyTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          placeholder="选择申请时间"
-                          :readonly="taskName!=='调整申请'">
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.applyTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择申请时间"
+            :readonly="taskName !== '调整申请'"
+          >
           </el-date-picker>
         </el-form-item>
         <!--<el-form-item label="流程实例ID" prop="instanceId">
           <el-input v-model="form.instanceId" readonly />
         </el-form-item>-->
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" :readonly="taskName!=='调整申请'" />
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            :readonly="taskName !== '调整申请'"
+          />
         </el-form-item>
       </el-form>
-      <view-verify
-        :open.sync="open"
-        :row="row"
-        :taskId="taskId"
-        :type="type"
-      />
+      <view-verify :open="open" :row="row" :taskId="taskId" :type="type" />
     </el-dialog>
   </div>
 </template>
 
 <script>
-  import ViewVerify from "@/components/Activiti/ViewVerify/index";
+import ViewVerify from "@/components/Activiti/ViewVerify/index";
 
-  export default {
-    name: "DemoForm",
-    components: {
-      ViewVerify,
+export default {
+  name: "DemoForm",
+  components: {
+    ViewVerify,
+  },
+  props: {
+    row: {
+      type: Object,
     },
-    props: {
-      row: {
-        type: Object,
-      },
-      taskId: {
-        type: String,
-      },
-      taskName: {
-        type: String,
-      },
-      type: {
-        type: String,
-        default: 'none',
-      },
+    taskId: {
+      type: String,
     },
-    data() {
-      return {
-        title: '查看示例Demo',
-        form: this.row,
-        open: false,
-      }
+    taskName: {
+      type: String,
     },
-  }
+    type: {
+      type: String,
+      default: "none",
+    },
+  },
+  data() {
+    return {
+      title: "查看示例Demo",
+      form: this.row,
+      open: false,
+    };
+  },
+};
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

+ 196 - 93
src/views/example/demo/index.vue

@@ -1,17 +1,28 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="申请编号" prop="applyNum">
         <el-input
           v-model="queryParams.applyNum"
           placeholder="请输入申请编号"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="高压停电" prop="highVoltage">
-        <el-select v-model="queryParams.highVoltage" placeholder="请选择是否高压停电" clearable size="small">
+        <el-select
+          v-model="queryParams.highVoltage"
+          placeholder="请选择是否高压停电"
+          clearable
+          size="small"
+        >
           <el-option label="否" value="0" />
           <el-option label="是" value="1" />
         </el-select>
@@ -22,15 +33,19 @@
           placeholder="请输入申请人"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="申请时间" prop="applyTime">
-        <el-date-picker clearable size="small" style="width: 200px"
+        <el-date-picker
+          clearable
+          size="small"
+          style="width: 200px"
           v-model="queryParams.applyTime"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择申请时间">
+          placeholder="选择申请时间"
+        >
         </el-date-picker>
       </el-form-item>
       <el-form-item label="流程实例" prop="instanceId">
@@ -39,12 +54,20 @@
           placeholder="请输入流程实例ID"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="cyan"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -56,27 +79,69 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['example:demo:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="demoList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="demoList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="id" width="60" />
-      <el-table-column label="申请编号" align="center" prop="applyNum" width="120" />
-      <el-table-column label="是否高压停电" align="center" prop="highVoltage" width="100">
-        <template slot-scope="scope">
-          <span>{{ scope.row.highVoltage === '0' ? '否' : '是' }}</span>
+      <el-table-column
+        label="申请编号"
+        align="center"
+        prop="applyNum"
+        width="120"
+      />
+      <el-table-column
+        label="是否高压停电"
+        align="center"
+        prop="highVoltage"
+        width="100"
+      >
+        <template :slot-scope="scope">
+          <span>{{ scope.row.highVoltage === "0" ? "否" : "是" }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="申请人" align="center" prop="applyUserName" width="90" />
-      <el-table-column label="申请时间" align="center" prop="applyTime" width="180" />
-      <el-table-column label="流程实例ID" align="center" prop="instanceId" width="100" />
+      <el-table-column
+        label="申请人"
+        align="center"
+        prop="applyUserName"
+        width="90"
+      />
+      <el-table-column
+        label="申请时间"
+        align="center"
+        prop="applyTime"
+        width="180"
+      />
+      <el-table-column
+        label="流程实例ID"
+        align="center"
+        prop="instanceId"
+        width="100"
+      />
       <el-table-column label="备注" align="center" prop="remark" width="180" />
-      <el-table-column label="当前任务名称" align="center" prop="taskName" width="150" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
+      <el-table-column
+        label="当前任务名称"
+        align="center"
+        prop="taskName"
+        width="150"
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template :slot-scope="scope">
           <!--本案例提交申请前有做会签参与人选择的操作,因此不引入 ApplyBefore 子组件-->
           <el-button
             v-show="!scope.row.instanceId"
@@ -84,21 +149,24 @@
             type="text"
             icon="el-icon-check"
             @click="handleApplyView(scope.row)"
-          >提交申请</el-button>
+            >提交申请</el-button
+          >
           <el-button
             v-show="!scope.row.instanceId"
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-          >修改</el-button>
+            >修改</el-button
+          >
           <el-button
             v-show="!scope.row.instanceId"
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-          >删除</el-button>
+            >删除</el-button
+          >
           <apply-after
             v-show="scope.row.instanceId"
             :row="scope.row"
@@ -111,15 +179,15 @@
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page="queryParams.pageNum"
+      :limit="queryParams.pageSize"
       @pagination="getList"
     />
 
     <!-- 添加或修改示例Demo对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="申请编号" prop="applyNum">
           <el-input v-model="form.applyNum" placeholder="请输入申请编号" />
@@ -131,17 +199,28 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            placeholder="请输入内容"
+          />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
+      <template v-slot:footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
     </el-dialog>
 
     <!--选择会签参与人对话框-->
-    <el-dialog title="选择调度会会签参与人" :visible.sync="showSelectUser" width="400px" append-to-body>
+    <el-dialog
+      title="选择调度会会签参与人"
+      :visible="showSelectUser"
+      width="400px"
+      append-to-body
+    >
       <el-form ref="selectUserForm" :rules="selectUserRules" label-width="80px">
         <el-form-item label="参与人">
           <el-select v-model="userNames" multiple placeholder="请选择">
@@ -155,23 +234,36 @@
           </el-select>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="handleApply">确 定</el-button>
-        <el-button @click="userNames=[];showSelectUser=false">取 消</el-button>
-      </div>
+      <template v-slot:footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="handleApply">确 定</el-button>
+          <el-button
+            @click="
+              userNames = [];
+              showSelectUser = false;
+            "
+            >取 消</el-button
+          >
+        </div>
+      </template>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { listDemo, getDemo, delDemo, addDemo, updateDemo, exportDemo } from "@/api/example/demo";
+import {
+  listDemo,
+  getDemo,
+  delDemo,
+  addDemo,
+  updateDemo,
+  exportDemo,
+} from "@/api/example/demo";
 import ApplyBefore from "@/components/Activiti/ApplyBefore/index";
 import ApplyAfter from "@/components/Activiti/ApplyAfter/index";
 import { listUser } from "@/api/system/user";
-import request from '@/utils/request'
-
+import request from "@/utils/request";
 export default {
-  name: "Demo",
   components: {
     ApplyBefore,
     ApplyAfter,
@@ -213,20 +305,20 @@ export default {
       // 表单校验
       rules: {
         applyNum: [
-          { required: true, message: "申请编号不能为空", trigger: "blur" }
+          { required: true, message: "申请编号不能为空", trigger: "blur" },
         ],
         highVoltage: [
-          { required: true, message: "是否高压停电不能为空", trigger: "blur" }
+          { required: true, message: "是否高压停电不能为空", trigger: "blur" },
         ],
       },
-      requestMapping: '/example/demo',
+      requestMapping: "/example/demo",
 
       selectedRow: {},
       selectUserForm: {},
       showSelectUser: false,
       selectUserRules: {
         userOptions: [
-          { required: true, message: '参与人不能为空', trigger: 'blur' },
+          { required: true, message: "参与人不能为空", trigger: "blur" },
         ],
       },
       userOptions: [],
@@ -240,12 +332,13 @@ export default {
     /** 查询示例Demo列表 */
     getList() {
       this.loading = true;
-      listDemo(this.queryParams).then(response => {
-        this.demoList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      }).then(() => {
-      });
+      listDemo(this.queryParams)
+        .then((response) => {
+          this.demoList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        })
+        .then(() => {});
     },
     // 取消按钮
     cancel() {
@@ -268,7 +361,7 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        remark: null
+        remark: null,
       };
       this.resetForm("form");
     },
@@ -284,9 +377,9 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -297,8 +390,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getDemo(id).then(response => {
+      const id = row.id || this.ids;
+      getDemo(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改示例Demo";
@@ -306,16 +399,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateDemo(this.form).then(response => {
+            updateDemo(this.form).then((response) => {
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addDemo(this.form).then(response => {
+            addDemo(this.form).then((response) => {
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -327,33 +420,41 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$confirm('是否确认删除示例Demo编号为"' + ids + '"的数据项?', "警告", {
+      this.$confirm(
+        '是否确认删除示例Demo编号为"' + ids + '"的数据项?',
+        "警告",
+        {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+          type: "warning",
+        }
+      )
+        .then(function () {
           return delDemo(ids);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.msgSuccess("删除成功");
-        })
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有示例Demo数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm("是否确认导出所有示例Demo数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
           return exportDemo(queryParams);
-        }).then(response => {
-          this.download(response.msg);
         })
+        .then((response) => {
+          this.download(response.msg);
+        });
     },
     handleApply: function () {
       if (this.userNames.length === 0) {
-        this.msgError('请先选择会签参与人');
+        this.msgError("请先选择会签参与人");
         return;
       }
       const selectedRow = this.selectedRow;
@@ -362,19 +463,23 @@ export default {
       this.$confirm('是否提交ID为"' + selectedRow.id + '"的申请单据?', "警告", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
-      }).then(function() {
-        return request({
-          url: requestMapping + '/submitApply/' + selectedRow.id,
-          method: 'post',
-          params: { "variablesStr": { "gytd": selectedRow.highVoltage, "users": userNames } },
-        });
-      }).then(() => {
-        this.getList();
-        this.msgSuccess("申请成功");
-        this.userNames = [];
-        this.showSelectUser = false;
+        type: "warning",
       })
+        .then(function () {
+          return request({
+            url: requestMapping + "/submitApply/" + selectedRow.id,
+            method: "post",
+            params: {
+              variablesStr: { gytd: selectedRow.highVoltage, users: userNames },
+            },
+          });
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("申请成功");
+          this.userNames = [];
+          this.showSelectUser = false;
+        });
     },
 
     handleApplyView(row) {
@@ -385,12 +490,10 @@ export default {
 
     /** 查询用户列表 */
     getUserList() {
-      listUser().then(response => {
-          this.userOptions = response.rows;
-        }
-      );
+      listUser().then((response) => {
+        this.userOptions = response.rows;
+      });
     },
-
-  }
+  },
 };
 </script>

+ 152 - 70
src/views/leave/leave/index.vue

@@ -1,8 +1,19 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="请假类型" prop="type">
-        <el-select v-model="queryParams.type" placeholder="请选择请假类型" clearable size="small">
+        <el-select
+          v-model="queryParams.type"
+          placeholder="请选择请假类型"
+          clearable
+          size="small"
+        >
           <el-option
             v-for="dict in typeOptions"
             :key="dict.dictValue"
@@ -17,7 +28,7 @@
           placeholder="请输入标题"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="实例ID" prop="instanceId">
@@ -26,12 +37,20 @@
           placeholder="请输入流程实例ID"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
+          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="cyan"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -43,38 +62,76 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['leave:leave:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
-	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="leaveList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="leaveList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="id" width="40" />
-      <el-table-column label="请假类型" align="center" prop="type" :formatter="typeFormat" width="75" />
+      <el-table-column
+        label="请假类型"
+        align="center"
+        prop="type"
+        :formatter="typeFormat"
+        width="75"
+      />
       <el-table-column label="标题" align="center" prop="title" width="140" />
       <el-table-column label="原因" align="center" prop="reason" width="120" />
-      <el-table-column label="开始时间" align="center" prop="leaveStartTime" width="120">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.leaveStartTime, '{y}-{m}-{d}') }}</span>
+      <el-table-column
+        label="开始时间"
+        align="center"
+        prop="leaveStartTime"
+        width="120"
+      >
+        <template v-slot:scope>
+          <span>{{ parseTime(scope.row.leaveStartTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="结束时间" align="center" prop="leaveEndTime" width="120">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.leaveEndTime, '{y}-{m}-{d}') }}</span>
+      <el-table-column
+        label="结束时间"
+        align="center"
+        prop="leaveEndTime"
+        width="120"
+      >
+        <template v-slot:scope>
+          <span>{{ parseTime(scope.row.leaveEndTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
       <!--<el-table-column label="请假时长" align="center" prop="totalTime" />-->
       <el-table-column label="流程实例ID" align="center" prop="instanceId" />
       <el-table-column label="申请人" align="center" prop="applyUserName" />
-      <el-table-column label="申请时间" align="center" prop="applyTime" width="120">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.applyTime, '{y}-{m}-{d}') }}</span>
+      <el-table-column
+        label="申请时间"
+        align="center"
+        prop="applyTime"
+        width="120"
+      >
+        <template v-slot:scope>
+          <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="当前任务名称" align="center" prop="taskName" width="150" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
+      <el-table-column
+        label="当前任务名称"
+        align="center"
+        prop="taskName"
+        width="150"
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template v-slot:scope>
           <apply-before
             v-show="!scope.row.instanceId"
             :row="scope.row"
@@ -95,15 +152,15 @@
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page="queryParams.pageNum"
+      :limit="queryParams.pageSize"
       @pagination="getList"
     />
 
     <!-- 添加或修改请假对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="请假类型" prop="type">
           <el-select v-model="form.type" placeholder="请选择请假类型">
@@ -119,41 +176,66 @@
           <el-input v-model="form.title" placeholder="请输入标题" />
         </el-form-item>
         <el-form-item label="原因" prop="reason">
-          <el-input v-model="form.reason" type="textarea" placeholder="请输入内容" />
+          <el-input
+            v-model="form.reason"
+            type="textarea"
+            placeholder="请输入内容"
+          />
         </el-form-item>
         <el-form-item label="开始时间" prop="leaveStartTime">
-          <el-date-picker clearable size="small" style="width: 200px"
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
             v-model="form.leaveStartTime"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择开始时间">
+            placeholder="选择开始时间"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item label="结束时间" prop="leaveEndTime">
-          <el-date-picker clearable size="small" style="width: 200px"
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
             v-model="form.leaveEndTime"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择结束时间">
+            placeholder="选择结束时间"
+          >
           </el-date-picker>
         </el-form-item>
         <!--<el-form-item label="请假时长" prop="totalTime">
           <el-input v-model="form.totalTime" readonly />
         </el-form-item>-->
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            placeholder="请输入内容"
+          />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
+      <template v-slot:footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { listLeave, getLeave, delLeave, addLeave, updateLeave, exportLeave } from "@/api/leave/leave";
+import {
+  listLeave,
+  getLeave,
+  delLeave,
+  addLeave,
+  updateLeave,
+  exportLeave,
+} from "@/api/leave/leave";
 import ApplyBefore from "@/components/Activiti/ApplyBefore/index";
 import ApplyAfter from "@/components/Activiti/ApplyAfter/index";
 
@@ -205,12 +287,8 @@ export default {
         type: [
           { required: true, message: "请假类型不能为空", trigger: "blur" },
         ],
-        title: [
-          { required: true, message: "标题不能为空", trigger: "blur" },
-        ],
-        reason: [
-          { required: true, message: "原因不能为空", trigger: "blur" },
-        ],
+        title: [{ required: true, message: "标题不能为空", trigger: "blur" }],
+        reason: [{ required: true, message: "原因不能为空", trigger: "blur" }],
         leaveStartTime: [
           { required: true, message: "开始时间不能为空", trigger: "blur" },
         ],
@@ -218,12 +296,12 @@ export default {
           { required: true, message: "结束时间不能为空", trigger: "blur" },
         ],
       },
-      requestMapping: '/leave/leave',
+      requestMapping: "/leave/leave",
     };
   },
   created() {
     this.getList();
-    this.getDicts("biz_leave_type").then(response => {
+    this.getDicts("biz_leave_type").then((response) => {
       this.typeOptions = response.data;
     });
   },
@@ -231,7 +309,7 @@ export default {
     /** 查询请假列表 */
     getList() {
       this.loading = true;
-      listLeave(this.queryParams).then(response => {
+      listLeave(this.queryParams).then((response) => {
         this.leaveList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -268,7 +346,7 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        remark: null
+        remark: null,
       };
       this.resetForm("form");
     },
@@ -284,9 +362,9 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -297,8 +375,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getLeave(id).then(response => {
+      const id = row.id || this.ids;
+      getLeave(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改请假";
@@ -306,16 +384,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateLeave(this.form).then(response => {
+            updateLeave(this.form).then((response) => {
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addLeave(this.form).then(response => {
+            addLeave(this.form).then((response) => {
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -328,29 +406,33 @@ export default {
     handleDelete(row) {
       const ids = row.id || this.ids;
       this.$confirm('是否确认删除请假编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
           return delLeave(ids);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.msgSuccess("删除成功");
-        })
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有请假数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm("是否确认导出所有请假数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
           return exportLeave(queryParams);
-        }).then(response => {
-          this.download(response.msg);
         })
-    }
-  }
+        .then((response) => {
+          this.download(response.msg);
+        });
+    },
+  },
 };
 </script>

+ 124 - 99
src/views/leave/leave/leaveForm.vue

@@ -1,10 +1,10 @@
 <template>
   <div>
     <!--查看和审批对话框-->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-form-item label="请假类型" prop="type">
-          <el-select v-model="form.type" :disabled="taskName!=='调整申请'">
+          <el-select v-model="form.type" :disabled="taskName !== '调整申请'">
             <el-option
               v-for="dict in typeOptions"
               :key="dict.dictValue"
@@ -14,140 +14,165 @@
           </el-select>
         </el-form-item>
         <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" :readonly="taskName!=='调整申请'" />
+          <el-input v-model="form.title" :readonly="taskName !== '调整申请'" />
         </el-form-item>
         <el-form-item label="原因" prop="reason">
-          <el-input v-model="form.reason" type="textarea" :readonly="taskName!=='调整申请'" />
+          <el-input
+            v-model="form.reason"
+            type="textarea"
+            :readonly="taskName !== '调整申请'"
+          />
         </el-form-item>
         <el-form-item label="开始时间" prop="leaveStartTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.leaveStartTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :readonly="taskName!=='调整申请'">
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.leaveStartTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :readonly="taskName !== '调整申请'"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item label="结束时间" prop="leaveEndTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.leaveEndTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :readonly="taskName!=='调整申请'">
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.leaveEndTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :readonly="taskName !== '调整申请'"
+          >
           </el-date-picker>
         </el-form-item>
         <!--<el-form-item label="请假时长" prop="totalTime">
           <el-input v-model="form.totalTime" readonly />
         </el-form-item>-->
-        <el-form-item label="实际开始时间" prop="realityStartTime" v-if="taskName==='销假' || type !== 'todo'">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.realityStartTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          placeholder="选择实际开始时间"
-                          :readonly="taskName!=='销假'">
+        <el-form-item
+          label="实际开始时间"
+          prop="realityStartTime"
+          v-if="taskName === '销假' || type !== 'todo'"
+        >
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.realityStartTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择实际开始时间"
+            :readonly="taskName !== '销假'"
+          >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="实际结束时间" prop="realityEndTime" v-if="taskName==='销假' || type !== 'todo'">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.realityEndTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          placeholder="选择实际结束时间"
-                          :readonly="taskName!=='销假'">
+        <el-form-item
+          label="实际结束时间"
+          prop="realityEndTime"
+          v-if="taskName === '销假' || type !== 'todo'"
+        >
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.realityEndTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择实际结束时间"
+            :readonly="taskName !== '销假'"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item label="申请人" prop="applyUserName">
           <el-input v-model="form.applyUserName" readonly />
         </el-form-item>
         <el-form-item label="申请时间" prop="applyTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.applyTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          readonly>
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="form.applyTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            readonly
+          >
           </el-date-picker>
         </el-form-item>
         <!--<el-form-item label="流程实例ID" prop="instanceId">
           <el-input v-model="form.instanceId" readonly />
         </el-form-item>-->
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" :readonly="taskName!=='调整申请'" />
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            :readonly="taskName !== '调整申请'"
+          />
         </el-form-item>
       </el-form>
-      <view-verify
-        :open.sync="open"
-        :row="row"
-        :taskId="taskId"
-        :type="type"
-      />
+      <view-verify :open="open" :row="row" :taskId="taskId" :type="type" />
     </el-dialog>
   </div>
 </template>
 
 <script>
-  import ViewVerify from "@/components/Activiti/ViewVerify/index";
+import ViewVerify from "@/components/Activiti/ViewVerify/index";
 
-  export default {
-    name: "LeaveForm",
-    components: {
-      ViewVerify,
+export default {
+  name: "LeaveForm",
+  components: {
+    ViewVerify,
+  },
+  props: {
+    row: {
+      type: Object,
     },
-    props: {
-      row: {
-        type: Object,
-      },
-      taskId: {
-        type: String,
-      },
-      taskName: {
-        type: String,
-      },
-      type: {
-        type: String,
-        default: 'none',
-      },
+    taskId: {
+      type: String,
     },
-    data() {
-      return {
-        title: '查看请假表单',
-        form: this.row,
-        open: false,
-        // 请假类型字典
-        typeOptions: [],
-        // 表单校验
-        rules: {
-          type: [
-            { required: true, message: "请假类型不能为空", trigger: "blur" },
-          ],
-          title: [
-            { required: true, message: "标题不能为空", trigger: "blur" },
-          ],
-          reason: [
-            { required: true, message: "原因不能为空", trigger: "blur" },
-          ],
-          leaveStartTime: [
-            { required: true, message: "开始时间不能为空", trigger: "blur" },
-          ],
-          leaveEndTime: [
-            { required: true, message: "结束时间不能为空", trigger: "blur" },
-          ],
-          realityStartTime: [
-            { required: true, message: "实际开始时间不能为空", trigger: "blur" },
-          ],
-          realityEndTime: [
-            { required: true, message: "实际结束时间不能为空", trigger: "blur" },
-          ],
-        },
-      }
+    taskName: {
+      type: String,
     },
-    created() {
-      this.getDicts("biz_leave_type").then(response => {
-        this.typeOptions = response.data;
-      });
+    type: {
+      type: String,
+      default: "none",
     },
-  }
+  },
+  data() {
+    return {
+      title: "查看请假表单",
+      form: this.row,
+      open: false,
+      // 请假类型字典
+      typeOptions: [],
+      // 表单校验
+      rules: {
+        type: [
+          { required: true, message: "请假类型不能为空", trigger: "blur" },
+        ],
+        title: [{ required: true, message: "标题不能为空", trigger: "blur" }],
+        reason: [{ required: true, message: "原因不能为空", trigger: "blur" }],
+        leaveStartTime: [
+          { required: true, message: "开始时间不能为空", trigger: "blur" },
+        ],
+        leaveEndTime: [
+          { required: true, message: "结束时间不能为空", trigger: "blur" },
+        ],
+        realityStartTime: [
+          { required: true, message: "实际开始时间不能为空", trigger: "blur" },
+        ],
+        realityEndTime: [
+          { required: true, message: "实际结束时间不能为空", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  created() {
+    this.getDicts("biz_leave_type").then((response) => {
+      this.typeOptions = response.data;
+    });
+  },
+};
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>