Parcourir la source

组织机构管理

OnePsycho il y a 5 ans
Parent
commit
b0c0c4e78e
7 fichiers modifiés avec 172 ajouts et 363 suppressions
  1. 6 17
      src/api/axiosFun.js
  2. 6 26
      src/api/basisMG.js
  3. 22 21
      src/components/Pagination.vue
  4. 31 83
      src/components/leftnav.vue
  5. 1 1
      src/utils/util.js
  6. 105 215
      src/views/goods/Goods.vue
  7. 1 0
      src/views/login.vue

+ 6 - 17
src/api/axiosFun.js

@@ -15,25 +15,14 @@ const loginreq = (method, url, params) => {
 const req = (method, url, params) => {
     return axios({
         method: method,
-        url: 'https://onepsycho.com/' + url,
+        url: HOST + url,
         headers: {
-            'Content-Type': 'application/x-www-form-urlencoded'
+            'Authorization': 'Bearer ' + localStorage.getItem('token')
+        },
+        data: {
+            method:url,
+            params:params
         },
-        data: params,
-        traditional: true,
-        transformRequest: [
-            function(data) {
-                let ret = ''
-                for (let it in data) {
-                    ret +=
-                        encodeURIComponent(it) +
-                        '=' +
-                        encodeURIComponent(data[it]) +
-                        '&'
-                }
-                return ret
-            }
-        ]
     }).then(res => res.data);
 };
 

+ 6 - 26
src/api/basisMG.js

@@ -1,32 +1,12 @@
-import axios from 'axios';
+// import axios from 'axios';
 import { req } from './axiosFun';
 
 /**
- * 商品管理
+ * 组织机构管理
  **/
-// 商品管理-获取商品管理列表
-export const GoodsList = (params) => { return req("post", "/api/Goods/list", params) };
-// 商品管理-保存商品管理
-export const GoodsSave = (params) => { return req("post", "/api/Goods/save", params) };
-// 商品管理-删除商品管理
-export const GoodsDelete = (params) => { return axios.delete("/api/Goods/delete?ids=" + params + "&token=" + localStorage.getItem('logintoken')).then(res => res.data) };
+// 组织机构-获取组织机构列表
+export const getOrgList = (params) => { return req("post", "/api/Organization/list", params) };
 
-/**
- * 机器信息管理 
- **/
-// 机器信息管理-获取机器信息管理列表
-export const MachineList = (params) => { return req("post", "/api/Machine/list", params) };
-// 机器信息管理-保存机器信息管理
-export const MachineSave = (params) => { return req("post", "/api/Machine/save", params) };
-// 机器信息管理-删除机器信息管理
-export const MachineDelete = (params) => { return axios.delete("/api/Machine/delete?ids=" + params + "&token=" + localStorage.getItem('logintoken')).then(res => res.data) };
+// 组织机构-修改组织机构数据
+export const updateOrg = (params) => { return req("post", "/api/Organization/update", params) };
 
-/**
- * 货道信息管理
- **/
-// 货道信息管理-获取获取货道信息管理列表
-export const MachineAisleList = (params) => { return req("post", "/api/MachineAisle/list", params) };
-// 货道信息管理-删除货道信息管理
-export const MachineAisleDelete = (params) => { return axios.delete("/api/MachineAisle/delete?ids=" + params + "&token=" + localStorage.getItem('logintoken')).then(res => res.data) };
-// 货道信息管理-保存货道信息管理
-export const MachineAisleRsave = (params) => { return req("post", "/api/MachineAisle/save", params) };

+ 22 - 21
src/components/Pagination.vue

@@ -2,43 +2,44 @@
 * 分页组件
 */ 
 <template>
-  <el-pagination class="page-box" @size-change="handleSizeChange" @current-change="handleCurrentChange" background :current-page="childMsg.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="childMsg.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="childMsg.total">
-  </el-pagination>
+  <el-pagination
+    class="page-box"
+    @size-change="handleSizeChange"
+    @current-change="handleCurrentChange"
+    background
+    :current-page="childMsg.currentPage"
+    :page-sizes="[10, 20, 30, 40]"
+    :page-size="childMsg.pageSize"
+    layout="total, sizes, prev, pager, next, jumper"
+    :total="childMsg.total"
+  ></el-pagination>
 </template>
 <script>
 export default {
-  name: 'Pagination',
-  props: ['childMsg'],
+  name: "Pagination",
+  props: ["childMsg"],
   data() {
     return {
       pageparm: {
         currentPage: this.childMsg.currentPage,
         pageSize: this.childMsg.pageSize
       }
-    }
+    };
+  },
+  created() {
+    console.log(this.childMsg)
   },
-  created() {},
   methods: {
     handleSizeChange(val) {
-      /**
-       * 子传父
-       * 参数1 父元素方法
-       * 参数2 数据
-       */
-      this.pageparm.pageSize = 40
-      this.$emit('callFather', this.pageparm)
+      this.pageparm.pageSize = val;
+      this.$emit("callFather", this.pageparm);
     },
     handleCurrentChange(val) {
-      /**
-       * 子传父
-       * 参数1 父元素方法
-       * 参数2 数据
-       */
-      this.pageparm.currentPage = val
-      this.$emit('callFather', this.pageparm)
+      this.pageparm.currentPage = val;
+      this.$emit("callFather", this.pageparm);
     }
   }
-}
+};
 </script>
 
 <style>

+ 31 - 83
src/components/leftnav.vue

@@ -2,9 +2,20 @@
 * 左边菜单
 */ 
 <template>
-  <el-menu default-active="2" :collapse="collapsed" collapse-transition router :default-active="$route.path" unique-opened class="el-menu-vertical-demo" background-color="#334157" text-color="#fff" active-text-color="#ffd04b">
+  <el-menu
+    default-active="2"
+    :collapse="collapsed"
+    collapse-transition
+    router
+    :default-active="$route.path"
+    unique-opened
+    class="el-menu-vertical-demo"
+    background-color="#334157"
+    text-color="#fff"
+    active-text-color="#ffd04b"
+  >
     <div class="logobox">
-      <img class="logoimg" src="../assets/img/logo.png" alt="">
+      <img class="logoimg" src="../assets/img/logo.png" alt />
     </div>
     <el-submenu v-for="menu in allmenu" :key="menu.menuid" :index="menu.menuname">
       <template slot="title">
@@ -21,14 +32,14 @@
   </el-menu>
 </template>
 <script>
-import { menu } from '../api/userMG'
+import { menu } from "../api/userMG";
 export default {
-  name: 'leftnav',
+  name: "leftnav",
   data() {
     return {
       collapsed: false,
       allmenu: []
-    }
+    };
   },
   // 创建完毕状态(里面是操作)
   created() {
@@ -38,95 +49,32 @@ export default {
       data: [
         {
           menuid: 33,
-          icon: 'li-icon-dingdanguanli',
-          menuname: '数据管理',
+          icon: "li-icon-dingdanguanli",
+          menuname: "后台管理",
           hasThird: null,
           url: null,
           menus: [
             {
               menuid: 34,
-              icon: 'icon-order-manage',
-              menuname: '数据列表',
-              hasThird: 'N',
-              url: 'pay/Order',
-              menus: null
-            },
-            {
-              menuid: 35,
-              icon: 'icon-order-manage',
-              menuname: '新增数据',
-              hasThird: 'N',
-              url: 'pay/Config',
+              icon: "icon-order-manage",
+              menuname: "组织机构管理",
+              hasThird: "N",
+              url: "goods/Goods",
               menus: null
             }
           ]
-        },
-        {
-          menuid: 71,
-          icon: 'li-icon-xitongguanli',
-          menuname: '系统管理',
-          hasThird: null,
-          url: null,
-          menus: [
-            {
-              menuid: 72,
-              icon: 'icon-cus-manage',
-              menuname: '用户管理',
-              hasThird: 'N',
-              url: 'system/user',
-              menus: null
-            },
-            {
-              menuid: 174,
-              icon: 'icon-cms-manage',
-              menuname: '调用记录',
-              hasThird: 'N',
-              url: 'system/Module',
-              menus: null
-            },
-            {
-              menuid: 73,
-              icon: 'icon-news-manage',
-              menuname: '福图识别',
-              hasThird: 'N',
-              url: 'system/Role',
-              menus: null
-            },
-            {
-              menuid: 74,
-              icon: 'icon-cs-manage',
-              menuname: '工具菜单',
-              hasThird: 'N',
-              url: 'system/Dept',
-              menus: null
-            }
-           
-          ]
-        },
+        }
       ],
-      msg: 'success'
-    }
-          this.allmenu = res.data
-    
-    // menu(localStorage.getItem('logintoken'))
-    //   .then(res => {
-    //     console.log(JSON.stringify(res))
-    //     if (res.success) {
-    //       this.allmenu = res.data
-    //     } else {
-    //       this.$message.error(res.msg)
-    //       return false
-    //     }
-    //   })
-    //   .catch(err => {
-    //     this.$message.error('菜单加载失败,请稍后再试!')
-    //   })
+      msg: "success"
+    };
+    this.allmenu = res.data;
+
     // 监听
-    this.$root.Bus.$on('toggle', value => {
-      this.collapsed = !value
-    })
+    this.$root.Bus.$on("toggle", value => {
+      this.collapsed = !value;
+    });
   }
-}
+};
 </script>
 <style>
 .el-menu-vertical-demo:not(.el-menu--collapse) {

+ 1 - 1
src/utils/util.js

@@ -3,7 +3,7 @@
  * @param {*} timestamp  时间戳
  */
 const timestampToTime = (timestamp) => {
-    let date = new Date(timestamp) //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+    let date = new Date(timestamp * 1000) //时间戳为10位需*1000,时间戳为13位的话不需乘1000
     let Y = date.getFullYear() + '-'
     let M =
         (date.getMonth() + 1 < 10 ?

+ 105 - 215
src/views/goods/Goods.vue

@@ -1,20 +1,20 @@
 /**
- * 基础菜单 商品管理
+ * 组织机构管理
  */
 <template>
   <div>
     <!-- 面包屑导航 -->
     <el-breadcrumb separator-class="el-icon-arrow-right">
       <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
-      <el-breadcrumb-item>商品管理</el-breadcrumb-item>
+      <el-breadcrumb-item>组织机构管理</el-breadcrumb-item>
     </el-breadcrumb>
     <!-- 搜索筛选 -->
-    <el-form :inline="true" :model="formInline" class="user-search">
+    <el-form :inline="true" :model="defaultParams" class="user-search">
       <el-form-item label="搜索:">
-        <el-input size="small" v-model="formInline.deptName" placeholder="输入部门名称"></el-input>
+        <el-input size="small" v-model="defaultParams.data.name" placeholder="输入组织机构名称"></el-input>
       </el-form-item>
-      <el-form-item label="">
-        <el-input size="small" v-model="formInline.deptNo" placeholder="输入部门代码"></el-input>
+      <el-form-item label>
+        <el-input size="small" v-model="defaultParams.data.code" placeholder="输入组织机构代码"></el-input>
       </el-form-item>
       <el-form-item>
         <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
@@ -22,19 +22,32 @@
       </el-form-item>
     </el-form>
     <!--列表-->
-    <el-table size="small" :data="listData" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" style="width: 100%;">
-      <el-table-column align="center" type="selection" width="60">
-      </el-table-column>
-      <el-table-column sortable prop="deptName" label="部门名称" width="300">
-      </el-table-column>
-      <el-table-column sortable prop="deptNo" label="部门代码" width="300">
+    <el-table
+      size="small"
+      :data="listData"
+      highlight-current-row
+      v-loading="loading"
+      border
+      element-loading-text="拼命加载中"
+      style="width: 100%;"
+    >
+      <el-table-column align="center" type="selection" width="60"></el-table-column>
+      <el-table-column prop="name" label="组织机构名称" width="300"></el-table-column>
+      <el-table-column prop="code" label="组织机构代码" width="300"></el-table-column>
+      <el-table-column sortable prop="editTime" label="创建时间" width="300">
+        <template slot-scope="scope">
+          <div>{{scope.row.createTime|timestampToTime}}</div>
+        </template>
       </el-table-column>
-      <el-table-column sortable prop="editTime" label="修改时间" width="300">
+      <el-table-column prop="type" label="类型" width="100">
         <template slot-scope="scope">
-          <div>{{scope.row.editTime|timestampToTime}}</div>
+          <div>{{scope.row.type === 1 ? '企业' : '个人'}}</div>
         </template>
       </el-table-column>
-      <el-table-column sortable prop="editUser" label="修改人" width="300">
+      <el-table-column prop="status" label="状态" width="100">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">{{scope.row.status === 1 ? '正常' : '停用'}}</el-tag>
+        </template>
       </el-table-column>
       <el-table-column align="center" label="操作" min-width="300">
         <template slot-scope="scope">
@@ -47,57 +60,69 @@
     <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
     <!-- 编辑界面 -->
     <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
-      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
-        <el-form-item label="部门名称" prop="deptName">
-          <el-input size="small" v-model="editForm.deptName" auto-complete="off" placeholder="请输入部门名称"></el-input>
+      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm" label-position="top">
+        <el-form-item label="组织机构名称" prop="name">
+          <el-input size="small" v-model="editForm.name" auto-complete="off" placeholder="请输入组织机构名称"></el-input>
+        </el-form-item>
+        <el-form-item label="组织机构代码" prop="code">
+          <el-input size="small" v-model="editForm.code" auto-complete="off" placeholder="请输入组织机构代码" disabled></el-input>
         </el-form-item>
-        <el-form-item label="部门代码" prop="deptNo">
-          <el-input size="small" v-model="editForm.deptNo" auto-complete="off" placeholder="请输入部门代码"></el-input>
+        <el-form-item label="当前状态" prop="status">
+          <el-switch v-model="editForm.status" :active-value="1" :inactive-value="0"></el-switch>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" @click="closeDialog">取消</el-button>
-        <el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitForm('editForm')"
+        >保存</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { deptList, deptSave, deptDelete } from '../../api/userMG'
-import Pagination from '../../components/Pagination'
+import { getOrgList , updateOrg } from "../../api/basisMG";
+import { deptList, deptSave, deptDelete } from "../../api/userMG";
+import Pagination from "../../components/Pagination";
 export default {
   data() {
     return {
-      nshow: true, //switch开启
-      fshow: false, //switch关闭
       loading: false, //是显示加载
       editFormVisible: false, //控制编辑页面显示与隐藏
-      title: '添加',
+      title: "添加",
       editForm: {
-        deptId: '',
-        deptName: '',
-        deptNo: '',
-        token: localStorage.getItem('logintoken')
+        id: "",
+        name: "",
+        code: "",
+        status: 0
       },
       // rules表单验证
       rules: {
-        deptName: [
-          { required: true, message: '请输入部门名称', trigger: 'blur' }
+        name: [
+          { required: true, message: "请输入组织机构名称", trigger: "blur" }
         ],
-        deptNo: [{ required: true, message: '请输入部门代码', trigger: 'blur' }]
+        code: [{ required: true, message: "请输入组织机构代码", trigger: "blur" }]
       },
-      formInline: {
-        page: 1,
-        limit: 10,
-        varLable: '',
-        varName: '',
-        token: localStorage.getItem('logintoken')
+      defaultParams: {
+        data: {
+          code: "",
+          name: "",
+          id: ""
+        },
+        page: {
+          pageSize: 10,
+          currPage: 1
+        }
       },
-      // 删除部门
+      // 删除组织机构
       seletedata: {
-        ids: '',
-        token: localStorage.getItem('logintoken')
+        ids: "",
+        token: localStorage.getItem("logintoken")
       },
       userparm: [], //搜索权限
       listData: [], //用户数据
@@ -107,216 +132,81 @@ export default {
         pageSize: 10,
         total: 10
       }
-    }
+    };
   },
   // 注册组件
   components: {
     Pagination
   },
-  /**
-   * 数据发生改变
-   */
-
-  /**
-   * 创建完毕
-   */
   created() {
-    this.getdata(this.formInline)
+    this.getData(this.defaultParams);
   },
-
-  /**
-   * 里面的方法只有被调用才会执行
-   */
   methods: {
     // 获取公司列表
-    getdata(parameter) {
-      this.loading = true
-      // 模拟数据开始
-      let res = {
-        code: 0,
-        msg: null,
-        count: 5,
-        data: [
-          {
-            addUser: null,
-            editUser: null,
-            addTime: 1521062371000,
-            editTime: 1526700200000,
-            deptId: 2,
-            deptName: 'XX分公司',
-            deptNo: '1',
-            parentId: 1
-          },
-          {
-            addUser: null,
-            editUser: null,
-            addTime: 1521063247000,
-            editTime: 1526652291000,
-            deptId: 3,
-            deptName: '上海测试',
-            deptNo: '02',
-            parentId: 1
-          },
-          {
-            addUser: null,
-            editUser: null,
-            addTime: 1526349555000,
-            editTime: 1526349565000,
-            deptId: 12,
-            deptName: '1',
-            deptNo: '11',
-            parentId: 1
-          },
-          {
-            addUser: null,
-            editUser: null,
-            addTime: 1526373178000,
-            editTime: 1526373178000,
-            deptId: 13,
-            deptName: '5',
-            deptNo: '5',
-            parentId: 1
-          },
-          {
-            addUser: null,
-            editUser: null,
-            addTime: 1526453107000,
-            editTime: 1526453107000,
-            deptId: 17,
-            deptName: 'v',
-            deptNo: 'v',
-            parentId: 1
-          }
-        ]
-      }
-      this.loading = false
-      this.listData = res.data
-      this.pageparm.currentPage = this.formInline.page
-      this.pageparm.pageSize = this.formInline.limit
-      this.pageparm.total = res.count
-      // 模拟数据结束
-
-      /***
-       * 调用接口,注释上面模拟数据 取消下面注释
-       */
-      // deptList(parameter)
-      //   .then(res => {
-      //     this.loading = false
-      //     if (res.success == false) {
-      //       this.$message({
-      //         type: 'info',
-      //         message: res.msg
-      //       })
-      //     } else {
-      //       this.listData = res.data
-      //       // 分页赋值
-      //       this.pageparm.currentPage = this.formInline.page
-      //       this.pageparm.pageSize = this.formInline.limit
-      //       this.pageparm.total = res.count
-      //     }
-      //   })
-      //   .catch(err => {
-      //     this.loading = false
-      //     this.$message.error('菜单加载失败,请稍后再试!')
-      //   })
+    getData(param) {
+      this.loading = true;
+      getOrgList(param).then(res => {
+        this.loading = false;
+        this.listData = res.result.data;
+        this.pageparm.currentPage = res.result.page.currPage;
+        this.pageparm.pageSize = res.result.page.pageSize;
+        this.pageparm.total = res.result.page.total;
+      });
     },
     // 分页插件事件
     callFather(parm) {
-      this.formInline.page = parm.currentPage
-      this.formInline.limit = parm.pageSize
-      this.getdata(this.formInline)
+      console.log(parm)
+      this.defaultParams.page.currPage = parm.currentPage;
+      this.defaultParams.page.pageSize = parm.pageSize;
+      this.getData(this.defaultParams);
     },
     // 搜索事件
     search() {
-      this.getdata(this.formInline)
+      this.getData(this.defaultParams);
     },
     //显示编辑界面
     handleEdit: function(index, row) {
-      this.editFormVisible = true
-      if (row != undefined && row != 'undefined') {
-        this.title = '修改'
-        this.editForm.deptId = row.deptId
-        this.editForm.deptName = row.deptName
-        this.editForm.deptNo = row.deptNo
-      } else {
-        this.title = '添加'
-        this.editForm.deptId = ''
-        this.editForm.deptName = ''
-        this.editForm.deptNo = ''
-      }
+      this.editFormVisible = true;
+      this.editForm = row;
+      console.log(row)
     },
     // 编辑、增加页面保存方法
     submitForm(editData) {
       this.$refs[editData].validate(valid => {
         if (valid) {
-          deptSave(this.editForm)
+          updateOrg(this.editForm)
             .then(res => {
-              this.editFormVisible = false
-              this.loading = false
-              if (res.success) {
-                this.getdata(this.formInline)
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
                 this.$message({
-                  type: 'success',
-                  message: '公司保存成功!'
-                })
+                  type: "success",
+                  message: "更新成功"
+                });
               } else {
                 this.$message({
-                  type: 'info',
-                  message: res.msg
-                })
+                  type: "info",
+                  message: res.error.message
+                });
               }
             })
             .catch(err => {
-              this.editFormVisible = false
-              this.loading = false
-              this.$message.error('公司保存失败,请稍后再试!')
-            })
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
         } else {
-          return false
+          return false;
         }
-      })
-    },
-    // 删除公司
-    deleteUser(index, row) {
-      this.$confirm('确定要删除吗?', '信息', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      })
-        .then(() => {
-          deptDelete(row.deptId)
-            .then(res => {
-              if (res.success) {
-                this.$message({
-                  type: 'success',
-                  message: '公司已删除!'
-                })
-                this.getdata(this.formInline)
-              } else {
-                this.$message({
-                  type: 'info',
-                  message: res.msg
-                })
-              }
-            })
-            .catch(err => {
-              this.loading = false
-              this.$message.error('公司删除失败,请稍后再试!')
-            })
-        })
-        .catch(() => {
-          this.$message({
-            type: 'info',
-            message: '已取消删除'
-          })
-        })
+      });
     },
     // 关闭编辑、增加弹出框
     closeDialog() {
-      this.editFormVisible = false
+      this.editFormVisible = false;
     }
   }
-}
+};
 </script>
 
 <style scoped>

+ 1 - 0
src/views/login.vue

@@ -170,6 +170,7 @@ export default {
             // }, 1000);
             localStorage.setItem('token',res.result.data.jwt.access_token)
             this.$message.error("登录成功!");
+            this.$router.push({ path: "/goods/Goods" });
             this.isLoginLoading = false;
           }
         });