zhuliu 10 ماه پیش
والد
کامیت
c0e8b93047

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/人员组织.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/企业.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/会员类型.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/审核.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/版本.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/职位.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/账号.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/icons/svg/部门.svg


+ 48 - 21
src/router/index.js

@@ -62,19 +62,31 @@ export const backStageManageRouterItem = [
     name: 'Administrator_organization',
     component: administrator_layout,
     redirect: '/administrator/personnel',
-    meta: { title: '人员组织管理', icon: 'application' },
+    meta: { title: '人员组织管理', icon: '人员组织' },
     children: [
       {
+        path: 'tenant',
+        name: 'Administrator_tenant',
+        component: () => import('@/views/backStageManage/organization/tenant/index.vue'),
+        meta: {title: '企业管理',icon: '企业'},
+      },
+      {
         path: 'personnel',
         name: 'Administrator_personnel',
         component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
-        meta: {title: '人员清单'},
+        meta: {title: '人员清单',icon: '账号'},
       },
       {
-        path: 'personnel2',
-        name: 'Administrator_personnel2',
+        path: 'personnel',
+        name: 'Administrator_personnel',
         component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
-        meta: {title: '人员清单2'},
+        meta: {title: '部门管理',icon: '部门'},
+      },
+      {
+        path: 'personnel',
+        name: 'Administrator_personnel',
+        component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
+        meta: {title: '职位管理',icon: '职位'},
       },
     ]
   },
@@ -86,24 +98,24 @@ export const backStageManageRouterItem = [
     redirect: '/administrator/apply',
     meta: { title: '应用管理', icon: 'application' },
     children: [
-      {
-        path: 'addApply',
-        name: 'Administrator_addApply',
-        component: () => import('@/views/backStageManage/application/apply/components/addApply.vue'),
-        meta: {title: '添加应用功能', icon: 'apply', keepAlive:true},
-        hidden:true
-      },
-      {
-        path: 'apply',
-        name: 'Administrator_apply',
-        component: () => import('@/views/backStageManage/application/apply/index.vue'),
-        meta: { title: '应用功能清单', icon: 'apply' }
-      },
+      // {
+      //   path: 'addApply',
+      //   name: 'Administrator_addApply',
+      //   component: () => import('@/views/backStageManage/application/apply/components/addApply.vue'),
+      //   meta: {title: '添加应用功能', icon: 'apply', keepAlive:true},
+      //   hidden:true
+      // },
+      // {
+      //   path: 'apply',
+      //   name: 'Administrator_apply',
+      //   component: () => import('@/views/backStageManage/application/apply/index.vue'),
+      //   meta: { title: '应用功能清单', icon: 'apply' }
+      // },
       {
         path: 'vision',
         name: 'Administrator_vision',
         component: () => import('@/views/backStageManage/application/vision/index.vue'),
-        meta: { title: '应用版本清单', icon: 'vision' }
+        meta: { title: '应用版本清单', icon: '版本' }
       },
       {
         path: 'addVersion',
@@ -123,13 +135,13 @@ export const backStageManageRouterItem = [
         path: 'vip',
         name: 'Administrator_vip',
         component: () => import('@/views/backStageManage/application/vip/index.vue'),
-        meta: {title: '应用会员清单', icon: 'vip'}
+        meta: {title: '应用会员类型', icon: '会员类型'}
       },
       {
         path: 'addVip',
         name: 'Administrator_addVip',
         component: () => import('@/views/backStageManage/application/vip/components/addVipForm.vue'),
-        meta: {title: '添加应用会员', icon: 'addVip'},
+        meta: {title: '添加应用会员类型', icon: 'addVip',keepAlive:true},
         hidden:true
       },
       {
@@ -141,6 +153,21 @@ export const backStageManageRouterItem = [
       },
     ]
   },
+  {
+    path: '/administrator',
+    name: 'Administrator_examine',
+    component: administrator_layout,
+    redirect: '/administrator/examine',
+    meta: { title: '审核管理', icon: '审核'},
+    children: [
+      {
+        path: 'examine',
+        name: 'Administrator_examine',
+        component: () => import('@/views/backStageManage/examine/examine/index.vue'),
+        meta: {title: '账号审核', icon: '审核'},
+      },
+    ]
+  },
 ]
 export const backStageManage = [
   {

+ 31 - 0
src/utils/common.js

@@ -32,6 +32,37 @@ export default {
       }, delay)
     }
   },
+  //显示表头数据
+  renderHeaderMethods(h, { column }, message) {
+    if(!column.sortable){
+      return column.label
+    }
+    var message = '点击升序'
+    switch (column.order) {
+      case "":
+        message = '点击升序'
+        break;
+      case "ascending":
+        message = '点击降序'
+        break;
+      case 'descending':
+        message = '点击取消排序'
+        break
+    }
+    return [
+      ,
+      h(
+        'el-tooltip',
+        {
+          props: {
+            content: message, // 鼠标悬停时要展示的文字提示
+            placement: 'top' // 悬停内容展示的位置
+          }
+        },
+        [h('span', column.label)] // 图标
+      )
+    ]
+  },
   //查看文件
   getFile(guid) {
     if(!guid){

+ 202 - 0
src/views/backStageManage/examine/examine/components/examine.vue

@@ -0,0 +1,202 @@
+<template>
+  <div class="height_100">
+    <el-container>
+        <el-header>
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+                <el-form-item label="审核类型" prop="examineType">
+                    <el-input v-model="queryParams.examineType" placeholder="请输入审核类型"/>
+                </el-form-item>
+                <el-form-item label="状态" prop="status">
+                    <el-input v-model="queryParams.status" placeholder="请输入状态"/>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" icon="el-icon-search" size="mini" @click="search">搜索</el-button>
+                    <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                </el-form-item>
+            </el-form>
+        </el-header>
+        <el-main class="padding_10">
+            <el-table
+                ref="table"
+                border
+                :data="tableData"
+                row-key="id"
+                style="width: 100%"
+                max-height="calc(100% - 0)"
+                v-loading="loading"
+                @sort-change="sortChange"
+                @selection-change="handleSelectionChange"
+            >
+                <el-table-column  type="selection" width="55"></el-table-column>
+
+                <el-table-column v-for="item in columnList" :render-header="$commonJS.renderHeaderMethods" :key="item.field" :prop="item.field" :label="item.name" :sortable="item.ifSort?'custom':false" :width="item.width || 'auto'"></el-table-column>
+
+                <el-table-column label="操作" align="center" width="180px">
+                    <template slot-scope="scope">
+                        <el-button size="mini" type="primary" @click="examine(scope.row,1)"><i class="el-icon-check"></i>通过</el-button>
+                        <el-button size="mini" type="danger" @click="examine(scope.row,2)"><i class="el-icon-close"></i>不通过</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-main>
+        <el-footer class="pagination">
+            <div class="foot">
+                <div v-if="multipleSelection.length">
+                    已选择{{ multipleSelection.length }}条数据
+                    <el-button size="mini" type="primary" @click="examineAll(1)"><i class="el-icon-check"></i>审核通过</el-button>
+                    <el-button size="mini" type="danger" @click="examineAll(2)"><i class="el-icon-close"></i>审核通过</el-button>
+                </div>
+                <div v-else></div>
+                <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+                    :current-page.sync="queryParams.current" :page-size.sync="queryParams.size"
+                    @current-change="handleCurrentChange" @size-change="changeSize" :total="total">
+                </el-pagination>
+            </div>
+            
+        </el-footer>
+    </el-container>
+  </div>
+</template>
+
+<script>
+const defaultColumn = [
+    {
+        field:'name',
+        name:'姓名',
+        ifSort:true,
+        width:'120px'
+    },
+    {
+        field:'phone',
+        name:'电话',
+        ifSort:true
+    },
+    {
+        field:'email',
+        name:'邮箱',
+        ifSort:true
+    },
+    {
+        field:'userName',
+        name:'账号',
+        ifSort:true
+    },
+    // {
+    //     field:'password',
+    //     name:'密码',
+    //     ifSort:true
+    // },
+    {
+        field:'departmentalPosition',
+        name:'部门职位',
+        ifSort:false,
+        type:"function",
+        useFunction:(data)=>{
+            return `部门:${data.department}<br>职位:${data.position}`
+        }
+    },
+    {
+        field:'enterprise',
+        name:'所属企业',
+        ifSort:false,
+        type:"function",
+        useFunction:(data)=>{
+            return `名称:${data.enterpriseName}<br>地址:${data.enterpriseAddress}<br>类型:${data.enterpriseType}`
+        }
+    },
+    {
+        field:'type',
+        name:'审核类型',
+        ifSort:true,
+        width:'120px'
+    },
+    {
+        field:'status',
+        name:'状态',
+        ifSort:true,
+        width:'120px'
+    },
+    {
+        field:'createTime',
+        name:'创建时间',
+        ifSort:true
+    },
+]
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+        queryParams:{
+            current:1,
+            size:10,
+        },
+        total:0,
+        tableData:[],
+        columnList:defaultColumn,
+        loading:false,
+        multipleSelection:[],
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //查询审核任务列表
+    getList(){},
+    //检索
+    search(){},
+    //重置检索条件
+    resetQuery(){},
+    //切换分页
+    handleCurrentChange(val){
+        this.queryParams.current = val
+        this.getList()
+    },
+    //切换页大小
+    changeSize(value){
+        this.queryParams.size = value
+        this.queryParams.current = 1
+        this.getList()
+    },
+    //排序
+    sortChange({ column, prop, order }){
+        var orderType = {
+            ascending: 0,
+            descending: 1
+        }
+        this.queryParams.orderBy = prop
+        this.queryParams.orderType = orderType[order]
+        this.getList()
+    },
+    //选择
+    handleSelectionChange(val) {
+        this.multipleSelection = val;
+    },
+    //审核
+    examine(row,type){
+        this.submitExamine([row.id],type)
+    },
+    examineAll(type){
+        var ids = this.multipleSelection.map(item=>item.id)
+        this.submitExamine(ids,type)
+    },
+    submitExamine(data,type){
+        var params = {
+            ids:data,
+            type:type
+        }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.foot{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+</style>

+ 44 - 0
src/views/backStageManage/examine/examine/components/view/table.vue

@@ -0,0 +1,44 @@
+<template>
+  <div class="height_100">
+    <el-table
+        ref="table"
+        border
+        :data="tableData"
+        row-key="id"
+        style="width: 100%"
+        max-height="calc(100% - 0)"
+        v-loading="loading"
+        @sort-change="sortChange"
+        @selection-change="handleSelectionChange"
+    >
+        <el-table-column  type="selection" width="55"></el-table-column>
+
+        <el-table-column v-for="item in columnList" :render-header="$commonJS.renderHeaderMethods" :key="item.field" :prop="item.field" :label="item.name" :sortable="item.ifSort?'custom':false" :width="item.width || 'auto'"></el-table-column>
+
+        <el-table-column label="操作" align="center" width="180px">
+            <template slot-scope="scope">
+                <el-button size="mini" type="primary" @click="examine(scope.row,1)"><i class="el-icon-check"></i>通过</el-button>
+                <el-button size="mini" type="danger" @click="examine(scope.row,2)"><i class="el-icon-close"></i>不通过</el-button>
+            </template>
+        </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 27 - 0
src/views/backStageManage/examine/examine/index.vue

@@ -0,0 +1,27 @@
+<template>
+  <div class="height_100">
+    <examine></examine>
+  </div>
+</template>
+
+<script>
+import examine from './components/examine.vue';
+export default {
+  components: {
+    examine
+  },
+  props: {},
+  data() {
+    return {
+
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 60 - 0
src/views/backStageManage/organization/tenant/components/dialog/vipNumDialog.vue

@@ -0,0 +1,60 @@
+<template>
+  <div>
+    <el-dialog title="查看版本数量" :visible.sync="visible" width="500px" :before-close="close">
+        <el-table border v-loading="loading" :data="tableData">
+            <el-table-column type="index" label="#" width="55" align="center">
+                <template slot-scope="scope">
+                    <span>{{ (scope.$index + 1) }}</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="会员类型名称" align="center">
+                <template slot-scope="scope">
+                    <span>{{ scope.row.vipName }}</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="数量" align="center">
+                <template slot-scope="scope">
+                    <span>{{ scope.row.num }}</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center">
+                <template slot-scope="scope">
+                    <el-button type="text">修改数量</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+        visible:false,
+        loading:false,
+        tableData:[],
+        tenantId:null
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    open(tenantId){
+        this.tenantId = tenantId
+        this.getList()
+        this.visible = true
+    },
+    getList(){},
+    close(){
+        this.visible = false
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 100 - 0
src/views/backStageManage/organization/tenant/components/tenant.vue

@@ -0,0 +1,100 @@
+<template>
+  <div class="height_100">
+    <el-container>
+        <el-header>
+            <el-form :inline="true">
+                <el-form-item label="租户名称" prop="name">
+                    <el-input v-model="queryParams.name" size="small" placeholder="请输入"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="" size="small" @click="search">查询</el-button>
+                </el-form-item>
+            </el-form>
+        </el-header>
+        <el-main class="padding_10">
+            <el-table v-loading="loading" :data="tableData" border header-row-class-name="custom-table-header">
+                <el-table-column type="index" label="#" width="55" align="center">
+                    <template slot-scope="scope">
+                        <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="租户名称" align="center" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="contacts" label="联系人" align="center" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="address" label="联系人地址" align="center" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="type" label="类型" align="center" show-overflow-tooltip>
+                    <template slot-scope="scope">
+                        
+                    </template>
+                </el-table-column>
+                <el-table-column label="是否启用" align="center" show-overflow-tooltip>
+                    <template slot-scope="scope">
+                        <span v-if="scope.row.state==0">否</span>
+                        <span v-if="scope.row.state==1">是</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="describe" label="备注" align="center" show-overflow-tooltip></el-table-column>
+                <el-table-column label="操作"  width="150">
+                    <template slot-scope="scope">
+                        <el-button type="primary" size="mini" @click="checkVipNum(scope.row)">查看会员版本数量</el-button>
+                        <el-button type="danger" size="mini" @click="disableTenant(scope.row)">禁用</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-main>
+        <el-footer class="pagination">
+            <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total" @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
+        </el-footer>
+    </el-container>
+
+    <vipNumDialog ref="vipNumDialog"></vipNumDialog>
+  </div>
+</template>
+
+<script>
+import vipNumDialog from './dialog/vipNumDialog.vue';
+export default {
+  components: {
+    vipNumDialog
+  },
+  props: {},
+  data() {
+    return {
+        queryParams:{
+            current:1,
+            size:10,
+        },
+        total:0,
+        loading:false,
+        tableData:[],
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getList(){},
+    search(){
+        this.queryParams.current = 1
+        this.getList()
+    },
+    //切换分页
+    handleCurrentChange(val){
+        this.queryParams.current = val
+        this.getList()
+    },
+    //查看租户会员版本数量
+    checkVipNum(row){
+        this.$refs.vipNumDialog.open(row.id)
+    },
+    //禁用租户
+    disableTenant(row){
+
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 26 - 0
src/views/backStageManage/organization/tenant/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="height_100">
+    <tenant></tenant>
+  </div>
+</template>
+
+<script>
+import tenant from './components/tenant.vue';
+export default {
+  components: {
+    tenant
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>