lrf402788946 преди 5 години
родител
ревизия
5b24cf7444
променени са 3 файла, в които са добавени 79 реда и са изтрити 1 реда
  1. 5 0
      src/router/index.js
  2. 73 0
      src/views/director/detail.vue
  3. 1 1
      src/views/director/index.vue

+ 5 - 0
src/router/index.js

@@ -86,6 +86,11 @@ const routes = [
         name: 'director_index',
         component: () => import('@/views/director/index.vue'),
       },
+      {
+        path: '/director/detail',
+        name: 'director_detail',
+        component: () => import('@/views/director/detail.vue'),
+      },
     ],
   },
 ];

+ 73 - 0
src/views/director/detail.vue

@@ -0,0 +1,73 @@
+<template>
+  <div id="detail">
+    <detail-frame title="班主任信息" returns="/director/index">
+      <data-form :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew">
+        <template #options="{item}">
+          <template v-if="item.model === 'gender'">
+            <el-option label="男" value="1"></el-option>
+            <el-option label="女" value="0"></el-option>
+          </template>
+          <template v-if="item.model === 'dept'">
+            <el-option label="信息部" value="1"></el-option>
+            <el-option label="办公室" value="0"></el-option>
+          </template>
+        </template>
+        <template #radios="{item}">
+          <el-radio label="1">是</el-radio>
+          <el-radio label="0">否</el-radio>
+        </template>
+      </data-form>
+    </detail-frame>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@frame/layout/admin/detail-frame';
+import dataForm from '@frame/components/form';
+export default {
+  metaInfo: { title: '班主任信息' },
+  name: 'detail',
+  props: {},
+  components: {
+    detailFrame,
+    dataForm,
+  },
+  data: () => ({
+    fields: [
+      { label: '姓名', required: true, model: 'name' },
+      { label: '所属部门', required: true, model: 'dept', type: 'select' },
+      { label: '性别', required: true, model: 'gender', type: `select` },
+      { label: '电话', required: true, model: 'tel', options: { maxlength: 11, minlength: 11 } },
+      { label: '出生日期', required: true, model: 'birthday', type: 'date' },
+      { label: '年龄', required: true, model: 'age' },
+      { label: '礼仪课教师', required: true, model: 'is_ly', type: 'radio' },
+    ],
+    rules: {
+      name: [{ required: true, message: '请输入姓名' }],
+      dept: [{ required: true, message: '请选择部门' }],
+      gender: [{ required: true, message: '请选择性别' }],
+      tel: [
+        { required: true, message: '请输入电话' },
+        { min: 11, max: 11, message: '请输入11位电话号码', trigger: 'blur' },
+      ],
+      birthday: [{ required: true, message: '请选择出生日期' }],
+      age: [{ required: true, message: '请输入年龄' }],
+      is_ly: [{ required: true, message: '请选择是否是礼仪课教师' }],
+    },
+  }),
+  created() {},
+  computed: {
+    isNew() {
+      return this.$route.query.id ? false : true;
+    },
+  },
+  methods: {
+    async handleSave({ isNew, data }) {
+      console.log(isNew);
+      console.log(data);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 1 - 1
src/views/director/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="index">
-    <list-frame title="班主任管理" @query="search" :filter="filFields">
+    <list-frame title="班主任管理" @query="search" :filter="filFields" @add="$router.push({ path: '/director/detail' })">
       <template #options="{item}">
         <template v-if="item.model"></template>
       </template>