guhongwei 5 anni fa
parent
commit
2766c8aefd

+ 2 - 2
src/views/achievement/index.vue

@@ -37,7 +37,7 @@
                     <span v-else-if="columnName == '知识产权'">
                     <span v-else-if="columnName == '知识产权'">
                       <knowledgeList :list="list" :total="total" @detailBtn="detailBtn"></knowledgeList>
                       <knowledgeList :list="list" :total="total" @detailBtn="detailBtn"></knowledgeList>
                     </span>
                     </span>
-                    <span v-else-if="columnName == '科技支撑'">
+                    <span v-else-if="columnName == '科技合作'">
                       <technologyList :list="list" :total="total" @detailBtn="detailBtn"></technologyList>
                       <technologyList :list="list" :total="total" @detailBtn="detailBtn"></technologyList>
                     </span>
                     </span>
                     <span v-else-if="columnName == '超算联盟'">
                     <span v-else-if="columnName == '超算联盟'">
@@ -68,7 +68,7 @@
                     <span v-else-if="columnName == '知识产权'">
                     <span v-else-if="columnName == '知识产权'">
                       <knowledgeDetail :details="details"></knowledgeDetail>
                       <knowledgeDetail :details="details"></knowledgeDetail>
                     </span>
                     </span>
-                    <span v-else-if="columnName == '科技支撑'">
+                    <span v-else-if="columnName == '科技合作'">
                       <technologyDetail :details="details"></technologyDetail>
                       <technologyDetail :details="details"></technologyDetail>
                     </span>
                     </span>
                     <span v-else-if="columnName == '超算联盟'">
                     <span v-else-if="columnName == '超算联盟'">

+ 6 - 1
src/views/pcenter/index.vue

@@ -78,7 +78,10 @@
                 </el-col>
                 </el-col>
               </span>
               </span>
               <span v-else-if="columnName == '人员管理'">
               <span v-else-if="columnName == '人员管理'">
-                <el-col :span="24" class="infoTop"> <span>|</span><span>人员管理</span> </el-col>
+                <el-col :span="24" class="infoTop" style="margin-bottom:0;"> <span>|</span><span>人员管理</span> </el-col>
+                <el-col :span="24">
+                  <personnelAdmin></personnelAdmin>
+                </el-col>
               </span>
               </span>
               <span v-else-if="columnName == '部门管理'">
               <span v-else-if="columnName == '部门管理'">
                 <el-col :span="24" class="infoTop"> <span>|</span><span>部门管理</span> </el-col>
                 <el-col :span="24" class="infoTop"> <span>|</span><span>部门管理</span> </el-col>
@@ -108,6 +111,7 @@
 import top from '@/layout/common/top.vue';
 import top from '@/layout/common/top.vue';
 import foot from '@/layout/common/foot.vue';
 import foot from '@/layout/common/foot.vue';
 import infoAdmin from './parts/infoAdmin.vue';
 import infoAdmin from './parts/infoAdmin.vue';
+import personnelAdmin from './parts/personnelAdmin.vue';
 import demand from '@/views/pcenter/demand.vue';
 import demand from '@/views/pcenter/demand.vue';
 import pinfo from '@/views/pcenter/pinfo.vue';
 import pinfo from '@/views/pcenter/pinfo.vue';
 import uppasswd from '@/views/pcenter/uppasswd.vue';
 import uppasswd from '@/views/pcenter/uppasswd.vue';
@@ -121,6 +125,7 @@ export default {
     top,
     top,
     foot,
     foot,
     infoAdmin, //信息管理
     infoAdmin, //信息管理
+    personnelAdmin, //人员管理
     pinfo,
     pinfo,
     uppasswd,
     uppasswd,
     demand,
     demand,

+ 1 - 1
src/views/pcenter/parts/infoAdmin.vue

@@ -137,7 +137,7 @@ export default {
         { value: '平台建设', label: '平台建设' },
         { value: '平台建设', label: '平台建设' },
         { value: '项目成果', label: '项目成果' },
         { value: '项目成果', label: '项目成果' },
         { value: '知识产权', label: '知识产权' },
         { value: '知识产权', label: '知识产权' },
-        { value: '科技支撑', label: '科技支撑' },
+        { value: '科技合作', label: '科技合作' },
         { value: '超算联盟', label: '超算联盟' },
         { value: '超算联盟', label: '超算联盟' },
         { value: '国家网格', label: '国家网格' },
         { value: '国家网格', label: '国家网格' },
         { value: '教学中心', label: '教学中心' },
         { value: '教学中心', label: '教学中心' },

+ 192 - 0
src/views/pcenter/parts/personnelAdmin.vue

@@ -0,0 +1,192 @@
+<template>
+  <div id="personnelAdmin">
+    <el-row>
+      <el-col :span="24" class="style">
+        <span v-if="display == 'list'">
+          <el-col :span="24" class="top">
+            <el-button type="primary" size="mini" @click="add">添加</el-button>
+          </el-col>
+          <el-col :span="24" class="list">
+            <el-table :data="list" stripe style="width: 100%" border>
+              <el-table-column prop="name" label="姓名" align="center"> </el-table-column>
+              <el-table-column label="操作" align="center" width="220">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="primary" v-if="scope.row.status == '0'" @click="editBtn(scope.row.id)">编辑</el-button>
+                  <el-button size="mini" type="danger" @click="deleteBtn(scope.row.id)">删除</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <page :total="total" position="right" @query="searchInfo"></page>
+          </el-col>
+        </span>
+        <span v-else>
+          <el-col :span="24" class="top">
+            <el-button type="primary" size="mini" @click="back">返回</el-button>
+          </el-col>
+          <el-col :span="24" class="form">
+            <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
+              <el-form-item label="姓名" prop="name">
+                <el-input v-model="form.name" placeholder="请输入姓名"></el-input>
+              </el-form-item>
+              <el-form-item label="性别" prop="gender">
+                <el-radio-group v-model="form.gender">
+                  <el-radio label="男">男</el-radio>
+                  <el-radio label="女">女</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item label="电话" prop="phone">
+                <el-input v-model="form.phone" placeholder="请输入电话" maxlength="11"></el-input>
+              </el-form-item>
+              <el-form-item label="密码" prop="passwd">
+                <el-input v-model="form.passwd" placeholder="请输入密码" show-password></el-input>
+              </el-form-item>
+              <el-form-item label="家庭住址" prop="address">
+                <el-input v-model="form.address" placeholder="请输入家庭住址"></el-input>
+              </el-form-item>
+              <el-form-item label="出生日期" prop="birthday">
+                <el-date-picker v-model="form.birthday" type="date" placeholder="选择出生日期" value-format="yyyy-MM-dd"> </el-date-picker>
+              </el-form-item>
+              <el-form-item label="身份证号" prop="id_number">
+                <el-input v-model="form.id_number" placeholder="请输入身份证号"></el-input>
+              </el-form-item>
+              <el-form-item label="部门" prop="dept_id">
+                <el-select v-model="form.dept_id" filterable placeholder="请选择部门" @change="selectChild">
+                  <el-option v-for="(item, index) in deptList" :key="index" :label="item.name" :value="item._id"></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="职务" prop="level_id">
+                <el-select v-model="form.level_id" filterable placeholder="请选择职务">
+                  <el-option v-for="(item, index) in levelList" :key="index" :label="item.name" :value="item._id"></el-option>
+                </el-select>
+              </el-form-item>
+              <el-col :span="24" style="text-align:center;">
+                <el-button type="primary" @click="submitForm('form')">保存</el-button>
+                <el-button type="danger" @click="resetForm('form')">取消</el-button>
+              </el-col>
+            </el-form>
+          </el-col>
+        </span>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import page from '@/components/pagination.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: department } = createNamespacedHelpers('department');
+const { mapActions: level } = createNamespacedHelpers('level');
+const { mapActions: registers } = createNamespacedHelpers('registers');
+const { mapActions: staff } = createNamespacedHelpers('staff');
+export default {
+  name: 'personnelAdmin',
+  props: {},
+  components: {
+    page,
+  },
+  data: function() {
+    return {
+      display: 'list',
+      // 列表
+      list: [],
+      total: 0,
+      // 发布
+      form: {},
+      // 规则
+      rules: {
+        name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
+        gender: [{ required: true, message: '请输入性别', trigger: 'blur' }],
+        phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }],
+        passwd: [{ required: true, message: '请输入密码', trigger: 'blur' }],
+        address: [{ required: false, message: '请输入住址', trigger: 'blur' }],
+        birthday: [{ required: false, message: '请输入出生日期', trigger: 'blur' }],
+        id_number: [{ required: false, message: '请输入身份证号', trigger: 'blur' }],
+        dept_id: [{ required: true, message: '请输入部门', trigger: 'blur' }],
+        level_id: [{ required: true, message: '请输入职务', trigger: 'blur' }],
+      },
+      // 部门
+      deptList: [],
+      levelList: [],
+      dept_id: '',
+    };
+  },
+  created() {
+    this.searchInfo();
+  },
+  methods: {
+    ...department({ departmentQuery: 'query', departmentFetch: 'fetch' }),
+    ...level({ levelQuery: 'query', levelFetch: 'fetch' }),
+    ...registers(['create']),
+    async searchInfo() {
+      let res = await this.departmentQuery();
+      if (this.$checkRes(res)) {
+        this.$set(this, `deptList`, res.data);
+      }
+    },
+    // 职务
+    async selectChild(dept_id) {
+      let res = await this.levelQuery(dept_id);
+      if (this.$checkRes(res)) {
+        this.$set(this, `levelList`, res.data);
+      }
+    },
+    // 添加
+    add() {
+      this.display = 'detail';
+    },
+    // 返回
+    back() {
+      this.display = 'list';
+    },
+    // 编辑
+    editBtn(id) {
+      this.display = 'detail';
+    },
+    // 删除
+    deleteBtn(id) {
+      console.log('删除');
+    },
+    // 保存
+    submitForm(formName) {
+      this.$refs[formName].validate(async valid => {
+        if (valid) {
+          let res = await this.create(this.form);
+          if (this.$checkRes(res)) {
+            this.$message({
+              message: '恭喜你,注册成功',
+              type: 'success',
+            });
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    // 取消
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.display = 'list';
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  padding: 0 20px 20px 20px;
+  .top {
+    text-align: right;
+    padding: 10px 0;
+  }
+}
+</style>

+ 1 - 2
src/views/pcenter/pinfo.vue

@@ -28,7 +28,7 @@
           <el-form-item v-if="this.user.type != '3'" label="家庭住址">
           <el-form-item v-if="this.user.type != '3'" label="家庭住址">
             <el-input v-model="form.address"></el-input>
             <el-input v-model="form.address"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item v-if="this.user.type === '0' || this.user.type === '1'" label="部门">
+          <el-form-item v-if="this.user.type === '0' || this.user.type === '1'" label="部门" @change="selectChild">
             <el-select v-model="form.dept_id" filterable placeholder="请选择部门">
             <el-select v-model="form.dept_id" filterable placeholder="请选择部门">
               <el-option v-for="(item, index) in deptList" :key="index" :label="item.name" :value="item._id"></el-option>
               <el-option v-for="(item, index) in deptList" :key="index" :label="item.name" :value="item._id"></el-option>
             </el-select>
             </el-select>
@@ -139,7 +139,6 @@ export default {
     ...login({ logout: 'logout' }),
     ...login({ logout: 'logout' }),
     async search() {
     async search() {
       this.searchInfo();
       this.searchInfo();
-      this.selectChild();
       if (this.user.type === '3') {
       if (this.user.type === '3') {
         const user = await this.fetch(this.user.uid);
         const user = await this.fetch(this.user.uid);
         this.$set(this, `form`, user.data);
         this.$set(this, `form`, user.data);