vue2-client 1.6.63-single → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/.env +15 -15
  2. package/CHANGELOG.md +6 -0
  3. package/Components.md +60 -0
  4. package/index.js +39 -30
  5. package/package.json +4 -2
  6. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +1 -1
  7. package/src/base-client/components/common/CitySelect/CitySelect.vue +247 -247
  8. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  9. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +735 -735
  10. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +466 -460
  11. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +510 -510
  12. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +144 -138
  13. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  14. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  15. package/src/base-client/components/common/Upload/Upload.vue +3 -3
  16. package/src/base-client/components/common/XAddForm/XAddForm.vue +72 -72
  17. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +365 -365
  18. package/src/base-client/components/common/XAddNativeForm/index.md +96 -56
  19. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  20. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -0
  21. package/src/base-client/components/common/XDataDrawer/index.js +3 -0
  22. package/src/base-client/components/common/XDataDrawer/index.md +41 -0
  23. package/src/base-client/components/common/XForm/XForm.vue +178 -178
  24. package/src/base-client/components/common/XForm/XFormItem.vue +521 -521
  25. package/src/base-client/components/common/XForm/XTreeSelect.vue +184 -184
  26. package/src/base-client/components/common/XFormCol/XFormCol.vue +38 -38
  27. package/src/base-client/components/common/XFormTable/XFormTable.vue +356 -348
  28. package/src/base-client/components/common/XFormTable/index.md +97 -97
  29. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +1 -1
  30. package/src/base-client/components/common/XTable/XTable.vue +519 -519
  31. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +111 -111
  32. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +1 -1
  33. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +1 -1
  34. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +1 -1
  35. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  36. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  37. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +1 -1
  38. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  39. package/src/base-client/plugins/AppData.js +76 -76
  40. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  41. package/src/base-client/plugins/PagedList.js +177 -177
  42. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  43. package/src/base-client/plugins/i18n-extend.js +32 -32
  44. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  45. package/src/components/Ellipsis/index.md +38 -38
  46. package/src/components/NumberInfo/index.md +43 -43
  47. package/src/components/STable/README.md +341 -341
  48. package/src/components/STable/index.js +318 -318
  49. package/src/components/Trend/index.md +45 -45
  50. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  51. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  52. package/src/components/exception/ExceptionPage.vue +70 -70
  53. package/src/components/form/FormRow.vue +52 -52
  54. package/src/components/index.js +36 -36
  55. package/src/components/menu/SideMenu.vue +62 -62
  56. package/src/components/menu/menu.js +273 -273
  57. package/src/components/page/header/index.less +40 -40
  58. package/src/components/setting/Setting.vue +235 -235
  59. package/src/components/table/StandardTable.vue +141 -141
  60. package/src/components/table/advance/ActionColumns.vue +158 -158
  61. package/src/components/table/advance/SearchArea.vue +355 -355
  62. package/src/components/tool/AStepItem.vue +60 -60
  63. package/src/components/tool/AvatarList.vue +68 -68
  64. package/src/components/tool/Drawer.vue +142 -142
  65. package/src/components/tool/TagSelect.vue +83 -83
  66. package/src/components/transition/PageToggleTransition.vue +97 -97
  67. package/src/config/CreateQueryConfig.js +307 -307
  68. package/src/config/default/admin.config.js +18 -18
  69. package/src/config/default/setting.config.js +48 -48
  70. package/src/config/replacer/resolve.config.js +67 -67
  71. package/src/layouts/CommonLayout.vue +42 -42
  72. package/src/layouts/ComponentLayoutOne.vue +47 -47
  73. package/src/layouts/PageLayout.vue +151 -151
  74. package/src/layouts/SinglePageView.vue +116 -116
  75. package/src/layouts/footer/PageFooter.vue +49 -49
  76. package/src/layouts/header/AdminHeader.vue +134 -134
  77. package/src/layouts/header/HeaderAvatar.vue +64 -64
  78. package/src/layouts/header/HeaderNotice.vue +1 -1
  79. package/src/layouts/header/HeaderSearch.vue +67 -67
  80. package/src/layouts/header/InstitutionDetail.vue +2 -2
  81. package/src/layouts/header/index.less +92 -92
  82. package/src/layouts/tabs/TabsHead.vue +190 -190
  83. package/src/layouts/tabs/TabsView.vue +379 -379
  84. package/src/mock/goods/index.js +108 -108
  85. package/src/pages/CreateQueryPage.vue +2 -2
  86. package/src/pages/login/Login.vue +369 -369
  87. package/src/pages/report/ReportTable.js +124 -124
  88. package/src/pages/report/ReportTableHome.vue +1 -1
  89. package/src/pages/resourceManage/orgListManage.vue +98 -98
  90. package/src/pages/system/dictionary/index.vue +1 -1
  91. package/src/pages/system/file/index.vue +3 -3
  92. package/src/pages/system/monitor/loginInfor/index.vue +1 -1
  93. package/src/pages/system/monitor/operLog/index.vue +1 -1
  94. package/src/pages/system/settings/index.vue +126 -126
  95. package/src/pages/system/settings/modifyPassword.vue +109 -109
  96. package/src/router/async/config.async.js +28 -28
  97. package/src/router/async/router.map.js +66 -74
  98. package/src/router/guards.js +153 -153
  99. package/src/router/index.js +27 -27
  100. package/src/services/api/DictionaryDetailsViewApi.js +1 -1
  101. package/src/services/api/LogDetailsViewApi.js +3 -3
  102. package/src/services/api/QueryParamsDetailsViewApi.js +1 -1
  103. package/src/services/api/TicketDetailsViewApi.js +15 -15
  104. package/src/services/api/cas.js +79 -79
  105. package/src/services/api/common.js +18 -13
  106. package/src/services/api/commonTempTable.js +3 -3
  107. package/src/services/api/index.js +17 -17
  108. package/src/services/api/logininfor/index.js +1 -1
  109. package/src/services/api/manage.js +2 -2
  110. package/src/services/apiService.js +14 -14
  111. package/src/services/user.js +67 -67
  112. package/src/store/modules/index.js +4 -4
  113. package/src/theme/default/nprogress.less +76 -76
  114. package/src/theme/default/style.less +58 -58
  115. package/src/utils/EncryptUtil.js +53 -53
  116. package/src/utils/colors.js +107 -107
  117. package/src/utils/excel/Blob.js +180 -180
  118. package/src/utils/excel/Export2Excel.js +141 -141
  119. package/src/utils/formatter.js +68 -68
  120. package/src/utils/i18n.js +80 -80
  121. package/src/utils/login.js +138 -138
  122. package/src/utils/map-utils.js +37 -37
  123. package/src/utils/theme-color-replacer-extend.js +91 -91
  124. package/src/utils/themeUtil.js +100 -100
  125. package/src/utils/util.js +230 -230
  126. package/vue.config.js +106 -106
  127. package/src/pages/system/queryParams/index.vue +0 -43
@@ -1,134 +1,134 @@
1
- <template>
2
- <a-layout-header :class="[headerTheme, 'admin-header']">
3
- <div :class="['admin-header-wide', layout, pageWidth]">
4
- <router-link v-if="isMobile || layout === 'head'" :class="['logo', isMobile ? null : 'pc', headerTheme]" to="/">
5
- <img :src="logoSrc" width="32" alt="logo"/>
6
- <h1 v-if="!isMobile">{{ systemName }}</h1>
7
- </router-link>
8
- <a-divider v-if="isMobile" type="vertical" />
9
- <a-icon v-if="layout !== 'head'" :type="collapsed ? 'menu-unfold' : 'menu-fold'" class="trigger" @click="toggleCollapse"/>
10
- <div v-if="layout !== 'side' && !isMobile" :style="`width: ${menuWidth};`" class="admin-header-menu">
11
- <i-menu :options="menuData" :theme="headerTheme" class="head-menu" mode="horizontal" @select="onSelect"/>
12
- </div>
13
- <div :class="['admin-header-right', headerTheme]">
14
- <component class="header-item" :is="dynamicComponents['HeaderSearch']" @active="val => searchActive = val"/>
15
- <a-tooltip class="header-item" placement="bottom" title="清理查询缓存" >
16
- <a @click="handleToClearCache">
17
- <a-icon type="reload" />
18
- </a>
19
- </a-tooltip>
20
- <component class="header-item" :is="dynamicComponents['HeaderNotice']"/>
21
- <header-avatar class="header-item"/>
22
- <a-dropdown class="lang header-item">
23
- <div>
24
- <a-icon type="global"/> {{ langAlias }}
25
- </div>
26
- <a-menu slot="overlay" :selected-keys="[lang]" @click="val => setLang(val.key)">
27
- <a-menu-item v-for=" lang in langList" :key="lang.key">{{ lang.key.toLowerCase() + ' ' + lang.name }}</a-menu-item>
28
- </a-menu>
29
- </a-dropdown>
30
- </div>
31
- </div>
32
- </a-layout-header>
33
- </template>
34
-
35
- <script>
36
- import HeaderSearch from './HeaderSearch'
37
- import HeaderAvatar from './HeaderAvatar'
38
- import IMenu from '@vue2-client/components/menu/menu'
39
- import { mapState, mapMutations } from 'vuex'
40
- import { Modal } from 'ant-design-vue'
41
- import { indexedDB } from '@vue2-client/utils/indexedDB'
42
-
43
- const loadComponents = (value) => {
44
- const component = {
45
- HeaderSearch: import('./HeaderSearch'),
46
- HeaderNotice: import('./HeaderNotice'),
47
- }
48
- if (!value) {
49
- return component
50
- }
51
- for (const item in component) {
52
- const path = value[item]
53
- if (path) {
54
- component[item] = import(`@/layouts/header/${path}`)
55
- }
56
- }
57
- return component
58
- }
59
-
60
- export default {
61
- name: 'AdminHeader',
62
- components: { IMenu, HeaderAvatar, HeaderSearch },
63
- // eslint-disable-next-line vue/require-prop-types
64
- props: ['collapsed', 'menuData'],
65
- data () {
66
- return {
67
- langList: [
68
- { key: 'CN', name: '简体中文', alias: '简体' },
69
- { key: 'HK', name: '繁體中文', alias: '繁體' },
70
- { key: 'US', name: 'English', alias: 'English' }
71
- ],
72
- searchActive: false,
73
- dynamicComponents: {}
74
- }
75
- },
76
- computed: {
77
- ...mapState('setting', ['theme', 'isMobile', 'layout', 'systemName', 'logoSrc', 'lang', 'pageWidth', 'customizeComponent']),
78
- headerTheme () {
79
- if (this.layout === 'side' && this.theme.mode === 'dark' && !this.isMobile) {
80
- return 'light'
81
- }
82
- return this.theme.mode
83
- },
84
- langAlias () {
85
- const lang = this.langList.find(item => item.key === this.lang)
86
- return lang.alias
87
- },
88
- menuWidth () {
89
- const { layout, searchActive } = this
90
- const headWidth = layout === 'head' ? '100% - 188px' : '100%'
91
- const extraWidth = searchActive ? '600px' : '400px'
92
- return `calc(${headWidth} - ${extraWidth})`
93
- }
94
- },
95
- created () {
96
- const components = loadComponents(this.customizeComponent)
97
- for (const item in components) {
98
- const value = components[item]
99
- if (typeof value === 'function') {
100
- this.$set(this.dynamicComponents, item, value)
101
- } else {
102
- components[item].then(result => {
103
- this.$set(this.dynamicComponents, item, result.default)
104
- })
105
- }
106
- }
107
- },
108
- methods: {
109
- toggleCollapse () {
110
- this.$emit('toggleCollapse')
111
- },
112
- onSelect (obj) {
113
- this.$emit('menuSelect', obj)
114
- },
115
- handleToClearCache () {
116
- Modal.confirm({
117
- title: '信息',
118
- content: '您确定要清除查询配置缓存吗?',
119
- onOk: () => {
120
- indexedDB.clear(() => {
121
- location.reload()
122
- })
123
- },
124
- onCancel () {}
125
- })
126
- },
127
- ...mapMutations('setting', ['setLang'])
128
- }
129
- }
130
- </script>
131
-
132
- <style lang="less" scoped>
133
- @import "index";
134
- </style>
1
+ <template>
2
+ <a-layout-header :class="[headerTheme, 'admin-header']">
3
+ <div :class="['admin-header-wide', layout, pageWidth]">
4
+ <router-link v-if="isMobile || layout === 'head'" :class="['logo', isMobile ? null : 'pc', headerTheme]" to="/">
5
+ <img :src="logoSrc" width="32" alt="logo"/>
6
+ <h1 v-if="!isMobile">{{ systemName }}</h1>
7
+ </router-link>
8
+ <a-divider v-if="isMobile" type="vertical" />
9
+ <a-icon v-if="layout !== 'head'" :type="collapsed ? 'menu-unfold' : 'menu-fold'" class="trigger" @click="toggleCollapse"/>
10
+ <div v-if="layout !== 'side' && !isMobile" :style="`width: ${menuWidth};`" class="admin-header-menu">
11
+ <i-menu :options="menuData" :theme="headerTheme" class="head-menu" mode="horizontal" @select="onSelect"/>
12
+ </div>
13
+ <div :class="['admin-header-right', headerTheme]">
14
+ <component class="header-item" :is="dynamicComponents['HeaderSearch']" @active="val => searchActive = val"/>
15
+ <a-tooltip class="header-item" placement="bottom" title="清理查询缓存" >
16
+ <a @click="handleToClearCache">
17
+ <a-icon type="reload" />
18
+ </a>
19
+ </a-tooltip>
20
+ <component class="header-item" :is="dynamicComponents['HeaderNotice']"/>
21
+ <header-avatar class="header-item"/>
22
+ <a-dropdown class="lang header-item">
23
+ <div>
24
+ <a-icon type="global"/> {{ langAlias }}
25
+ </div>
26
+ <a-menu slot="overlay" :selected-keys="[lang]" @click="val => setLang(val.key)">
27
+ <a-menu-item v-for=" lang in langList" :key="lang.key">{{ lang.key.toLowerCase() + ' ' + lang.name }}</a-menu-item>
28
+ </a-menu>
29
+ </a-dropdown>
30
+ </div>
31
+ </div>
32
+ </a-layout-header>
33
+ </template>
34
+
35
+ <script>
36
+ import HeaderSearch from './HeaderSearch'
37
+ import HeaderAvatar from './HeaderAvatar'
38
+ import IMenu from '@vue2-client/components/menu/menu'
39
+ import { mapState, mapMutations } from 'vuex'
40
+ import { Modal } from 'ant-design-vue'
41
+ import { indexedDB } from '@vue2-client/utils/indexedDB'
42
+
43
+ const loadComponents = (value) => {
44
+ const component = {
45
+ HeaderSearch: import('./HeaderSearch'),
46
+ HeaderNotice: import('./HeaderNotice'),
47
+ }
48
+ if (!value) {
49
+ return component
50
+ }
51
+ for (const item in component) {
52
+ const path = value[item]
53
+ if (path) {
54
+ component[item] = import(`@/layouts/header/${path}`)
55
+ }
56
+ }
57
+ return component
58
+ }
59
+
60
+ export default {
61
+ name: 'AdminHeader',
62
+ components: { IMenu, HeaderAvatar, HeaderSearch },
63
+ // eslint-disable-next-line vue/require-prop-types
64
+ props: ['collapsed', 'menuData'],
65
+ data () {
66
+ return {
67
+ langList: [
68
+ { key: 'CN', name: '简体中文', alias: '简体' },
69
+ { key: 'HK', name: '繁體中文', alias: '繁體' },
70
+ { key: 'US', name: 'English', alias: 'English' }
71
+ ],
72
+ searchActive: false,
73
+ dynamicComponents: {}
74
+ }
75
+ },
76
+ computed: {
77
+ ...mapState('setting', ['theme', 'isMobile', 'layout', 'systemName', 'logoSrc', 'lang', 'pageWidth', 'customizeComponent']),
78
+ headerTheme () {
79
+ if (this.layout === 'side' && this.theme.mode === 'dark' && !this.isMobile) {
80
+ return 'light'
81
+ }
82
+ return this.theme.mode
83
+ },
84
+ langAlias () {
85
+ const lang = this.langList.find(item => item.key === this.lang)
86
+ return lang.alias
87
+ },
88
+ menuWidth () {
89
+ const { layout, searchActive } = this
90
+ const headWidth = layout === 'head' ? '100% - 188px' : '100%'
91
+ const extraWidth = searchActive ? '600px' : '400px'
92
+ return `calc(${headWidth} - ${extraWidth})`
93
+ }
94
+ },
95
+ created () {
96
+ const components = loadComponents(this.customizeComponent)
97
+ for (const item in components) {
98
+ const value = components[item]
99
+ if (typeof value === 'function') {
100
+ this.$set(this.dynamicComponents, item, value)
101
+ } else {
102
+ components[item].then(result => {
103
+ this.$set(this.dynamicComponents, item, result.default)
104
+ })
105
+ }
106
+ }
107
+ },
108
+ methods: {
109
+ toggleCollapse () {
110
+ this.$emit('toggleCollapse')
111
+ },
112
+ onSelect (obj) {
113
+ this.$emit('menuSelect', obj)
114
+ },
115
+ handleToClearCache () {
116
+ Modal.confirm({
117
+ title: '信息',
118
+ content: '您确定要清除查询配置缓存吗?',
119
+ onOk: () => {
120
+ indexedDB.clear(() => {
121
+ location.reload()
122
+ })
123
+ },
124
+ onCancel () {}
125
+ })
126
+ },
127
+ ...mapMutations('setting', ['setLang'])
128
+ }
129
+ }
130
+ </script>
131
+
132
+ <style lang="less" scoped>
133
+ @import "index";
134
+ </style>
@@ -1,64 +1,64 @@
1
- <template>
2
- <a-dropdown>
3
- <div class="header-avatar" style="cursor: pointer">
4
- <a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
5
- <span class="name">{{ user.name }}</span>
6
- </div>
7
- <a-menu :class="['avatar-menu']" slot="overlay">
8
- <a-menu-item>
9
- <a-icon type="user" />
10
- <span>个人中心</span>
11
- </a-menu-item>
12
- <a-menu-item @click="handleToSettings">
13
- <a-icon type="setting"/>
14
- <span>设置</span>
15
- </a-menu-item>
16
- <a-menu-divider />
17
- <a-menu-item @click="logout">
18
- <a-icon style="margin-right: 8px;" type="poweroff" />
19
- <span>退出登录</span>
20
- </a-menu-item>
21
- </a-menu>
22
- </a-dropdown>
23
- </template>
24
-
25
- <script>
26
- import { mapGetters } from 'vuex'
27
- import { logout } from '@vue2-client/services/user'
28
-
29
- export default {
30
- name: 'HeaderAvatar',
31
- computed: {
32
- ...mapGetters('account', ['user'])
33
- },
34
- methods: {
35
- handleToSettings () {
36
- this.$router.push({ path: '/system/settings' })
37
- },
38
- logout () {
39
- logout().finally(res => {
40
- location.href = '/login'
41
- })
42
- }
43
- }
44
- }
45
- </script>
46
-
47
- <style lang="less">
48
- .header-avatar{
49
- display: inline-flex;
50
- .avatar, .name{
51
- align-self: center;
52
- }
53
- .avatar{
54
- margin-right: 8px;
55
- }
56
- .name{
57
- font-weight: 500;
58
- }
59
- }
60
- .avatar-menu{
61
- width: 150px;
62
- }
63
-
64
- </style>
1
+ <template>
2
+ <a-dropdown>
3
+ <div class="header-avatar" style="cursor: pointer">
4
+ <a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
5
+ <span class="name">{{ user.name }}</span>
6
+ </div>
7
+ <a-menu :class="['avatar-menu']" slot="overlay">
8
+ <a-menu-item>
9
+ <a-icon type="user" />
10
+ <span>个人中心</span>
11
+ </a-menu-item>
12
+ <a-menu-item @click="handleToSettings">
13
+ <a-icon type="setting"/>
14
+ <span>设置</span>
15
+ </a-menu-item>
16
+ <a-menu-divider />
17
+ <a-menu-item @click="logout">
18
+ <a-icon style="margin-right: 8px;" type="poweroff" />
19
+ <span>退出登录</span>
20
+ </a-menu-item>
21
+ </a-menu>
22
+ </a-dropdown>
23
+ </template>
24
+
25
+ <script>
26
+ import { mapGetters } from 'vuex'
27
+ import { logout } from '@vue2-client/services/user'
28
+
29
+ export default {
30
+ name: 'HeaderAvatar',
31
+ computed: {
32
+ ...mapGetters('account', ['user'])
33
+ },
34
+ methods: {
35
+ handleToSettings () {
36
+ this.$router.push({ path: '/system/settings' })
37
+ },
38
+ logout () {
39
+ logout().finally(res => {
40
+ location.href = '/login'
41
+ })
42
+ }
43
+ }
44
+ }
45
+ </script>
46
+
47
+ <style lang="less">
48
+ .header-avatar{
49
+ display: inline-flex;
50
+ .avatar, .name{
51
+ align-self: center;
52
+ }
53
+ .avatar{
54
+ margin-right: 8px;
55
+ }
56
+ .name{
57
+ font-weight: 500;
58
+ }
59
+ }
60
+ .avatar-menu{
61
+ width: 150px;
62
+ }
63
+
64
+ </style>
@@ -86,7 +86,7 @@ export default {
86
86
  this.institutionDetailVisible = false
87
87
  try {
88
88
  if (this.$login.f.name) {
89
- post('/api/af-system/logic/getTodo', { name: this.$login.f.name }).then(res => {
89
+ post('/api/system/logic/getTodo', { name: this.$login.f.name }).then(res => {
90
90
  this.backlog = [...res]
91
91
  if (this.backlog.length > 0) {
92
92
  const key = `open${Date.now()}`
@@ -1,67 +1,67 @@
1
- <template>
2
- <div class="header-search">
3
- <a-icon type="search" class="search-icon" @click="enterSearchMode"/>
4
- <a-auto-complete
5
- ref="input"
6
- :getPopupContainer="e => {return e.parentNode || document.body}"
7
- :dataSource="dataSource"
8
- :class="['search-input', searchMode ? 'enter' : 'leave']"
9
- placeholder="站内搜索"
10
- @blur="leaveSearchMode"
11
- >
12
- </a-auto-complete>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- export default {
18
- name: 'HeaderSearch',
19
- data () {
20
- return {
21
- dataSource: ['选项一', '选项二'],
22
- searchMode: false
23
- }
24
- },
25
- methods: {
26
- enterSearchMode () {
27
- this.searchMode = true
28
- this.$emit('active', true)
29
- setTimeout(() => this.$refs.input.focus(), 300)
30
- },
31
- leaveSearchMode () {
32
- this.searchMode = false
33
- setTimeout(() => this.$emit('active', false), 300)
34
- }
35
- }
36
- }
37
- </script>
38
-
39
- <style lang="less">
40
- .header-search{
41
- .search-icon{
42
- font-size: 16px;
43
- cursor: pointer;
44
- }
45
- .search-input{
46
- border: 0;
47
- border-bottom: 1px solid @border-color-split;
48
- transition: width 0.3s ease-in-out;
49
- input{
50
- border: 0;
51
- box-shadow: 0 0 0 0;
52
- }
53
- &.leave{
54
- width: 0;
55
- input{
56
- display: none;
57
- }
58
- }
59
- &.enter{
60
- width: 200px;
61
- input:focus{
62
- box-shadow: 0 0 0 0;
63
- }
64
- }
65
- }
66
- }
67
- </style>
1
+ <template>
2
+ <div class="header-search">
3
+ <a-icon type="search" class="search-icon" @click="enterSearchMode"/>
4
+ <a-auto-complete
5
+ ref="input"
6
+ :getPopupContainer="e => {return e.parentNode || document.body}"
7
+ :dataSource="dataSource"
8
+ :class="['search-input', searchMode ? 'enter' : 'leave']"
9
+ placeholder="站内搜索"
10
+ @blur="leaveSearchMode"
11
+ >
12
+ </a-auto-complete>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ export default {
18
+ name: 'HeaderSearch',
19
+ data () {
20
+ return {
21
+ dataSource: ['选项一', '选项二'],
22
+ searchMode: false
23
+ }
24
+ },
25
+ methods: {
26
+ enterSearchMode () {
27
+ this.searchMode = true
28
+ this.$emit('active', true)
29
+ setTimeout(() => this.$refs.input.focus(), 300)
30
+ },
31
+ leaveSearchMode () {
32
+ this.searchMode = false
33
+ setTimeout(() => this.$emit('active', false), 300)
34
+ }
35
+ }
36
+ }
37
+ </script>
38
+
39
+ <style lang="less">
40
+ .header-search{
41
+ .search-icon{
42
+ font-size: 16px;
43
+ cursor: pointer;
44
+ }
45
+ .search-input{
46
+ border: 0;
47
+ border-bottom: 1px solid @border-color-split;
48
+ transition: width 0.3s ease-in-out;
49
+ input{
50
+ border: 0;
51
+ box-shadow: 0 0 0 0;
52
+ }
53
+ &.leave{
54
+ width: 0;
55
+ input{
56
+ display: none;
57
+ }
58
+ }
59
+ &.enter{
60
+ width: 200px;
61
+ input:focus{
62
+ box-shadow: 0 0 0 0;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ </style>
@@ -81,7 +81,7 @@ export default {
81
81
  return
82
82
  }
83
83
  const otherFiles = []
84
- post('/api/af-system/logic/getInstitutionDetail', {
84
+ post('/api/system/logic/getInstitutionDetail', {
85
85
  id: this.institutionId
86
86
  }).then(res => {
87
87
  res.files.forEach(item => {
@@ -116,7 +116,7 @@ export default {
116
116
  a.click()
117
117
  },
118
118
  confirm_institution () {
119
- post('/api/af-system/logic/affirmInstitution', {
119
+ post('/api/system/logic/affirmInstitution', {
120
120
  data: {
121
121
  tobe: [
122
122
  {