Browse Source

解决后台传输的数据量过大导致的页面崩溃问题

huxz 8 years ago
parent
commit
2bdfa88f5e

+ 0 - 2
sso-manage-console-web/src/App.vue

@@ -6,13 +6,11 @@
 </template>
 
 <script>
-  import NavBar from '@/components/common/NavBar'
   import {NavHeader} from '@/components/common'
 
   export default {
     name: 'app',
     components: {
-      NavBar,
       NavHeader
     }
 }

+ 1 - 1
sso-manage-console-web/src/components/accounts/enterprises/EnterpriseBasicInfo.vue

@@ -91,7 +91,7 @@
         const success = () => {
           this.isChange = false
           this.$message.success('保存成功')
-          this.$route.go(-1)
+          this.$router.go(-1)
         }
         const error = error => {
           this.$message.error(error)

+ 1 - 1
sso-manage-console-web/src/components/accounts/users/UserBasicInfo.vue

@@ -114,7 +114,7 @@
         const success = () => {
           this.isChange = false
           this.$message.success('保存成功')
-          this.$route.go(-1)
+          this.$router.go(-1)
         }
         const error = error => {
           this.$message.error(error)

+ 0 - 177
sso-manage-console-web/src/components/admin/ChangeAdmin.vue

@@ -1,177 +0,0 @@
-<template>
-  <div>
-    <div class="x-container">
-      <div class="container">
-        <div class="row">
-          <div class="x-content-wrap clearfix">
-            <div class="col-sm-12 col-md-9 x-content">
-              <!-- tab切换 start-->
-              <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs">
-                <!-- Tabs start -->
-                <li :class="{active: selectedStatus === 'UNAPPLY'}"><a @click="switchStatus('UNAPPLY')">未通过</a></li>
-                <li :class="{active: selectedStatus === 'ENABLED'}"><a @click="switchStatus('ENABLED')">已通过</a></li>
-                <li :class="{active: selectedStatus === 'UNAUDIT'}"><a @click="switchStatus('UNAUDIT')">待审批</a></li>
-                <!-- Tabs end -->
-
-                <!-- Title with search dialog -->
-                <search-dialog :title="'企业'" :visible="isShowSearchDialog" :pageSizes="[10, 20, 50]" v-model.number="pageParams.size" @search="beginSearchChanges()">
-                  <div class="form-group">
-                    <label>名称</label> <input type="text" class="form-control" name="spaceName" placeholder="输入企业名称关键字" v-model="pageParams.spaceName">
-                  </div>
-                  <div class="form-group">
-                    <label>营业执照</label> <input type="text" class="form-control" name="businessCode" placeholder="输入营业执照" v-model="pageParams.businessCode">
-                  </div>
-                  <div class="form-group">
-                    <label>申请人</label> <input type="text" class="form-control" name="userName" placeholder="输入申请人姓名" v-model="pageParams.userName">
-                  </div>
-                </search-dialog>
-                <!-- Title with search dialog -->
-              </ul>
-              <!-- tab切换 end-->
-              <!-- 列表 start -->
-              <div class="x-mod x-list x-data-list-wrap">
-                <div class="x-mod-body">
-                  <data-list>
-                    <div class="x-data-list" v-if="changesList.length > 0">
-                      <div class="x-item" v-for="change in changesList">
-                        <div class="x-icon"><a class="x-btn-image" href="javascript:void(0)">
-                          <img src="http://dfs.ubtob.com/group1/M00/4F/38/CgpkyFnKB9qAUhrXAAvqH_kipG8228.jpg"
-                          width="50px" height="50px"/></a>
-                        </div>
-                        <p><a class="x-title x-editor-trigger" href="javascript:void(0)" @click="showEditDialog(change)">{{ change.userspace.spaceName || '企业名称' }}</a>
-                          <span class="pull-right x-text-muted">{{ change.submitDate | date }}</span>
-                        </p>
-                        <div class="x-text-muted">{{change.userspace.businessCode || '营业执照'}}<span
-                          class="pull-right x-text-muted">{{change.submitterName}}</span></div>
-                      </div>
-                    </div>
-                  </data-list>
-                </div>
-                <div class="x-mod-footer">
-                  <page-bar :pageParams="pageParams" :totalPages="totalPages" :total="totalElements" @changePage="jumpPage"/>
-                </div>
-              </div>
-              <!-- 列表 end -->
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div>
-      <!-- modal -->
-      <change-audit-or-show-modal :visible.sync="showModal" :changeRecord="selectedChange" @success="fetchData()"/>
-    </div>
-  </div>
-</template>
-
-<script>
-  import _ from 'lodash'
-  import axios from '@/assets/js/axios'
-  import {DataList, SearchDialog} from '@/components/common'
-  import PageBar from '@/components/common/PageBar'
-  import {ChangeAuditOrShowModal} from './modal'
-
-  export default {
-    name: 'AppHome',
-    components: {
-      SearchDialog,
-      DataList,
-      PageBar,
-      ChangeAuditOrShowModal
-    },
-    data () {
-      return {
-        pageParams: {
-          page: 1,
-          size: 10,
-          spaceName: null,
-          businessCode: null,
-          userName: null,
-          validCode: 1
-        },
-        isShowSearchDialog: false,
-        totalPages: 0,
-        totalElements: 0,
-        changesList: [],
-        selectedStatus: 'UNAUDIT',
-        showModal: false,
-        selectedChange: {}
-      }
-    },
-    methods: {
-      beginSearchChanges () {
-        this.loadChangeAdminList()
-
-        this.pageParams.spaceName = null
-        this.pageParams.businessCode = null
-        this.pageParams.userName = null
-      },
-      fetchData () {
-        this.loadChangeAdminList()
-      },
-      loadChangeAdminList () {
-        const params = _.defaultsDeep({}, this.pageParams)
-        params.page = params.page - 1
-
-        const success = page => {
-          this.changesList = page.content || []
-          this.totalPages = page.totalPages
-          this.totalElements = page.totalElements
-
-          console.log(page)
-        }
-        const error = response => {
-          console.log('error', response)
-        }
-
-        axios.get('/api/user/space/admin//pagination', { params }).then(success).catch(
-          error)
-      },
-      switchStatus (status) {
-        this.selectedStatus = status
-
-        switch (status) {
-          case 'UNAPPLY':
-            this.pageParams.validCode = 3
-            break
-          case 'ENABLED':
-            this.pageParams.validCode = 2
-            break
-          case 'UNAUDIT':
-            this.pageParams.validCode = 1
-            break
-          default:
-            this.selectedStatus = 'UNAUDIT'
-            this.pageParams.validCode = 1
-        }
-        this.loadChangeAdminList()
-      },
-      jumpPage (page) {
-        if (!page || page <= 0) {
-          this.pageParams.page = 1
-        } else if (page > this.totalPages) {
-          this.pageParams.page = this.totalPages
-        } else {
-          this.pageParams.page = page
-        }
-
-        this.loadChangeAdminList()
-      },
-      showEditDialog (change) {
-        this.selectedChange = change || {}
-        this.showModal = true
-      }
-    },
-    created () {
-      this.fetchData()
-    },
-    watch: {
-      '$route': 'fetchData'
-    }
-  }
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-
-</style>

+ 0 - 148
sso-manage-console-web/src/components/admin/modal/ChangeAuditOrShowModal.vue

@@ -1,148 +0,0 @@
-<template>
-  <div class="modal fade in" role="dialog" aria-hidden="false" style="display: block;" v-if="isVisible">
-    <div class="modal-dialog x-modal-dialog modal-lg" role="document">
-      <div class="modal-content">
-        <!-- tab切换 start-->
-        <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs modal-header" role="tablist">
-          <!--<li><a href="#changeAdminDetailModal_log" aria-controls="changeAdminDetailModal_log" role="tab" data-toggle="tab">操作日志</a></li>-->
-          <li class="active"><a aria-controls="changeAdminDetailModal_info" role="tab" data-toggle="tab">详细资料</a></li>
-          <h2 class="hidden-xs">
-            <i class="fa fa-file-text-o"></i>
-          </h2>
-        </ul>
-        <!-- tab切换 end-->
-        <div role="tabpanel" id="changeAdminDetailModal_info" class="x-tab-pane active">
-          <div class="modal-body">
-            <div class="x-group-header">
-              <h4>企业注册信息</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal">
-              <dt>企业名称</dt>
-              <dd>{{changeRecord.userspace.spaceName}}</dd>
-              <dt>营业执照</dt>
-              <dd>
-                {{changeRecord.userspace.businessCode}}&nbsp;<a class="x-btn-image" href="javascript:void(0);" data-src="http://dfs.ubtob.com/group1/M00/4F/38/CgpkyFnKB9qAUhrXAAvqH_kipG8228.jpg">查看附件</a>
-              </dd>
-            </dl>
-            <div class="x-group-header" v-if="changeRecord.userspace.admin">
-              <h4>管理员信息</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal" v-if="changeRecord.userspace.admin">
-              <dt>姓名</dt>
-              <dd>{{changeRecord.userspace.admin.userUU}}</dd>
-              <dt>手机号</dt>
-              <dd>{{changeRecord.userspace.admin.mobile}}</dd>
-              <dt>邮箱</dt>
-              <dd>hejq@usoftchina.com &nbsp;<a class="x-btn-send" style="display: none" href="javascript:void(0};" data-src="hejq@usoftchina.com">重新发送激活邮件</a>&nbsp;<a class="x-editor-trigger" style="display: none" href="javascript:void(0};" data-src="hejq@usoftchina.com">邮箱填错了?修改一下</a></dd>
-            </dl>
-            <div id="reasonWrap" style="display: block" v-if="changeRecord.validCode === 3">
-              <div class="x-group-header">
-                <h4>审批意见</h4>
-              </div>
-              <dl class="dl-horizontal x-dl-horizontal">
-                <dt>未通过原因</dt>
-                <dd>{{changeRecord.changeReason}}</dd>
-              </dl>
-            </div>
-            <div id="auditWrap" v-if="changeRecord.validCode === 1">
-              <div class="x-group-header">
-                <h4>审批意见</h4>
-              </div>
-              <form class="x-form">
-                <div class="form-group">
-                  <label class="radio-inline"> <input type="radio" name="enable" :value="true" v-model="handleResult"> 批准通过
-                  </label>
-                  <label class="radio-inline"> <input type="radio" name="enable" :value="false" v-model="handleResult"> 残忍拒绝
-                  </label>
-                </div>
-                <div class="form-group" id="reasonChooseWrap" style="display: block" v-show="!handleResult">
-                  <label>您拒绝的理由是?</label>
-                  <div class="radio" v-for="reason in changeReasons">
-                    <label> <input type="radio" name="reason" :value="reason" v-model="selectedReason"> {{reason}}
-                    </label>
-                  </div>
-                  <!-- 其他原因 -->
-                  <textarea id="otherReason" name="otherReason" class="form-control" placeholder="您拒绝的理由是?" maxlength="100" v-show="selectedReason === '其他原因'" v-model="otherReason"></textarea>
-                </div>
-              </form>
-            </div>
-          </div>
-          <div class="modal-footer">
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-            <button type="button" class="btn btn-default btn-submit" @click="submitAuditResult()">确认</button>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-  import axios from '@/assets/js/axios'
-
-  const changeReasons = [
-    '营业执照附件看不清',
-    '营业执照附件上的企业名称与填写的企业名称不一致',
-    '营业执照附件上的注册号与填写的营业执照号不一致',
-    '其他原因'
-  ]
-
-  export default {
-    name: 'ChangeAuditOrShowModal',
-    props: {
-      visible: Boolean,
-      changeRecord: Object
-    },
-    data () {
-      return {
-        isVisible: false,
-        handleResult: true,
-        changeReasons: changeReasons,
-        selectedReason: changeReasons[0],
-        otherReason: ''
-      }
-    },
-    watch: {
-      visible: function (value) {
-        this.isVisible = value
-      },
-      isVisible: function (value) {
-        this.$emit('update:visible', value)
-      }
-    },
-    methods: {
-      submitAuditResult () {
-        const params = {}
-        params.handlerId = this.changeRecord.id
-        params.auditor = '系统管理员'
-        params.validCode = this.handleResult ? 2 : 3
-
-        if (!this.handleResult) {
-          if (this.selectedReason === '其他原因') {
-            params.invalidReason = this.otherReason
-          } else {
-            params.invalidReason = this.selectedReason
-          }
-        }
-
-        console.log(params)
-
-        const success = result => {
-          console.log(result)
-          this.isVisible = false
-          this.$emit('success')
-        }
-        const error = error => {
-          console.log('error', error)
-          alert(error)
-        }
-
-        axios.put('/api/user/space/admin//auditChange', params).then(success).catch(error)
-      }
-    }
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 5
sso-manage-console-web/src/components/admin/modal/index.js

@@ -1,5 +0,0 @@
-import ChangeAuditOrShowModal from './ChangeAuditOrShowModal'
-
-export {
-  ChangeAuditOrShowModal
-}

+ 0 - 121
sso-manage-console-web/src/components/app/AppHome.vue

@@ -1,121 +0,0 @@
-<template>
-  <div>
-    <div class="x-container">
-      <div class="container">
-        <div class="x-content-wrap clearfix" style="margin: 0 -15px">
-          <div class="x-content">
-            <!-- tab切换 start-->
-            <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs">
-              <li><a data-type="INNER">内部</a></li>
-              <li><a data-type="INNER">外部</a></li>
-              <li class="active"><a data-type="">全部</a></li>
-              <!--suppress HtmlUnknownTag -->
-              <h2 class="hidden-xs">
-                <i class="fa fa-file-text-o"></i> 应用
-              </h2>
-            </ul>
-            <!-- tab切换 end-->
-            <!-- 列表 start -->
-            <div class="x-mod x-list x-list-2x x-chunk-list-wrap">
-              <div class="x-mod-body">
-                <!-- tab start -->
-                <div id="app_list" class="x-chunk-list">
-
-                  <div class="x-item" v-for="app in appList">
-                    <div class="x-icon">
-                      <i class="fa fa-file-o"></i>
-                    </div>
-                    <p class="x-title">
-                      <a class="x-text x-editor-trigger" href="javascript:void(0)"
-                         :data-id="app.uid"
-                         v-text="app.description"
-                         @click="addOrModifyAppInfo(app)">
-                      </a>
-                    </p>
-                    <div class="text-muted">
-                    <span class="x-text">
-                      <i class="fa fa-fw fa-check-square-o"></i>{{app.uid}}
-                    </span>
-                    </div>
-                    <div class="x-text-muted">
-                      <!--suppress JSUnresolvedVariable -->
-                      绑定企业<b v-text="app.usCount">0</b>
-                    </div>
-                  </div>
-
-                </div>
-                <!-- tab end -->
-                <!-- empty tag -->
-                <!-- new app -->
-                <div class="x-item">
-                  <div class="x-icon">
-                    <a class="x-editor-trigger" href="javascript:void(0)" title="添加应用"
-                       @click="addOrModifyAppInfo()">
-                      <i class="fa fa-plus"></i>
-                    </a>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <!-- 列表 end -->
-          </div>
-        </div>
-      </div>
-    </div>
-    <!-- modal -->
-    <app-modal :visible.sync="showModal" :data="selectedApp" @success="saveModifiedAppSuccess()"/>
-  </div>
-</template>
-
-<!--suppress JSUnusedGlobalSymbols -->
-<script>
-import axios from '@/assets/js/axios'
-import AppModal from './modal/AppModal'
-
-export default {
-  name: 'AppHome',
-  components: {
-    AppModal
-  },
-  data () {
-    return {
-      appList: [],
-      showModal: false,
-      selectedApp: null
-    }
-  },
-  created () {
-    // Load data from backend server, follow docs on
-    // https://router.vuejs.org/zh-cn/advanced/data-fetching.html
-    this.fetchData()
-  },
-  watch: {
-    $route: 'fetchData'
-  },
-  methods: {
-    fetchData () {
-      this.loadAppsList()
-    },
-    loadAppsList () {
-      axios.get('/api/app//showAllApps').then(response => {
-        this.appList = response
-      }, response => {
-        // TODO 展示错误提示页面
-        console.log('error', response)
-      })
-    },
-    addOrModifyAppInfo (app) {
-      this.showModal = true
-      this.selectedApp = app || {}
-    },
-    saveModifiedAppSuccess () {
-      this.loadAppsList()
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style>
-
-</style>

+ 0 - 34
sso-manage-console-web/src/components/app/AppList.vue

@@ -1,34 +0,0 @@
-<template>
-  <div class="hello">
-    <h1>{{ msg }}123</h1>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'AppHome',
-  data () {
-    return {
-      msg: 'AppList'
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-h1, h2 {
-  font-weight: normal;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>

+ 0 - 326
sso-manage-console-web/src/components/app/modal/AppModal.vue

@@ -1,326 +0,0 @@
-<template>
-  <div class="modal fade in" role="dialog" aria-labelledby="appModal_title"
-       aria-hidden="false" style="display: block;" v-if="appVisible">
-    <div class="modal-dialog x-modal-dialog modal-lg" role="document">
-      <div class="modal-content">
-        <div class="modal-header">
-          <button type="button" class="close" data-dismiss="modal" aria-label="Close"
-                  @click="appVisible = false">
-            <span aria-hidden="true">&times;</span>
-          </button>
-          <h4 class="modal-title" id="appModal_title">应用</h4>
-        </div>
-        <div class="modal-body">
-          <form class="form-horizontal x-form">
-            <div class="form-group">
-              <label class="control-label col-sm-2">唯一标识</label>
-              <div class="col-sm-3">
-                <input type="text" class="form-control" name="uid" title="uid" required
-                       v-model="appInfo.uid">
-              </div>
-            </div>
-            <div class="form-group">
-              <label class="control-label col-sm-2">描述</label>
-              <div class="col-sm-10">
-                <input type="text" class="form-control" name="description" title="description" required
-                       v-model="appInfo.description">
-              </div>
-            </div>
-            <div class="form-group">
-              <label class="control-label col-sm-2">主页</label>
-              <div class="col-sm-10">
-                <input type="text" class="form-control" name="homePage" title="homePage" required
-                       v-model="appInfo.homePage">
-              </div>
-            </div>
-            <div class="form-group">
-              <label class="control-label col-sm-2">类型</label>
-              <div class="col-sm-10">
-                <label class="radio-inline">
-                  <input type="radio" name="type" value="default" v-model="appInfo.type"> 独立应用
-                </label>
-                <label class="radio-inline">
-                  <input type="radio" name="type" value="control" v-model="appInfo.type"> 级联应用
-                </label>
-                <div class="help-block">
-                  级联应用是指没有独立企业、用户及权限控制系统的应用,要借助其他应用的资源来达到控制效果
-                </div>
-              </div>
-            </div>
-            <div id="appModal_type_default" v-show="showDefault">
-              <div class="form-group">
-                <label class="control-label col-sm-2">公钥</label>
-                <div class="col-sm-10" id="keypair">
-                  <textarea name="publicKey" title="publicKey" rows="3" class="form-control" readonly
-                            v-model="appInfo.publicKey"></textarea>
-                  <ul class="help-block x-menu">
-                    <li>点击<a class="btn-create" href="javascript:void(0)" @click="generateSecret()">生成密钥对</a></li>
-                    <li>账户中心只保留公钥用于校验,请将私钥配置到程序中,并妥善保管</li>
-                    <li v-show="canDownload">
-                      <a class="btn-download" target="_blank" href="/api/app/private//download">下载私钥</a>
-                    </li>
-                  </ul>
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">企业回调</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="backSpaceUrl" required
-                         v-model="appInfo.backSpaceUrl" placeholder="应用接口,用于企业信息有变化时回调">
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">用户回调</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="backUserUrl" required
-                         v-model="appInfo.backUserUrl" placeholder="应用接口,用于用户信息有变化时回调">
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">用户密码回调</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="backUserPwdUrl" required
-                         v-model="appInfo.backUserPwdUrl" placeholder="应用接口,用于用户密码修改时回调">
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">密码加密格式</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="encryFormat" required
-                         v-model="appInfo.encryFormat" placeholder="用户密码加密的格式">
-                  <ul class="help-block x-menu">
-                    <li><code>$password</code>表示密码明文;<code>$salt</code>表示盐值</li>
-                    <li>可任意组合,例如:<code>$password($salt)</code>;不填写表示不对密码加密</li>
-                  </ul>
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">登录回调</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="loginUrl" required
-                         v-model="appInfo.loginUrl" placeholder="应用接口,用于企业信息有变化时回调">
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">登出回调</label>
-                <div class="col-sm-10">
-                  <input type="text" class="form-control" name="logoutUrl" required
-                         v-model="appInfo.logoutUrl" placeholder="应用接口,用于企业信息有变化时回调">
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">关联应用</label>
-                <div class="col-sm-10">
-                  <textarea name="copyApps" rows="3" class="form-control" v-model="appInfo.copyApps"
-                            placeholder="填写应用唯一标识,不填表示全部;多个用逗号、分号、空格或回车分隔"></textarea>
-                  <ul class="help-block x-menu">
-                    <li>关联应用是指与当前应用有关的应用</li>
-                    <li>相关联的应用间,任何一方的企业或个人信息有修改,都会通过回调接口同步到其他应用</li>
-                  </ul>
-                </div>
-              </div>
-              <div class="form-group">
-                <label class="control-label col-sm-2">默认开通</label>
-                <div class="col-sm-10">
-                  <label class="radio-inline">
-                    <!--suppress HtmlUnknownAttribute -->
-                    <input type="radio" name="defaultUse" value="1" v-model.number="appInfo.defaultUse"> 是
-                  </label>
-                  <label class="radio-inline">
-                    <!--suppress HtmlUnknownAttribute -->
-                    <input type="radio" name="defaultUse" value="0" v-model.number="appInfo.defaultUse"> 否
-                  </label>
-                  <div class="help-block">
-                    用户注册的时候,默认为该用户开通此应用
-                  </div>
-                </div>
-              </div>
-              <!--<div class="form-group">
-                <label class="control-label col-sm-2">使用域</label>
-                <div class="col-sm-10">
-                  <label class="radio-inline"> <input type="radio" name="scope" value="PUBLIC" checked=""> 开放
-                  </label> <label class="radio-inline"> <input type="radio" name="scope" value="PROTECTED"> 受保护
-                </label> <label class="radio-inline"> <input type="radio" name="scope" value="PRIVATE"> 私有
-                </label>
-                  <div class="help-block">
-                    私有应用只能内部使用;受保护应用只能指定用户群使用
-                  </div>
-                </div>
-              </div>-->
-              <!--<div class="form-group">
-                <label class="control-label col-sm-2">应用ID唯一</label>
-                <div class="col-sm-10">
-                  <label class="radio-inline"> <input type="radio" name="dialectEnable" value="1" checked=""> 是
-                  </label> <label class="radio-inline"> <input type="radio" name="dialectEnable" value="0"> 否
-                </label>
-                  <div class="help-block">
-                    当ID唯一时,可以使用ID作为账户登录
-                  </div>
-                </div>
-              </div>-->
-              <!-- 是否支持个人账号 -->
-              <div class="form-group">
-                <label class="control-label col-sm-2">支持个人账号</label>
-                <div class="col-sm-10">
-                  <label class="radio-inline">
-                    <input type="radio" name="personalEnable" value="1" v-model="appInfo.personalEnable"> 是
-                  </label>
-                  <label class="radio-inline">
-                    <input type="radio" name="personalEnable" value="0" v-model="appInfo.personalEnable"> 否
-                  </label>
-                  <div class="help-block">
-                    用户注册的时候,该应用将根据此选项决定是否开放个人注册页面
-                  </div>
-                </div>
-              </div>
-            </div>
-            <div id="appModal_type_control" v-show="showControl">
-              <div class="form-group">
-                <label class="control-label col-sm-2">级联应用</label>
-                <div class="col-sm-3">
-                  <input type="text" class="form-control" name="userControl" placeholder="填写应用唯一标识"
-                         required v-model="appInfo.userControl">
-                </div>
-              </div>
-            </div>
-          </form>
-        </div>
-        <div class="modal-footer">
-          <button type="button" class="btn btn-blank" data-dismiss="modal" @click="appVisible = false">取消</button>
-          <button type="button" class="btn btn-blank btn-del" v-show="!isAdd" @click="deleteAppInfo()">删除</button>
-          <button type="button" class="btn btn-default btn-submit" @click="saveAppInfo()">保存</button>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash'
-import axios from '@/assets/js/axios'
-
-export default {
-  name: 'app-modal',
-  props: {
-    visible: Boolean,
-    data: Object
-  },
-  data () {
-    return {
-      appVisible: false,
-      isAdd: true,
-      appInfo: {},
-      canDownload: false
-    }
-  },
-  watch: {
-    visible: function (value) {
-      this.appVisible = value
-    },
-    appVisible: function (value) {
-      this.$emit('update:visible', value)
-    },
-    data: function (value) {
-      value = value || {}
-
-      this.isAdd = !value.uid
-
-      // Set default values for app
-      const defaults = { type: value.userControl ? 'control' : 'default' }
-
-      // Set default values for new app info
-      if (!value.userControl && !value.uid) {
-        defaults.defaultUse = '1'
-        defaults.personalEnable = 1
-      }
-
-      // To implement two-way bindings, deep copy data to appInfo, when data changes.
-      this.appInfo = _.defaults({}, value, defaults)
-      console.log('App type: ', this.appInfo.type)
-    }
-  },
-  methods: {
-    saveAppInfo () {
-      // Validation
-      if (!this.appInfo.uid) {
-        this.showRequiredError({message: '应用唯一标识不能为空'})
-        return 0
-      } else if (!this.appInfo.description) {
-        this.showRequiredError({message: '应用描述不能为空'})
-        return 0
-      } else if (this.appInfo.type === 'control' && !this.appInfo.userControl) {
-        this.appInfo.userControl = this.appInfo.userControl || ' '
-        this.showRequiredError({message: '级联应用的唯一标识不能为空'})
-        return 0
-      }
-
-      const appInfo = _.omit(this.appInfo, 'type')
-      console.log(appInfo)
-
-      const success = () => {
-        this.$emit('success')
-        this.appVisible = false
-      }
-      const error = response => { this.showAddError({ message: response }) }
-
-      if (!this.isAdd) {
-        axios.put('/api/app//updateApp', appInfo).then(success).catch(error)
-      } else {
-        axios.post('/api/app//addApp', appInfo).then(success).catch(error)
-      }
-    },
-    deleteAppInfo () {
-      const uid = this.appInfo.uid || ''
-
-      const success = () => {
-        this.$emit('success')
-        this.appVisible = false
-      }
-      const error = response => { this.showAddError({ message: response }) }
-
-      axios.delete(`/api/app/${uid}/deleteApp`).then(success).catch(error)
-    },
-    generateSecret () {
-      console.log(1)
-      const success = (publicKey) => {
-        console.log(publicKey)
-        if (publicKey) {
-          this.canDownload = true
-          this.appInfo.publicKey = publicKey
-        } else {
-          this.canDownload = false
-        }
-      }
-      const error = response => {
-        this.canDownload = false
-        this.showAddError({ message: response })
-      }
-
-      axios.get('/api/app/secret//generate').then(success).catch(error)
-    }
-  },
-  computed: {
-    showDefault () {
-      return this.appInfo.type === 'default'
-    },
-    showControl () {
-      return this.appInfo.type === 'control'
-    }
-  },
-  notifications: {
-    showAddError: {
-      title: 'Add Failed',
-      message: 'Failed to add app info',
-      type: 'error'
-    },
-    showRequiredError: {
-      message: 'Required',
-      type: 'error'
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 34
sso-manage-console-web/src/components/asset/AssetHome.vue

@@ -1,34 +0,0 @@
-<template>
-  <div class="hello">
-    <h1>{{ msg }}123</h1>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'AppHome',
-  data () {
-    return {
-      msg: '资源管理'
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-h1, h2 {
-  font-weight: normal;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>

+ 0 - 82
sso-manage-console-web/src/components/back/BackHome.vue

@@ -1,82 +0,0 @@
-<template>
-  <div>
-    <div class="x-container">
-      <div class="container">
-        <div class="x-content-wrap clearfix" style="margin: 0px -15px;">
-          <div class="x-content">
-            <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs">
-              <h2 class="hidden-xs"><i class="fa fa-file-text-o"></i> 申请更换管理员
-              </h2></ul>
-            <div class="x-mod x-list x-list-2x x-chunk-list-wrap">
-              <div class="x-mod-body">
-                <div class="x-form-area">
-                  <form>
-                    <div class="form-group">
-                      <label for="spaceUU">所属企业</label>
-                      <input type="text" class="form-control" id="spaceUU" v-model="commitData.spaceUU" placeholder="所属企业UU">
-                    </div>
-                    <div class="form-group">
-                      <label for="submitterUU">申请人</label>
-                      <input type="text" class="form-control" id="submitterUU" v-model="commitData.submitterUU" placeholder="申请人UU">
-                    </div>
-                    <div class="form-group">
-                      <label for="afterAdminUU">新增管理员</label>
-                      <input type="text" class="form-control" id="afterAdminUU" v-model="commitData.afterAdminUU" placeholder="管理员UU">
-                    </div>
-                    <div class="form-group">
-                      <label for="contactTel">联系方式</label>
-                      <input type="text" class="form-control" id="contactTel" v-model="commitData.contactTel" placeholder="申请人联系方式">
-                    </div>
-                    <div class="form-group">
-                      <label>申请原因</label>
-                      <textarea class="form-control" title="changeReason" rows="3" v-model="commitData.changeReason" placeholder="申请原因"></textarea>
-                    </div>
-                    <button type="submit" class="btn btn-default" @click="submitCommit()">Submit</button>
-                  </form>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-  import axios from '@/assets/js/axios'
-
-  export default {
-    name: 'BackHome',
-    data () {
-      return {
-        commitData: {
-          submitterUU: null,
-          spaceUU: null,
-          afterAdminUU: null,
-          contactTel: null,
-          changeReason: null
-        }
-      }
-    },
-    methods: {
-      submitCommit () {
-        const success = change => {
-          console.log(change)
-          this.$router.push('/admin')
-        }
-        const error = error => {
-          alert(error)
-        }
-
-        axios.post('/api/user/space/admin//submitChange', this.commitData).then(success).catch(error)
-      }
-    }
-  }
-</script>
-
-<style scoped>
-  .x-form-area {
-    margin: 10px 20px;
-  }
-</style>

+ 0 - 5
sso-manage-console-web/src/components/back/index.js

@@ -1,5 +0,0 @@
-import BackHome from './BackHome'
-
-export {
-  BackHome
-}

+ 0 - 34
sso-manage-console-web/src/components/settings/SettingsHome.vue

@@ -1,34 +0,0 @@
-<template>
-  <div class="hello">
-    <h1>{{ msg }}123</h1>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'AppHome',
-  data () {
-    return {
-      msg: '设置'
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-h1, h2 {
-  font-weight: normal;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>

+ 0 - 231
sso-manage-console-web/src/components/user/UserHome.vue

@@ -1,231 +0,0 @@
-<template>
-  <div>
-    <div class="x-container">
-      <div class="container">
-        <div class="row">
-          <div class="x-content-wrap clearfix">
-            <div class="col-sm-12 col-md-9 x-content">
-              <div class="nav nav-tabs x-nav-tabs hidden-xs">
-                <h2 class="btn-group">
-								<span class="btn btn-lg x-btn-search" @click="showSearch = !showSearch"><i class="fa fa-search"></i>
-									用户</span>
-                  <div class="dropdown-menu" id="searchlist" style="padding: 15px; width: 240px; display: block;" v-if="showSearch" @click.native="closeSearchDialog($event)">
-                    <form>
-                      <div class="form-group">
-                        <label>姓名</label>
-                        <input type="text" class="form-control" name="name" placeholder="输入姓名"
-                               v-model="pageParams.name">
-                      </div>
-                      <div class="form-group">
-                        <label>手机号</label>
-                        <input type="text" class="form-control" name="mobile" placeholder="输入手机号"
-                               v-model="pageParams.phone">
-                      </div>
-                      <div class="form-group">
-                        <div>
-                          <label>分页设置</label>
-                        </div>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="20" v-model.number="pageParams.size"> 20
-                        </label>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="50" v-model.number="pageParams.size"> 50
-                        </label>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="100" v-model.number="pageParams.size"> 100
-                        </label>
-                      </div>
-                      <button class="btn btn-default btn-block btn-search" type="button" @click="searchUserInfo()">搜索</button>
-                    </form>
-                  </div>
-                </h2>
-              </div>
-              <!-- 列表 start -->
-              <div class="x-mod x-list x-list-2x x-data-list-wrap">
-                <div class="x-mod-body">
-                  <div class="x-data-list" v-if="userList.length > 0">
-                    <div class="x-item" v-for="user in userList">
-                      <div class="x-icon"><i class="fa fa-user"></i></div>
-                      <p>
-                        <a class="x-title x-editor-trigger" href="javascript:void(0)" @click="showEditDialog(user)"
-                           data-mobile="  0756-3610188  " data-email="headcon001@headcon.cn"
-                           v-text="user.realName || '姓名'">姓名</a>
-                      </p>
-                      <div class="x-text-muted" v-text="user.mobile">0756-3610188</div>
-                    </div>
-                  </div>
-                  <div class="x-empty" v-if="userList.length === 0">
-                    <i class="fa fa-coffee"></i>
-                    <p>这里很干净!</p>
-                  </div>
-                </div>
-                <page-bar :pageParams="pageParams" :totalPages="totalPages" :total="totalElements" @changePage="jumpPage"/>
-              </div>
-              <!-- 列表 end -->
-            </div>
-
-            <!-- 侧边统计栏 start-->
-            <div class="col-sm-12 col-md-3 x-side-bar hidden-xs hidden-sm">
-              <!-- 开通应用统计 -->
-              <div class="x-mod text-justify" id="userAppCount">
-                <div class="x-mod-head">
-                  <h4>统计</h4>
-                </div>
-                <div class="x-mod-body">
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">全部<span class="pull-right">12397</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-success" role="progressbar"
-                           aria-valuenow="12397" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 100%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">优软平台<span class="pull-right">9287</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-info" role="progressbar"
-                           aria-valuenow="9287" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 75%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">优软商城<span class="pull-right">9225</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-info" role="progressbar"
-                           aria-valuenow="9225" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 74%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">UU互联<span class="pull-right">8192</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-info" role="progressbar"
-                           aria-valuenow="8192" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 66%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">优软UAS<span class="pull-right">2257</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-danger" role="progressbar"
-                           aria-valuenow="2257" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 18%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">SAAS服务<span class="pull-right">225</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-danger" role="progressbar"
-                           aria-valuenow="225" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 2%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                  <div class="x-progress-wrap">
-                    <div class="x-progress-title">优软众创<span class="pull-right">2</span></div>
-                    <div class="progress">
-                      <div class="progress-bar progress-bar-danger" role="progressbar"
-                           aria-valuenow="2" aria-valuemin="0" aria-valuemax="12397"
-                           style="width: 0%"><span class="sr-only"></span></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div>
-      <!-- modal -->
-      <user-edit-modal :visible.sync="showModal" :user="selectedUser"/>
-    </div>
-  </div>
-</template>
-
-<script>
-  import _ from 'lodash'
-  import axios from '@/assets/js/axios'
-  import PageBar from '@/components/common/PageBar'
-  import UserEditModal from './modal/UserEditModal'
-
-  export default {
-    name: 'AppHome',
-    components: {
-      PageBar,
-      UserEditModal
-    },
-    data () {
-      return {
-        pageParams: {
-          page: 1,
-          size: 20,
-          name: '',
-          phone: ''
-        },
-        showSearch: false,
-        userList: [],
-        totalPages: 1,
-        totalElements: 0,
-        showModal: false,
-        selectedUser: {}
-      }
-    },
-    created () {
-      this.fetchData()
-    },
-    watch: {
-      '$route': 'fetchData'
-    },
-    methods: {
-      fetchData () {
-        this.loadUserList()
-      },
-      loadUserList () {
-        const params = _.defaultsDeep({}, this.pageParams)
-        params.page = params.page - 1
-
-        const success = page => {
-          this.userList = page.content || []
-          this.totalPages = page.totalPages
-          this.totalElements = page.totalElements
-        }
-        const error = response => {
-          console.log('error', response)
-        }
-
-        axios.get('/api/user//showUserByPaginationOld', { params }).then(success).catch(
-          error)
-      },
-      closeSearchDialog (event) {
-        console.log(event)
-      },
-      searchUserInfo () {
-        this.loadUserList()
-
-        this.showSearch = false
-        this.pageParams.name = ''
-        this.pageParams.phone = ''
-      },
-      jumpPage (page) {
-        if (!page || page <= 0) {
-          this.pageParams.page = 1
-        } else if (page > this.totalPages) {
-          this.pageParams.page = this.totalPages
-        } else {
-          this.pageParams.page = page
-        }
-
-        this.loadUserList()
-      },
-      showEditDialog (user) {
-        this.selectedUser = user || {}
-        this.showModal = true
-      }
-    }
-  }
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style>
-
-</style>

+ 0 - 133
sso-manage-console-web/src/components/user/modal/UserEditModal.vue

@@ -1,133 +0,0 @@
-<template>
-  <div class="modal fade in" role="dialog" aria-hidden="false" style="display: block;" v-if="isVisible">
-    <div class="modal-dialog x-modal-dialog modal-lg" role="document">
-      <div class="modal-content">
-        <!-- tab切换 start-->
-        <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs modal-header" role="tablist">
-          <li :class="{active: showTab === 'apps'}"><a aria-controls="userDetailModal_apps" role="tab" data-toggle="tab" @click="showBindApps()">绑定企业、应用</a></li>
-          <li :class="{active: showTab === 'default'}"><a aria-controls="userDetailModal_info" role="tab" data-toggle="tab" @click="showTab = 'default'">详细资料</a></li>
-          <h2 class="hidden-xs">
-            <i class="fa fa-file-text-o"></i> {{user.realName || '姓名'}}
-          </h2>
-        </ul>
-        <!-- tab切换 end-->
-        <div role="tabpanel" id="userDetailModal_info" class="x-tab-pane" :class="{active: showTab === 'default'}">
-          <div class="modal-body">
-            <div class="x-group-header">
-              <h4>个人信息</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal">
-              <dt>姓名</dt>
-              <dd v-text="user.realName || '姓名'"></dd>
-              <dt>性别</dt>
-              <dd>男</dd>
-              <dt>身份证号</dt>
-              <dd v-text="user.idCard"></dd>
-              <dt>出生日期</dt>
-              <dd></dd>
-            </dl>
-            <div class="x-group-header">
-              <h4>账户安全</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal">
-              <dt>绑定手机</dt>
-              <dd>{{user.mobile}}&nbsp;<a class="x-btn-text" href="javascript:void(0)">更换</a></dd>
-              <dt>绑定邮箱</dt>
-              <dd v-if="!user.email">&nbsp;<a class="x-btn-text" href="javascript:void(0)">绑定</a></dd>
-              <dd v-if="user.email">{{user.email}}&nbsp;<a class="x-btn-text" href="javascript:void(0)">更换</a></dd>
-            </dl>
-            <!--<div class="x-group-header">
-              <h4>组织架构</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal">
-              <dt>部门</dt>
-              <dd></dd>
-              <dt>职称</dt>
-              <dd>管理员</dd>
-            </dl>-->
-          </div>
-          <div class="modal-footer">
-            <button type="button" class="btn btn-blank x-btn-reset">重置密码</button>
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-          </div>
-        </div>
-        <div role="tabpanel" id="userDetailModal_apps" class="x-tab-pane" :class="{active: showTab === 'apps'}">
-          <div class="modal-body">
-            <div class="x-mod x-list x-list-2x" style="margin: -15px">
-              <div class="x-mod-body">
-                <div class="x-common-list" id="apps">
-                  <!-- users -->
-                  <div class="x-item" v-for="space in spaces">
-                    <div class="x-icon"><i class="fa fa-file-o"></i></div>
-                    <p>
-                      <span class="x-title text-info">{{space.spaceName}}</span><!--<span
-                      class="pull-right x-text-muted">b2b</span>-->
-                    </p>
-                    <div class="x-text-muted">管理员<span class="pull-right">{{space.spaceUU}}</span></div>
-                    <div class="x-title pull-right"><a type="button"
-                                                       class="btn btn-blank btn-synchrodata"
-                                                       onclick="app.synchrodata(170828)">同步数据</a><a
-                      type="button" class="btn btn-blank btn-userpwd" onclick="app.userpwd(170828)">查询密码</a>
-                    </div>
-                  </div>
-                </div>
-                <div class="x-empty">
-                  <i class="fa fa-coffee"></i>
-                  <p>还没有绑定任何企业或应用</p>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div class="modal-footer">
-            <button type="button" class="btn btn-blank">添加到企业</button>
-            <!--<button type="button" class="btn btn-blank">设置为管理员</button>-->
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-  import axios from '@/assets/js/axios'
-
-  export default {
-    name: 'UserEditModal',
-    props: {
-      visible: Boolean,
-      user: Object
-    },
-    data () {
-      return {
-        isVisible: false,
-        showTab: 'default',
-        spaces: []
-      }
-    },
-    watch: {
-      visible: function (value) {
-        this.isVisible = value
-      },
-      isVisible: function (value) {
-        this.$emit('update:visible', value)
-      }
-    },
-    methods: {
-      showBindApps () {
-        const success = spaces => {
-          this.showTab = 'apps'
-          this.spaces = spaces
-          console.log(spaces)
-        }
-        const error = response => { console.log('error', response) }
-
-        axios.get(`/api/user/${this.user.userUU}/findSpacesByUser`).then(success).catch(error)
-      }
-    }
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 199
sso-manage-console-web/src/components/userspace/UserSpaceHome.vue

@@ -1,199 +0,0 @@
-<template>
-  <div>
-    <div class="x-container">
-      <div class="container">
-        <div class="row">
-          <div class="x-content-wrap clearfix">
-            <div class="col-sm-12 col-md-9 x-content">
-              <!-- tab切换 start-->
-              <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs">
-                <li :class="{active: pageParams.validCode === 'UNAPPLY'}"><a @click="switchStatus('UNAPPLY')">未通过</a></li>
-                <li :class="{active: pageParams.validCode === 'ENABLED'}"><a @click="switchStatus('ENABLED')">已激活</a></li>
-                <li :class="{active: pageParams.validCode === 'UNACT'}"><a @click="switchStatus('UNACT')">待激活</a></li>
-                <li :class="{active: pageParams.validCode === 'UNAUDIT'}"><a @click="switchStatus('UNAUDIT')">待审批</a></li>
-
-                <h2 class="btn-group">
-								<span class="btn btn-lg x-btn-search" @click="showSearch = !showSearch"><i class="fa fa-search"></i>
-									企业</span>
-                  <div class="dropdown-menu" id="searchlist" style="padding: 15px; width: 240px; display: block;" v-if="showSearch">
-                    <form>
-                      <div class="form-group">
-                        <label>名称</label> <input type="text" class="form-control" name="name" placeholder="输入企业名称关键字" v-model.trim="pageParams.spaceName">
-                      </div>
-                      <div class="form-group">
-                        <label>营业执照</label> <input type="text" class="form-control" name="businessCode" placeholder="输入营业执照" v-model.trim="pageParams.businessCode">
-                      </div>
-                      <div class="form-group">
-                        <div>
-                          <label>分页设置</label>
-                        </div>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="10" v-model.number="pageParams.size"> 10
-                        </label>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="20" v-model.number="pageParams.size"> 20
-                        </label>
-                        <label class="radio-inline">
-                          <input type="radio" name="pageSize" value="50" v-model.number="pageParams.size"> 50
-                        </label>
-                      </div>
-                      <button class="btn btn-default btn-block btn-search" type="button" @click="searchSpaceInfo()">搜索</button>
-                    </form>
-                  </div>
-                </h2>
-              </ul>
-              <!-- tab切换 end-->
-              <!-- 列表 start -->
-              <div class="x-mod x-list x-data-list-wrap">
-                <div class="x-mod-body">
-                  <div class="x-data-list" v-if="spaceList.length > 0">
-                    <div class="x-item" v-for="space in spaceList">
-                      <div class="x-icon"><i class="fa fa-user"></i></div>
-                      <p><a class="x-title x-editor-trigger" href="javascript:void(0)"
-                            data-id="4327" @click="showEditDialog(space)" v-text="space.spaceName">公司名称</a><span
-                        class="pull-right x-text-muted" v-text="space.registerDate || '2016-11-30'">2016-11-30</span>
-                      </p>
-                      <div class="x-text-muted" v-text="space.businessCode">营业执照</div>
-                    </div>
-                  </div>
-                  <div class="x-empty" style="display: block;" v-if="spaceList.length === 0">
-                    <i class="fa fa-coffee"></i>
-                    <p>这里很干净!</p>
-                  </div>
-                </div>
-                <div class="x-mod-footer">
-                  <page-bar :pageParams="pageParams" :totalPages="totalPages" :total="totalElements" @changePage="jumpPage"/>
-                </div>
-              </div>
-              <!-- 列表 end -->
-            </div>
-
-            <!-- 侧边统计栏 start-->
-            <div class="col-sm-12 col-md-3 x-side-bar hidden-xs hidden-sm">
-              <!-- 开通应用统计 -->
-              <div class="x-mod text-justify" id="userSpaceAppCount">
-                <div class="x-mod-head">
-                  <h4>统计</h4>
-                </div>
-                <div class="x-mod-body"><div class="x-progress-wrap"><div class="x-progress-title">全部<span class="pull-right">8792</span></div><div class="progress"><div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="8792" aria-valuemin="0" aria-valuemax="8792" style="width: 100%"><span class="sr-only"></span></div></div></div><div class="x-progress-wrap"><div class="x-progress-title">优软平台<span class="pull-right">4871</span></div><div class="progress"><div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="4871" aria-valuemin="0" aria-valuemax="8792" style="width: 55%"><span class="sr-only"></span></div></div></div><div class="x-progress-wrap"><div class="x-progress-title">SAAS服务<span class="pull-right">110</span></div><div class="progress"><div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="110" aria-valuemin="0" aria-valuemax="8792" style="width: 1%"><span class="sr-only"></span></div></div></div><div class="x-progress-wrap"><div class="x-progress-title">优软UAS<span class="pull-right">91</span></div><div class="progress"><div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="91" aria-valuemin="0" aria-valuemax="8792" style="width: 1%"><span class="sr-only"></span></div></div></div><div class="x-progress-wrap"><div class="x-progress-title">优软商城<span class="pull-right">19</span></div><div class="progress"><div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19" aria-valuemin="0" aria-valuemax="8792" style="width: 0%"><span class="sr-only"></span></div></div></div></div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div>
-      <!-- modal -->
-      <space-edit-modal :visible.sync="showModal" :data="selectedSpace"/>
-    </div>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash'
-import axios from '@/assets/js/axios'
-import PageBar from '@/components/common/PageBar'
-import SpaceEditModal from './modal/SpaceEditModal'
-
-export default {
-  name: 'AppHome',
-  components: {
-    PageBar,
-    SpaceEditModal
-  },
-  data () {
-    return {
-      pageParams: {
-        page: 1,
-        size: 10,
-        spaceName: '',
-        businessCode: '',
-        validCode: 'UNAUDIT'
-      },
-      totalElements: 0,
-      totalPages: 1,
-      showSearch: false,
-      spaceList: [],
-      showModal: false,
-      selectedSpace: {}
-    }
-  },
-  created () {
-    this.fetchData()
-  },
-  watch: {
-    '$route': 'fetchData'
-  },
-  methods: {
-    fetchData () {
-      this.loadSpaceList()
-    },
-    loadSpaceList () {
-      const params = _.defaultsDeep({}, this.pageParams)
-      params.page = params.page - 1
-
-      switch (params.validCode) {
-        case 'UNAUDIT':
-          params.validCode = 1
-          break
-        case 'UNACT':
-          params.validCode = 2
-          break
-        case 'ENABLED':
-          params.validCode = 3
-          break
-        case 'UNAPPLY':
-          params.validCode = 4
-          break
-        default:
-          params.validCode = 0
-      }
-
-      const success = page => {
-        console.log(page)
-        this.spaceList = page.content || []
-        this.totalPages = page.totalPages
-        this.totalElements = page.totalElements
-      }
-      const error = response => {
-        console.log('error', response)
-      }
-
-      axios.get('/api/user/space//showSpaceByPagination', { params }).then(success).catch(
-        error)
-    },
-    jumpPage (page) {
-      if (!page || page <= 0) {
-        this.pageParams.page = 1
-      } else if (page > this.totalPages) {
-        this.pageParams.page = this.totalPages
-      } else {
-        this.pageParams.page = page
-      }
-
-      this.loadSpaceList()
-    },
-    searchSpaceInfo () {
-      this.loadSpaceList()
-
-      this.showSearch = false
-      this.pageParams.spaceName = ''
-      this.pageParams.businessCode = ''
-    },
-    switchStatus (status) {
-      this.pageParams.validCode = status
-
-      this.loadSpaceList()
-    },
-    showEditDialog (space) {
-      this.selectedSpace = space || {}
-      this.showModal = true
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style>
-
-</style>

+ 0 - 229
sso-manage-console-web/src/components/userspace/modal/SpaceEditModal.vue

@@ -1,229 +0,0 @@
-<template>
-  <div class="modal fade in" role="dialog" aria-hidden="false" style="display: block;" v-if="isVisible">
-    <div class="modal-dialog x-modal-dialog modal-lg" role="document">
-      <div class="modal-content">
-        <!-- tab切换 start-->
-        <ul class="nav nav-tabs x-nav-tabs x-navbar-right hidden-xs modal-header" role="tablist">
-          <!--<li :class="{active: showTab === 'logs'}"><a aria-controls="userSpaceDetailModal_log" role="tab" data-toggle="tab" aria-expanded="false" @click="showTab = 'logs'">操作日志</a></li>-->
-          <li :class="{active: showTab === 'apps'}"><a aria-controls="userSpaceDetailModal_apps" role="tab" data-toggle="tab" aria-expanded="false" @click="showTab = 'apps'">绑定应用</a></li>
-          <li :class="{active: showTab === 'default'}"><a aria-controls="userSpaceDetailModal_info" role="tab" data-toggle="tab" aria-expanded="true" @click="showTab = 'default'">详细资料</a></li>
-          <h2 class="hidden-xs">
-            <i class="fa fa-file-text-o"></i> {{data.spaceName}}
-          </h2>
-        </ul>
-        <!-- tab切换 end-->
-        <div role="tabpanel" id="userSpaceDetailModal_info" class="x-tab-pane" :class="{active: showTab === 'default'}">
-          <div class="modal-body">
-            <div class="x-group-header">
-              <h4>企业注册信息</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal">
-              <dt>企业名称</dt>
-              <dd id="primaryName">{{data.spaceName}} <span class="x-text-muted x-text-small" style="display: none">您可以根据营业执照
-							<a id="x-btn-renew" href="javascript:void(0);">修改</a></span></dd>
-              <dd id="renewName" style="display: none"><input type="text" value="深圳市超诚电子有限公司" name="renewName">
-                <span class="x-text-muted x-text-small">您可以根据营业执照
-							<a id="x-btn-cancel" href="javascript:void(0);">取消</a></span>
-              </dd>
-              <dt>企业简称</dt>
-              <dd id="primaryShortName">{{data.spaceName}}</dd>
-              <dd id="renewShortName" style="display: none"><input type="text" value="超诚电子有限公司" name="renewShortName">
-                <a id="x-btn-confirm" href="javascript:void(0);">确定</a>
-              </dd>
-              <dt>营业执照</dt>
-              <dd id="parimaryUid">
-                {{data.businessCode}}&nbsp;<a class="x-btn-image" href="javascript:void(0);" data-src="http://dfs.ubtob.com/group1/M00/0E/EC/CgpkyFf9smiAbYpKAAAklNd_Stw661.jpg">查看附件</a>
-              </dd>
-              <dd id="renewUid" style="display: none">
-                <input type="text" value="201678765678988" name="renewUid">
-              </dd>
-              <dt>注册地区</dt>
-              <dd>{{data.regAddress || '注册地区'}} <span class="x-text-muted x-text-small">您可以根据营业执照<a href="">填写</a></span></dd>
-              <dt>企业地址</dt>
-              <dd id="primaryAdress">{{data.companyAddress || '企业地址'}} <span class="x-text-muted x-text-small"></span></dd>
-              <dd id="renewAdress" style="display: none"><input type="text" value="广东省深圳市罗湖区罗湖路266号" name="renewAdress">
-              </dd>
-              <dt>所属行业</dt>
-              <dd>制造行业</dd>
-              <dt>官网地址</dt>
-              <dd>http://ww.exempIe.com</dd>
-            </dl>
-            <div class="x-group-header" v-show="data.admin">
-              <h4>管理员信息</h4>
-            </div>
-            <dl class="dl-horizontal x-dl-horizontal" v-show="data.admin">
-              <dt>姓名</dt>
-              <dd>王超</dd>
-              <dt>手机号</dt>
-              <dd>15866765672</dd>
-              <dt>邮箱</dt>
-              <dd>wangchao@exempIe.com &nbsp;
-                <a class="x-btn-send" style="display: none" href="javascript:void(0);" data-src="wangchao@exempIe.com">重新发送激活邮件</a>&nbsp;
-                <a class="btn x-btn x-btn-blank x-btn-editor" style="display: none" href="javascript:void(0);">邮箱填错了?修改一下</a>
-              </dd>
-              <dt class="x-dt" style="display: none">修改邮箱</dt>
-              <dd><div class="x-form-buttom" style="display: none">
-                <div class="col-sm-5" id="newEmail">
-                  <input type="text" class="form-control x-input" name="adEmail" x-pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$">
-                </div>
-              </div>
-                <a class="btn x-btn x-btn-blank x-editor-trigger" style="display: none" href="javascript:void(0);" data-src="">确定修改</a></dd>
-            </dl>
-            <div id="reasonWrap" style="display: none">
-              <div class="x-group-header">
-                <h4>审批意见</h4>
-              </div>
-              <dl class="dl-horizontal x-dl-horizontal">
-                <dt>失败原因</dt>
-                <dd></dd>
-              </dl>
-            </div>
-            <div id="auditWrap" style="">
-              <div class="x-group-header">
-                <h4>审批意见</h4>
-              </div>
-              <form class="x-form">
-                <div class="form-group">
-                  <label class="radio-inline"> <input type="radio" name="enable" value="1" checked=""> 批准通过
-                  </label> <label class="radio-inline"> <input type="radio" name="enable" value="0"> 残忍拒绝
-                </label>
-                </div>
-                <div class="form-group" id="reasonChooseWrap" style="display: none">
-                  <label>您拒绝的理由是?</label>
-                  <div class="radio">
-                    <label> <input type="radio" name="reason" value="营业执照附件看不清" checked=""> 营业执照附件不清晰
-                    </label>
-                  </div>
-                  <div class="radio">
-                    <label> <input type="radio" name="reason" value="营业执照附件上的企业名称与填写的企业名称不一致">
-                      营业执照附件上的企业名称与填写的企业名称不一致
-                    </label>
-                  </div>
-                  <div class="radio">
-                    <label> <input type="radio" name="reason" value="营业执照附件上的注册号与填写的营业执照号不一致">
-                      营业执照附件上的注册号与填写的营业执照号不一致
-                    </label>
-                  </div>
-                  <div class="radio">
-                    <label> <input type="radio" name="reason" value="other">
-                      其他原因
-                    </label>
-                  </div>
-                  <textarea id="otherReason" name="otherReason" class="form-control" placeholder="您拒绝的理由是?" style="display: none"></textarea>
-                </div>
-              </form>
-            </div>
-          </div>
-          <div class="modal-footer">
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-            <button type="button" class="btn btn-default btn-submit">确认</button>
-          </div>
-        </div>
-        <div role="tabpanel" id="userSpaceDetailModal_apps" class="x-tab-pane" :class="{active: showTab === 'apps'}">
-          <div class="modal-body">
-            <div class="x-mod x-list" style="margin: -15px">
-              <div class="x-mod-body">
-                <div class="x-common-list" id="apps" v-if="data.apps.length > 0">
-                  <!-- userspaces -->
-                  <div class="x-item" v-for="app in data.apps">
-                    <div class="x-icon"><i class="fa fa-file-o"></i></div>
-                    <p><span class="x-title text-info" v-text="app.description"></span><span
-                      class="pull-right x-text-muted" v-text="app.uid"></span></p>
-                    <div>
-                      <div class="x-text-muted" v-text="data.spaceName">公司名称<span
-                        class="pull-right" v-text="data.spaceUU">企业UU</span></div>
-                    </div>
-                  </div>
-                </div>
-                <div class="x-empty" v-if="data.apps.length === 0">
-                  <i class="fa fa-coffee"></i>
-                  <p>还没有绑定任何应用</p>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div class="modal-footer">
-            <div v-if="canBindApp" style="width: 300px; display: inline-block;">
-              <input type="text" v-model="appUid" placeholder="应用Uid,如b2b"/>
-              <button type="button" class="btn btn-blank" data-close="modal" @click="bindAppWithSpace(appUid)">保存</button>
-            </div>
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="canBindApp = true" v-show="!canBindApp">开通应用</button>
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-          </div>
-        </div>
-        <!--<div role="tabpanel" id="userSpaceDetailModal_log" class="x-tab-pane" :class="{active: showTab === 'logs'}">
-          <div class="modal-body">
-            &lt;!&ndash; 日志列表 start &ndash;&gt;
-            <div class="x-mod x-list x-log-list" style="margin: -15px">
-              <div class="x-mod-body">
-                <div class="x-common-list">
-                  &lt;!&ndash; log item &ndash;&gt;
-                </div>
-                <div class="x-empty" style="display: none">
-                  <i class="fa fa-coffee"></i>
-                  <p>还没有留下任何足迹!</p>
-                </div>
-              </div>
-            </div>
-            &lt;!&ndash; 日志列表 end &ndash;&gt;
-          </div>
-          <div class="modal-footer">
-            <ul class="pagination pull-left" style="margin: 0"></ul>
-            <button type="button" class="btn btn-blank" data-dismiss="modal" @click="isVisible = false">关闭</button>
-          </div>
-        </div>-->
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-  import axios from '@/assets/js/axios'
-
-  export default {
-    name: 'SpaceEditModal',
-    props: {
-      visible: Boolean,
-      data: Object
-    },
-    data () {
-      return {
-        isVisible: false,
-        showTab: 'default',
-        canBindApp: false,
-        appUid: ''
-      }
-    },
-    watch: {
-      visible: function (value) {
-        this.isVisible = value
-      },
-      isVisible: function (value) {
-        this.$emit('update:visible', value)
-      }
-    },
-    methods: {
-      bindAppWithSpace (appUid) {
-        console.log(appUid)
-        const params = { appUid: appUid }
-
-        const success = status => {
-          if (status) {
-            this.isVisible = false
-            this.canBindApp = false
-          }
-        }
-        const error = response => {
-          alert(response)
-          console.log('error', response)
-        }
-
-        axios.put(`/api/user/space/${this.data.spaceUU}/bindAppWithSpace`, {}, { params }).then(success).catch(error)
-      }
-    }
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 46
sso-manage-console-web/src/router/index.js

@@ -1,14 +1,6 @@
 import Vue from 'vue'
 import Router from 'vue-router'
 import Index from '@/components/Index'
-import AppHome from '@/components/app/AppHome'
-import AppList from '@/components/app/AppList'
-import UserSpaceHome from '@/components/userspace/UserSpaceHome'
-import UserHomeOld from '@/components/user/UserHome'
-import ChangeAdmin from '@/components/admin/ChangeAdmin'
-import AssetHome from '@/components/asset/AssetHome'
-import SettingsHome from '@/components/settings/SettingsHome'
-import {BackHome} from '@/components/back'
 import AccountIndex from '@/components/accounts/AccountIndex'
 import {
   EnterpriseAdmin, EnterpriseBaseAction, EnterpriseBasicInfo,
@@ -106,44 +98,6 @@ export default new Router({
           component: AppealHome
         }
       ]
-    },
-    {
-      path: '/app',
-      component: AppHome
-    },
-    {
-      // TODO 测试路由
-      path: '/app/list',
-      component: AppList
-    },
-    {
-      // TODO 测试路由
-      path: '/app_list',
-      component: AppList
-    },
-    {
-      path: '/user_space',
-      component: UserSpaceHome
-    },
-    {
-      path: '/user',
-      component: UserHomeOld
-    },
-    {
-      path: '/admin',
-      component: ChangeAdmin
-    },
-    {
-      path: '/asset',
-      component: AssetHome
-    },
-    {
-      path: '/settings',
-      component: SettingsHome
-    },
-    {
-      path: '/admin/back',
-      component: BackHome
     }
   ]
 })

+ 3 - 3
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -1,9 +1,6 @@
 package com.uas.sso.entity;
 
 import com.alibaba.fastjson.annotation.JSONField;
-import com.fasterxml.jackson.annotation.JsonTypeId;
-import org.codehaus.jackson.annotate.JsonIgnore;
-
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.HashSet;
@@ -19,6 +16,7 @@ import javax.persistence.ManyToMany;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
+import org.codehaus.jackson.annotate.JsonIgnore;
 
 /**
  * 用户信息
@@ -189,6 +187,7 @@ public class User implements Serializable {
     /**
      * 用户登录记录
      */
+    @com.fasterxml.jackson.annotation.JsonIgnore
     @OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST})
     @JoinColumn(name = "record_id")
     private UserRecord userRecord;
@@ -200,6 +199,7 @@ public class User implements Serializable {
     @JoinColumn(name = "useruu", nullable = false)
     private List<UserQuestion> questions;
 
+    @com.fasterxml.jackson.annotation.JsonIgnore
     @ManyToMany(mappedBy = "users")
     private Set<Userspace> userSpaces = new HashSet<>();