diff --git a/attendance-performance-manager-ui/admin/src/views/job/drawershow.vue b/attendance-performance-manager-ui/admin/src/views/job/drawershow.vue
index 1af393a9342603dded6b96f0eda52883aaa7eff5..c8045278262c9b370bb3e08d7ec91bd97a91adc3 100644
--- a/attendance-performance-manager-ui/admin/src/views/job/drawershow.vue
+++ b/attendance-performance-manager-ui/admin/src/views/job/drawershow.vue
@@ -1,128 +1,172 @@
 <template>
-    <!-- 寮瑰嚭妗嗚〃鍗� -->
-    <el-drawer
-            :title="title"
-            :visible.sync="open"
-            :direction="direction"
-            size="50%">
-        <el-form ref="form" :model="form" :rules="rules" label-width="120px" style="padding:20px">
-            <el-row>
-                <Field v-if="from == 'job'" label="鍒嗙粍" prop="groupId" v-model="form.groupId" 
-                :enumData="dict.group" type="select" placeholder="璇烽€夋嫨鍒嗙粍"/>
+  <!-- 寮瑰嚭妗嗚〃鍗� -->
+  <el-drawer
+    :title="title"
+    :visible.sync="open"
+    :direction="direction"
+    size="50%"
+  >
+    <el-form
+      ref="form"
+      :model="form"
+      :rules="rules"
+      label-width="120px"
+      style="padding:20px"
+    >
+      <el-row>
+        <Field
+          v-if="from == 'job'"
+          label="鍒嗙粍"
+          prop="groupId"
+          v-model="form.groupId"
+          :enumData="dict.group"
+          type="select"
+          placeholder="璇烽€夋嫨鍒嗙粍"
+        />
 
-                <Field label="鍒嗙粍鍚嶇О" prop="groupName" v-model="form.groupName" placeholder="璇疯緭鍏ュ垎缁勫悕绉�" :maxLength="10" v-if="from == 'group'"/>
+        <Field
+          label="鍒嗙粍鍚嶇О"
+          prop="groupName"
+          v-model="form.groupName"
+          placeholder="璇疯緭鍏ュ垎缁勫悕绉�"
+          :maxLength="10"
+          v-if="from == 'group'"
+        />
 
-                <Field label="鑱屼綅缂栫爜" prop="jobCode" :maxLength="10" v-model="form.jobCode" placeholder="璇疯緭鍏ヨ亴浣嶇紪鐮�" v-if="from == 'job'"/>
-                <Field label="鑱屼綅鍚嶇О" prop="jobName" :maxLength="10" v-model="form.jobName" placeholder="璇疯緭鍏ヨ亴浣嶅悕绉�" v-if="from == 'job'" />
+        <Field
+          label="鑱屼綅缂栫爜"
+          prop="jobCode"
+          :maxLength="10"
+          v-model="form.jobCode"
+          placeholder="璇疯緭鍏ヨ亴浣嶇紪鐮�"
+          v-if="from == 'job'"
+        />
+        <Field
+          label="鑱屼綅鍚嶇О"
+          prop="jobName"
+          :maxLength="10"
+          v-model="form.jobName"
+          placeholder="璇疯緭鍏ヨ亴浣嶅悕绉�"
+          v-if="from == 'job'"
+        />
 
-                <Field label="绫诲瀷" disabled prop="type" v-model="form.type" type="select" :enumData="dict.type" placeholder="璇烽€夋嫨绫诲瀷"/>
-                <Field label="澶囨敞" prop="remark" :maxLength="50" v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�"/>
-            </el-row>
-            <form-buttons @submit='submitForm' noCancelBtn />
-        </el-form>
-
-    </el-drawer>
+        <Field
+          label="绫诲瀷"
+          disabled
+          prop="type"
+          v-model="form.type"
+          type="select"
+          :enumData="dict.type"
+          placeholder="璇烽€夋嫨绫诲瀷"
+        />
+        <Field
+          label="澶囨敞"
+          prop="remark"
+          :maxLength="50"
+          v-model="form.remark"
+          type="textarea"
+          placeholder="璇疯緭鍏ュ娉�"
+        />
+      </el-row>
+      <form-buttons @submit="submitForm" noCancelBtn />
+    </el-form>
+  </el-drawer>
 </template>
 
 <script>
-    import form from "@/assets/mixins/formdialog";
-    export default {
-        name: "JobDetail",
-        mixins: [form],
-        components: {
-
-        },
-        created() {
-            this.changePath("job")
-        },
-        data() {
-            return {
-                // 閬僵灞�
-                loading: true,
-                // 寮瑰嚭灞傛爣棰�
-                title: "鑱屼綅淇℃伅",
-                // 鏄惁鏄剧ず寮瑰嚭灞�
-                open: false,
-                direction:"rtl",
-                toString:[
-                ],
-                toDate:[
-                ],
-                // 琛ㄥ崟鏍¢獙
-                rules: {
-                },
-                from:''
-            };
-        },
-
-        methods: {
-            /** 缂栬緫 */
-            edit(from,row) {
-                this.reset()
-                this.query = { id: row.id };
-                this.urls.currUrl ="job/edit";
-                this.getData();
-                this.pageInfo.type="edit"
-                this.from = from
+import form from "@/assets/mixins/formdialog";
+export default {
+  name: "JobDetail",
+  mixins: [form],
+  components: {},
+  created() {
+    this.changePath("job");
+  },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鑱屼綅淇℃伅",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      direction: "rtl",
+      toString: [],
+      toDate: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        groupId: [{ required: true, message: "璇烽€夋嫨鍒嗙粍", trigger: "change" }],
+      },
+      from: "",
+    };
+  },
 
-                this.title = from === 'group'?"淇敼鍒嗙粍淇℃伅":'淇敼鑱屼綅淇℃伅';
-            },
-            /** 鏂板 */
-            add(row) {
-                console.log(row,'娣诲姞')
-                this.from = row
-                this.title = row === 'group'?"鏂板鍒嗙粍淇℃伅":'鏂板鑱屼綅淇℃伅';
-                this.reset()
-                this.urls.currUrl = "job/add";
-                this.getData();
-                this.pageInfo.type="add"
-                
-            },
-            /** 鏌ョ湅*/
-            view(row) {
-                this.reset()
-                this.query = { id: row.id };
-                this.urls.currUrl ="job/view";
-                this.getData();
-                this.pageInfo.type="view"
-                this.title = "鑱屼綅淇℃伅璇︾粏";
-            },
-            /**鍙栨秷鎸夐挳 */
-            cancel() {
-                this.open = false;
-            },
-            /**鑾峰彇鏁版嵁鍚庡脊妗� */
-            afterRender(data) {
+  methods: {
+    /** 缂栬緫 */
+    edit(from, row) {
+      this.reset();
+      this.query = { id: row.id };
+      this.urls.currUrl = "job/edit";
+      this.getData();
+      this.pageInfo.type = "edit";
+      this.from = from;
 
-                // 鍥哄畾鏂板绫诲瀷
-                if(this.from == 'group'){
-                    this.form.type = '1'
-                }else{
-                    this.form.type = '2'
-                }
-                this.open = true;
-            },
-            afterSubmit(data) {
-                this.open = false;
-                this.$emit("ok");
-            },
+      this.title = from === "group" ? "淇敼鍒嗙粍淇℃伅" : "淇敼鑱屼綅淇℃伅";
+    },
+    /** 鏂板 */
+    add(row) {
+      console.log(row, "娣诲姞");
+      this.from = row;
+      this.title = row === "group" ? "鏂板鍒嗙粍淇℃伅" : "鏂板鑱屼綅淇℃伅";
+      this.reset();
+      this.urls.currUrl = "job/add";
+      this.getData();
+      this.pageInfo.type = "add";
+    },
+    /** 鏌ョ湅*/
+    view(row) {
+      this.reset();
+      this.query = { id: row.id };
+      this.urls.currUrl = "job/view";
+      this.getData();
+      this.pageInfo.type = "view";
+      this.title = "鑱屼綅淇℃伅璇︾粏";
+    },
+    /**鍙栨秷鎸夐挳 */
+    cancel() {
+      this.open = false;
+    },
+    /**鑾峰彇鏁版嵁鍚庡脊妗� */
+    afterRender(data) {
+      // 鍥哄畾鏂板绫诲瀷
+      if (this.from == "group") {
+        this.form.type = "1";
+      } else {
+        this.form.type = "2";
+      }
+      this.open = true;
+    },
+    afterSubmit(data) {
+      this.open = false;
+      this.$emit("ok");
+    },
 
-            // 琛ㄥ崟閲嶇疆
-            reset() {
-                this.form = {
-                    groupId : null,
-                    groupName : "",
-                    jobCode : "",
-                    jobName : "",
-                    remark : "",
-                };
-                this.resetForm("form");
-            },
-            resetForm(refName) {
-                if (this.$refs[refName]) {
-                    this.$refs[refName].resetFields();
-                }
-            },
-        },
-    };
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        groupId: null,
+        groupName: "",
+        jobCode: "",
+        jobName: "",
+        remark: "",
+      };
+      this.resetForm("form");
+    },
+    resetForm(refName) {
+      if (this.$refs[refName]) {
+        this.$refs[refName].resetFields();
+      }
+    },
+  },
+};
 </script>