yh-pub 1.0.2 → 2.0.2

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 (94) hide show
  1. package/AdminLogin-W5d0M-rz.js +137 -0
  2. package/AdminLogin-W5d0M-rz.js.map +1 -0
  3. package/Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js +54 -0
  4. package/Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js.map +1 -0
  5. package/Error-BZ9xAkuT.js +43 -0
  6. package/Error-BZ9xAkuT.js.map +1 -0
  7. package/Error401-DrA7Y9h3.js +30 -0
  8. package/Error401-DrA7Y9h3.js.map +1 -0
  9. package/Error404-C5K4o1R3.js +30 -0
  10. package/Error404-C5K4o1R3.js.map +1 -0
  11. package/Error500-D9nu1xhW.js +30 -0
  12. package/Error500-D9nu1xhW.js.map +1 -0
  13. package/HomeIndex-DnGu5xD0.js +438 -0
  14. package/HomeIndex-DnGu5xD0.js.map +1 -0
  15. package/IconExplorer-IvNeUIhq.js +66 -0
  16. package/IconExplorer-IvNeUIhq.js.map +1 -0
  17. package/Index-BMd4lEnI.js +5 -0
  18. package/Index-BMd4lEnI.js.map +1 -0
  19. package/MainLogin-CgJLift-.js +153 -0
  20. package/MainLogin-CgJLift-.js.map +1 -0
  21. package/MenuManage-BJkQPgpt.js +640 -0
  22. package/MenuManage-BJkQPgpt.js.map +1 -0
  23. package/OrgManage-jLpAnwf4.js +378 -0
  24. package/OrgManage-jLpAnwf4.js.map +1 -0
  25. package/RoleManage-D2RwwJoM.js +729 -0
  26. package/RoleManage-D2RwwJoM.js.map +1 -0
  27. package/SysConfig-CYcl0wCh.js +727 -0
  28. package/SysConfig-CYcl0wCh.js.map +1 -0
  29. package/TenantList-CNVwmoEt.js +693 -0
  30. package/TenantList-CNVwmoEt.js.map +1 -0
  31. package/index-C75ufNln.js +49816 -0
  32. package/index-C75ufNln.js.map +1 -0
  33. package/index-wVC41gTc.js +23955 -0
  34. package/index-wVC41gTc.js.map +1 -0
  35. package/index.d.ts +35 -0
  36. package/index.es.js +66 -0
  37. package/index.es.js.map +1 -0
  38. package/package.json +26 -6
  39. package/style.css +1 -0
  40. package/README.MD +0 -19
  41. package/layout/admin/adminIndex.vue +0 -104
  42. package/layout/admin/api/loginApi.js +0 -24
  43. package/layout/admin/api/routers.js +0 -93
  44. package/layout/admin/api/tenantApi.js +0 -123
  45. package/layout/admin/home/homeIndex.vue +0 -25
  46. package/layout/admin/login/login.vue +0 -161
  47. package/layout/admin/menu/MenuIndex.vue +0 -648
  48. package/layout/admin/menu/icon.vue +0 -108
  49. package/layout/admin/menu/iconList.js +0 -934
  50. package/layout/admin/saTenant/saTenant.js +0 -0
  51. package/layout/admin/saTenant/saTenant.vue +0 -173
  52. package/layout/admin/saTenant/saTenantForm.js +0 -80
  53. package/layout/admin/saTenant/saTenantForm.vue +0 -61
  54. package/layout/admin/saTenant/saTenantRoleManage.js +0 -417
  55. package/layout/admin/saTenant/saTenantRoleManage.vue +0 -99
  56. package/layout/admin/user/saUser.less +0 -6
  57. package/layout/admin/user/saUser.vue +0 -72
  58. package/layout/main/components/console/console.vue +0 -205
  59. package/layout/main/components/error-store/error-store.vue +0 -72
  60. package/layout/main/components/error-store/index.js +0 -2
  61. package/layout/main/components/fullscreen/fullscreen.vue +0 -57
  62. package/layout/main/components/fullscreen/index.js +0 -2
  63. package/layout/main/components/language/language.vue +0 -71
  64. package/layout/main/components/side-menu/side-menu.less +0 -74
  65. package/layout/main/components/side-menu/side-menu.vue +0 -75
  66. package/layout/main/components/tags-nav/tags-nav.less +0 -45
  67. package/layout/main/components/tags-nav/tags-nav.vue +0 -144
  68. package/layout/main/components/user/user.less +0 -12
  69. package/layout/main/components/user/user.vue +0 -185
  70. package/layout/main/home/home.vue +0 -480
  71. package/layout/main/home/index.js +0 -2
  72. package/layout/main/home/toDoList.vue +0 -32
  73. package/layout/main/login/login.less +0 -93
  74. package/layout/main/login/login.vue +0 -151
  75. package/layout/main/main.less +0 -81
  76. package/layout/main/main.vue +0 -254
  77. package/layout/main/system/dict.vue +0 -64
  78. package/layout/main/system/orgManage.vue +0 -473
  79. package/layout/main/system/roleManage.js +0 -807
  80. package/layout/main/system/roleManage.vue +0 -424
  81. package/view/basic/error-logger.vue +0 -74
  82. package/view/basic/error-page/401.vue +0 -22
  83. package/view/basic/error-page/404.vue +0 -22
  84. package/view/basic/error-page/500.vue +0 -22
  85. package/view/basic/error-page/back-btn-group.vue +0 -48
  86. package/view/basic/error-page/error-content.vue +0 -28
  87. package/view/basic/error-page/error.less +0 -46
  88. package/view/config/component/confFormItem.vue +0 -49
  89. package/view/config/config.scss +0 -45
  90. package/view/config/configIndex.vue +0 -150
  91. package/view/config/subPage/router-config.vue +0 -5
  92. package/view/config/subPage/sys-config.vue +0 -249
  93. package/view/window/IframeFReportView.vue +0 -28
  94. package/view/window/windowIndex.vue +0 -22
@@ -1,49 +0,0 @@
1
- <template>
2
- <el-col
3
- :xl="6"
4
- :lg="8"
5
- :md="12"
6
- :xs="24"
7
- class="conf-form-item">
8
- <el-form-item>
9
- <template #label>
10
- <div class="label">
11
- {{ label }}
12
- </div>
13
- <div class="tips">{{ tips }}</div>
14
- </template>
15
- <slot name="default"></slot>
16
- </el-form-item>
17
- </el-col>
18
- </template>
19
- <script>
20
- export default {
21
- name: "conf-form-item",
22
- props: ["label", "tips"],
23
- };
24
- </script>
25
- <style lang="scss">
26
- .conf-form-item {
27
- .el-form-item {
28
- .el-form-item__label {
29
- padding: 10px 0 0 0;
30
- display: flex;
31
- align-items: flex-end;
32
- .label {
33
- font-size: 16px;
34
- font-weight: 600;
35
- }
36
- .tips {
37
- flex: 1;
38
- text-align: right;
39
- color: var(--el-text-color-secondary);
40
- }
41
- }
42
- .el-form-item__content {
43
- .el-select {
44
- width: 100%;
45
- }
46
- }
47
- }
48
- }
49
- </style>
@@ -1,45 +0,0 @@
1
- .config-container {
2
- padding: 16px 8px 8px 0;
3
- display: flex;
4
- height: 100%;
5
- .config-navitor {
6
- .el-tabs {
7
- height: 100%;
8
- }
9
- }
10
- .config-context {
11
- flex: 1;
12
- .project-info {
13
- display: flex;
14
- padding: 0 0 16px 0;
15
- > * + * {
16
- margin-left: 10px;
17
- }
18
- }
19
- .config-upload {
20
- width: 100%;
21
- .el-upload-dragger {
22
- height: 32px;
23
- padding: 0;
24
- }
25
- .el-upload__text {
26
- color: var(--el-text-color-secondary);
27
- }
28
- }
29
- }
30
- }
31
- .can-use-config {
32
- height: 100%;
33
- display: flex;
34
- flex-direction: column;
35
- justify-content: center;
36
- align-items: center;
37
- h3 {
38
- font-size: 1.1em;
39
- font-weight: 600;
40
- color: var(--el-text-color-secondary);
41
- }
42
- ul {
43
- padding-left: 1em;
44
- }
45
- }
@@ -1,150 +0,0 @@
1
- <template>
2
- <section
3
- class="config-container"
4
- v-if="hasFSA">
5
- <aside class="config-navitor">
6
- <el-tabs
7
- tab-position="left"
8
- v-model="configType">
9
- <el-tab-pane
10
- name="sysConfig"
11
- label="系统配置"></el-tab-pane>
12
- <el-tab-pane
13
- name="routerConfig"
14
- label="路由配置"></el-tab-pane>
15
- </el-tabs>
16
- </aside>
17
- <main class="config-context">
18
- <section class="project-info">
19
- <template v-if="projectDirHandle">
20
- 当前目录:
21
- <el-tag>{{ projectDirHandle.name }}</el-tag>
22
- </template>
23
- <template v-else>
24
- <el-alert
25
- title="请先选择目录!"
26
- description="本工具,基于您选择的Vue3项目目录,请选择目录后使用"
27
- type="warning"
28
- :closable="false" />
29
- <el-button @click="chooseDirHandler">选择目录</el-button>
30
- </template>
31
- </section>
32
- <keep-alive v-if="projectDirHandle">
33
- <component
34
- :is="configType"
35
- :dir-handle="projectDirHandle"
36
- :routers="routers"></component>
37
- </keep-alive>
38
- </main>
39
- </section>
40
- <section
41
- class="can-use-config"
42
- v-else>
43
- <div>
44
- <h3>可视化配置功能使用了浏览器的文件AIP,对浏览器版本有要求</h3>
45
- <h3>您的浏览器无法支持本功能,请升级</h3>
46
- <ul>
47
- <li>Chrome 108+</li>
48
- <li>Edge 108+</li>
49
- <li>相同内核符合版本的浏览器</li>
50
- </ul>
51
- </div>
52
- </section>
53
- </template>
54
- <script>
55
- import sysConfig from "./subPage/sys-config.vue";
56
- import routerConfig from "./subPage/router-config.vue";
57
-
58
- import $ from "gogocode";
59
- import { hasFileSystemAccess, chooseDirectory, getChildFile } from "yh-fsa";
60
- import { defineComponent } from "vue";
61
-
62
- export default defineComponent({
63
- components: {
64
- sysConfig,
65
- routerConfig,
66
- },
67
- watch: {
68
- projectDirHandle: {
69
- async handler(val) {
70
- if (val !== null) {
71
- this.getPackageJSON();
72
- this.getRouters();
73
- } else {
74
- this.projectPackageJSON = null;
75
- this.routers = [];
76
- }
77
- },
78
- deep: true,
79
- },
80
- },
81
- data() {
82
- let hasFSA = hasFileSystemAccess();
83
- return {
84
- configType: "sysConfig",
85
- hasFSA,
86
- projectDirHandle: null,
87
- projectPackageJSON: null,
88
- routers: [],
89
- };
90
- },
91
- created() {},
92
- methods: {
93
- async chooseDirHandler() {
94
- this.projectDirHandle = await chooseDirectory({
95
- id: "configDirChoose",
96
- mode: "readwrite",
97
- startIn: "desktop",
98
- });
99
- },
100
- async getPackageJSON() {
101
- let packageJSONText = await getChildFile("package.json", this.projectDirHandle);
102
- if (packageJSONText) {
103
- this.projectPackageJSON = JSON.parse(packageJSONText);
104
- }
105
- },
106
- async getRouters() {
107
- let routerMap = new Map();
108
- const disposeRouter = (item, parentPath = "") => {
109
- if ("children" in item) {
110
- item.children.forEach((jItem) => {
111
- disposeRouter(jItem, item.path);
112
- });
113
- } else {
114
- let { path, name, meta } = item;
115
- path = parentPath ? `${parentPath}${path && parentPath !== "/" ? "/" : ""}${path}` : path;
116
- if (!["/401", "/conifg", "/500", "/:pathMatch(.*)*"].includes(path)) {
117
- routerMap.set(path, {
118
- path,
119
- name,
120
- meta,
121
- });
122
- }
123
- }
124
- };
125
- let pubRoutersText = await getChildFile("pub/router/routers.js", this.projectDirHandle);
126
- if (pubRoutersText) {
127
- let pubAST = $(pubRoutersText);
128
- pubAST.find("export const $_$1 = $_$2").each((node, index) => {
129
- eval(node[0].match[2][0].value).forEach((item) => {
130
- disposeRouter(item);
131
- });
132
- });
133
- }
134
- let customRoutersText = await getChildFile("src/router/routers.js", this.projectDirHandle);
135
- if (customRoutersText) {
136
- let customAST = $(customRoutersText);
137
- customAST.find("export const $_$1 = $_$2").each((node, index) => {
138
- eval(node[0].match[2][0].value).forEach((item) => {
139
- disposeRouter(item);
140
- });
141
- });
142
- }
143
- this.routers = [...routerMap.values()];
144
- },
145
- },
146
- });
147
- </script>
148
- <style lang="scss">
149
- @import "config.scss";
150
- </style>
@@ -1,5 +0,0 @@
1
- <template>
2
- <div>路由配置</div>
3
- </template>
4
- <script setup>
5
- </script>
@@ -1,249 +0,0 @@
1
- <template>
2
- <el-form label-position="top">
3
- <el-row gutter="20">
4
- <conf-form-item
5
- label="logo 图标"
6
- tips="建议:宽小于200像素,高小于50像素">
7
- <el-upload
8
- class="config-upload"
9
- drag
10
- accept="image/jpeg,image/png"
11
- :show-file-list="false"
12
- :before-upload="() => false"
13
- :on-change="logoChange">
14
- <div class="el-upload__text">点击选择,或拖拽图片至此</div>
15
- </el-upload>
16
- <div class="logo">
17
- <img
18
- class="logo-image"
19
- :src="config.logo || defaultLogo" />
20
- </div>
21
- </conf-form-item>
22
- <conf-form-item
23
- label="minLogo 小图标"
24
- tips="建议:宽小于64像素,高小于50像素">
25
- <el-upload
26
- class="config-upload"
27
- drag
28
- accept="image/jpeg,image/png"
29
- :show-file-list="false"
30
- :before-upload="() => false"
31
- :on-change="minLogoChange">
32
- <div class="el-upload__text">点击选择,或拖拽图片至此</div>
33
- </el-upload>
34
- <div class="logo-min">
35
- <img
36
- class="logo-image min"
37
- :src="config.minLogo || defaultMinLogo" />
38
- </div>
39
- </conf-form-item>
40
- <conf-form-item
41
- label="请求基础路径(开发环境)"
42
- tips="请求的基础路径,例如:/api">
43
- <el-input
44
- v-model="config.baseUrl.dev"
45
- @change="valueChange($event, 'string', ['baseUrl', 'dev'])"></el-input>
46
- </conf-form-item>
47
- <conf-form-item
48
- label="请求基础路径(生产环境)"
49
- tips="请求的基础路径,例如:/ccs">
50
- <el-input
51
- v-model="config.baseUrl.pro"
52
- @change="valueChange($event, 'string', ['baseUrl', 'pro'])"></el-input>
53
- </conf-form-item>
54
- <conf-form-item
55
- label="前台首页名称"
56
- tips="业务端首页的名称,例如:home">
57
- <el-input
58
- v-model="config.homeName"
59
- @change="valueChange($event, 'string', ['homeName'])"></el-input>
60
- </conf-form-item>
61
- <conf-form-item
62
- label="前台首页地址"
63
- tips="业务端首页的路由地址,例如:/home">
64
- <el-input
65
- v-model="config.homePath"
66
- @change="valueChange($event, 'string', ['homePath'])"></el-input>
67
- </conf-form-item>
68
- <conf-form-item
69
- label="后台首页名称"
70
- tips="管理后端首页的名称,例如:admin">
71
- <el-input
72
- v-model="config.saHomeName"
73
- @change="valueChange($event, 'string', ['saHomeName'])"></el-input>
74
- </conf-form-item>
75
- <conf-form-item
76
- label="后台首页地址"
77
- tips="管理后端首页的路由地址,例如:/admin">
78
- <el-input
79
- v-model="config.adminPath"
80
- @change="valueChange($event, 'string', ['adminPath'])"></el-input>
81
- </conf-form-item>
82
- <conf-form-item
83
- label="路由白名单"
84
- tips="配置到路由地址,不会被拦截,可以直接访问">
85
- <el-select
86
- v-model="config.whiteList"
87
- filterable
88
- collapse-tags
89
- collapse-tags-tooltip
90
- multiple
91
- @change="valueChange($event, 'array', ['whiteList'])">
92
- <el-option
93
- :value="route.path"
94
- :label="route?.meta?.title || route.name"
95
- v-for="route in routers"></el-option>
96
- </el-select>
97
- </conf-form-item>
98
- <conf-form-item
99
- label="帆软服务地址"
100
- tips="配置帆软打印/报表服务的地址">
101
- <el-input
102
- v-model="config.frUrl"
103
- @change="valueChange($event, 'string', ['frUrl'])"></el-input>
104
- </conf-form-item>
105
- <el-col :span="24">
106
- <el-alert type="warning">
107
- 如果您在更新当前项目的配置文件,那么在您保存配置文件之后会触发页面的刷新效果,请悉知!
108
- </el-alert>
109
- </el-col>
110
- <el-col :span="24">
111
- <el-button
112
- type="primary"
113
- style="width: 100%"
114
- @click="saveConfig">
115
- 保存
116
- </el-button>
117
- </el-col>
118
- </el-row>
119
- </el-form>
120
- </template>
121
- <script>
122
- import { defineComponent } from "vue";
123
- import confFormItem from "../component/confFormItem.vue";
124
- import defaultMinLogo from "@/assets/images/logo-min.png";
125
- import defaultLogo from "@/assets/images/logo.png";
126
- import { getChildFile, saveChildFile } from "yh-fsa";
127
- import { $, findObject } from "yh-ggc";
128
- import { arrayToCode } from "yh-ggc";
129
-
130
- export default defineComponent({
131
- name: "sysConfig",
132
- props: ["dirHandle", "routers"],
133
- components: {
134
- confFormItem,
135
- },
136
- data() {
137
- return {
138
- defaultMinLogo,
139
- defaultLogo,
140
- logoChange: false,
141
- ast: null,
142
- saveTimer: null,
143
- config: {
144
- baseUrl: {},
145
- },
146
- };
147
- },
148
- mounted() {
149
- this.getConfig();
150
- },
151
- methods: {
152
- async getConfig() {
153
- let confText = await getChildFile("src/config/index.js", this.dirHandle);
154
- if (confText) {
155
- let confAST = $(confText);
156
- this.ast = confAST;
157
- let obj = await findObject(confAST);
158
- for (const key in obj) {
159
- const val = obj[key];
160
- this.config[key] = val;
161
- }
162
- }
163
- },
164
- saveConfig() {
165
- if (this.timer) {
166
- clearTimeout(this.timer);
167
- this.timer = null;
168
- }
169
- this.timer = setTimeout(() => {
170
- let contents = this.ast.generate();
171
- saveChildFile("src/config/index.js", this.dirHandle, contents);
172
- this.timer = null;
173
- }, 1000);
174
- },
175
- valueChange(val, type, paths) {
176
- if (this.ast) {
177
- let currentAst;
178
- paths.forEach((path) => {
179
- currentAst = this.ast.find(`${path}:$_$1`);
180
- });
181
- switch (type) {
182
- case "number":
183
- val = parseInt(val);
184
- currentAst.attr("value", val.valueOf());
185
- break;
186
- case "boolean":
187
- val = !!val;
188
- currentAst.attr("value", val.valueOf());
189
- break;
190
- case "string":
191
- val = !!val;
192
- currentAst.attr("value", `"${val}"`);
193
- break;
194
- case "array":
195
- val = arrayToCode(val);
196
- currentAst.attr("value", val);
197
- break;
198
- }
199
- }
200
- },
201
- getImageWH(file) {
202
- return new Promise((resolve, reject) => {
203
- let img = new Image();
204
- img.onload = () => {
205
- resolve({
206
- width: img.naturalWidth,
207
- height: img.naturalHeight,
208
- });
209
- };
210
- img.onerror = (e) => {
211
- reject(e);
212
- };
213
- img.src = URL.createObjectURL(file);
214
- return;
215
- });
216
- },
217
- async minLogoChange(e) {
218
- console.log(e);
219
- let path = "/public/image/logo-min.png";
220
- let contents = e.raw;
221
- await saveChildFile(path, this.dirHandle, contents);
222
- },
223
- },
224
- });
225
- </script>
226
- <style lang="scss">
227
- .logo,
228
- .logo-min {
229
- display: flex;
230
- justify-content: center;
231
- align-items: center;
232
- height: 50px;
233
- width: 200px;
234
- box-sizing: border-box;
235
- background-color: #0051c1;
236
- .logo-image {
237
- width: auto;
238
- height: 44px;
239
- margin: 0 auto;
240
- &.min {
241
- width: 44px;
242
- height: auto;
243
- }
244
- }
245
- }
246
- .logo-min {
247
- width: 64px;
248
- }
249
- </style>
@@ -1,28 +0,0 @@
1
- <template>
2
- <iframe
3
- :src="url"
4
- frameborder="0"
5
- width="100%"
6
- :height="iframeHeight + 'px'"
7
- scrolling="auto"
8
- style="background-color: #fff"></iframe>
9
- </template>
10
-
11
- <script>
12
- export default {
13
- name: "IframeFReportView",
14
- computed: {
15
- iframeHeight() {
16
- return document.documentElement.clientHeight - 100;
17
- },
18
- },
19
- data() {
20
- return {
21
- url: "",
22
- };
23
- },
24
- mounted() {
25
- this.url = this.$route.params.url;
26
- },
27
- };
28
- </script>
@@ -1,22 +0,0 @@
1
- <template>
2
- <slw-window-index :window-id="windowId"></slw-window-index>
3
- </template>
4
- <script setup>
5
- import { ref, watch, onMounted } from "vue";
6
- import { useRoute, onBeforeRouteUpdate } from "vue-router";
7
-
8
- let windowId = ref("");
9
- const route = useRoute();
10
- // watch(
11
- // () => route.meta.id,
12
- // (id) => (windowId.value = id)
13
- // );
14
- onMounted(() => {
15
- windowId.value = route.params.id;
16
- });
17
-
18
- // onBeforeRouteUpdate((to, from, next) => {
19
- // windowId.value = to.meta.id;
20
- // next();
21
- // });
22
- </script>