@weig_3078/cli-demo 0.1.1 → 0.1.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.
- package/app1/.eslintrc.cjs +42 -0
- package/app1/.prettierrc.json +8 -0
- package/app1/.vscode/extensions.json +7 -0
- package/app1/README.md +91 -0
- package/app1/cypress/e2e/example.cy.ts +8 -0
- package/app1/cypress/e2e/tsconfig.json +8 -0
- package/app1/cypress/fixtures/example.json +5 -0
- package/app1/cypress/support/commands.ts +39 -0
- package/app1/cypress/support/e2e.ts +20 -0
- package/app1/cypress.config.ts +8 -0
- package/app1/env.d.ts +1 -0
- package/app1/index.html +13 -0
- package/app1/package.json +48 -0
- package/app1/pnpm-lock.yaml +4438 -0
- package/app1/public/favicon.ico +0 -0
- package/app1/public/index.html +20 -0
- package/app1/public/vue.js +11909 -0
- package/app1/src/App.vue +63 -0
- package/app1/src/assets/base.css +86 -0
- package/app1/src/assets/logo.svg +1 -0
- package/app1/src/assets/main.css +32 -0
- package/app1/src/components/HelloWorld.vue +36 -0
- package/app1/src/components/Rate.vue +12 -0
- package/app1/src/components/Rate1.vue +23 -0
- package/app1/src/components/Rate2.vue +60 -0
- package/app1/src/components/TheWelcome.vue +88 -0
- package/app1/src/components/Watermark.vue +74 -0
- package/app1/src/components/WelcomeItem.vue +87 -0
- package/app1/src/components/__tests__/HelloWorld.spec.ts +11 -0
- package/app1/src/components/icons/IconCommunity.vue +7 -0
- package/app1/src/components/icons/IconDocumentation.vue +7 -0
- package/app1/src/components/icons/IconEcosystem.vue +7 -0
- package/app1/src/components/icons/IconSupport.vue +7 -0
- package/app1/src/components/icons/IconTooling.vue +19 -0
- package/app1/src/components/useWaterMarkBg.ts +32 -0
- package/app1/src/main.ts +14 -0
- package/app1/src/router/index.ts +35 -0
- package/app1/src/stores/counter.ts +12 -0
- package/app1/src/views/AboutView.vue +92 -0
- package/app1/src/views/ChunkView.vue +45 -0
- package/app1/src/views/HomeView.vue +13 -0
- package/app1/src/views/RateView.vue +24 -0
- package/app1/test/a.js +16 -0
- package/app1/tsconfig.app.json +14 -0
- package/app1/tsconfig.json +17 -0
- package/app1/tsconfig.node.json +19 -0
- package/app1/tsconfig.vitest.json +11 -0
- package/app1/vite.config.ts +16 -0
- package/app1/vitest.config.ts +14 -0
- package/app1/z/346/226/207/346/241/243//345/255/246/344/271/240/347/274/226/347/250/213/346/234/254/350/264/250.md +129 -0
- package/app1/z/346/226/207/346/241/243//346/235/203/351/231/220/346/216/247/345/210/266.md +342 -0
- package/package.json +5 -3
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
全线控制
|
|
2
|
+
前端这一块吧
|
|
3
|
+
其实能做的事啊
|
|
4
|
+
并不多主要的开发量呢
|
|
5
|
+
还是在后端
|
|
6
|
+
不过前端这一块处理权限的时候呢
|
|
7
|
+
有些情况呢
|
|
8
|
+
还是比较复杂
|
|
9
|
+
至少说比较繁琐
|
|
10
|
+
咱们再梳理一下啊
|
|
11
|
+
前端处理权限吧
|
|
12
|
+
其实有三个层面
|
|
13
|
+
第一个层面呢
|
|
14
|
+
是页面积
|
|
15
|
+
就是有这个权限呢
|
|
16
|
+
这个页面就能进
|
|
17
|
+
菜单上面也能看得到
|
|
18
|
+
没有这个权限呢
|
|
19
|
+
你就进不了
|
|
20
|
+
就是页面积
|
|
21
|
+
页面积的权限处理啊
|
|
22
|
+
是最简单的
|
|
23
|
+
只需要去做一些动态路由
|
|
24
|
+
再加一些什么导航守卫啊
|
|
25
|
+
对吧
|
|
26
|
+
这些东西它是可以完全无侵入的
|
|
27
|
+
什么叫无侵入
|
|
28
|
+
它不会侵入到你的业务
|
|
29
|
+
组建
|
|
30
|
+
就是你在写这个组建代码的时候啊
|
|
31
|
+
你是完全不用去考虑什么权限的
|
|
32
|
+
在导航路由这一块
|
|
33
|
+
就给你处理的非常好了
|
|
34
|
+
你组建完全不用去考虑
|
|
35
|
+
很多项目呢
|
|
36
|
+
其实一般就是到个页面级
|
|
37
|
+
但是如果说你再精细一点的话
|
|
38
|
+
你会到达主界级
|
|
39
|
+
就是不管你有没有这个权限
|
|
40
|
+
你都能进这个页面
|
|
41
|
+
只是进到这个页面过后
|
|
42
|
+
看到的一个些界面呀
|
|
43
|
+
操作的一些功能啊
|
|
44
|
+
会出现一些差异
|
|
45
|
+
比方说有这个权限呢
|
|
46
|
+
你就正常进
|
|
47
|
+
没有这个权限呢
|
|
48
|
+
你也能进
|
|
49
|
+
但是呢里边有些按钮啊
|
|
50
|
+
可能是灰色的
|
|
51
|
+
可能是不显示的
|
|
52
|
+
或者是它显示了
|
|
53
|
+
点击过后呢
|
|
54
|
+
它会弹出框框
|
|
55
|
+
让你升级用户啊
|
|
56
|
+
或者是付费
|
|
57
|
+
这就是主线级
|
|
58
|
+
主线级的权限控制啊
|
|
59
|
+
你是做不到无侵入的
|
|
60
|
+
做不到的它必定带有侵入性
|
|
61
|
+
就是你在编写这个组件的时候呢
|
|
62
|
+
你需要考虑到权限这么个事
|
|
63
|
+
儿为啥组件级它做不到无侵入呢
|
|
64
|
+
是因为组件级啊
|
|
65
|
+
它在处理权限问题的时候
|
|
66
|
+
在不同的权限下
|
|
67
|
+
表现出来的状态是不能统一的
|
|
68
|
+
如果说组件级
|
|
69
|
+
他在做的时候
|
|
70
|
+
他状态只有两种
|
|
71
|
+
一种是可见
|
|
72
|
+
一种是不可见
|
|
73
|
+
哎那就可以做到不清楚
|
|
74
|
+
他状态是统一的
|
|
75
|
+
但是组件级往往状态是不统一的
|
|
76
|
+
他有可能是可见和不可见
|
|
77
|
+
也有可能是可用和不可用
|
|
78
|
+
也有可能是点击过后做不同的事
|
|
79
|
+
有可能是样式变化
|
|
80
|
+
也有可能是动画的状态变化
|
|
81
|
+
你搞不好是什么样的情况
|
|
82
|
+
他没法统一
|
|
83
|
+
他就做不到提取
|
|
84
|
+
公共代码
|
|
85
|
+
做不到提取
|
|
86
|
+
他就必须要有侵入心啊
|
|
87
|
+
只是呢我们要想办法呢
|
|
88
|
+
把组件级的侵入性降低到最小啊
|
|
89
|
+
这是组件级
|
|
90
|
+
那么还有一种级别呢
|
|
91
|
+
就是代码级了
|
|
92
|
+
或者叫做函数级啊
|
|
93
|
+
我接触到的很多同学呢
|
|
94
|
+
反馈过来的权限问题啊
|
|
95
|
+
绝大部分都不会到达函数级
|
|
96
|
+
但是呢确实有那么一些特殊的项目
|
|
97
|
+
它非常的细腻
|
|
98
|
+
它会到达函数级
|
|
99
|
+
这啥意思呢
|
|
100
|
+
不同权限的人
|
|
101
|
+
他能够调用的函数是不一样的
|
|
102
|
+
甚至有可能是能够调用函数
|
|
103
|
+
它在函数的执行过程中
|
|
104
|
+
产生的效果是不一样的
|
|
105
|
+
这就是函数级
|
|
106
|
+
函数级的权限处理
|
|
107
|
+
是会增加非常大的开发成本的
|
|
108
|
+
因为它也是很难做到无侵入
|
|
109
|
+
它也是带有侵入性
|
|
110
|
+
我这种情况比较少啊
|
|
111
|
+
所以说我今天呢
|
|
112
|
+
主要是聊聊这个组建级
|
|
113
|
+
这里看这里
|
|
114
|
+
我举个例子啊
|
|
115
|
+
这里呢都是同一个页面
|
|
116
|
+
不同权限的人呢
|
|
117
|
+
他看到的页面上的按钮的状态是不
|
|
118
|
+
一样的有些是可见与不可见
|
|
119
|
+
有些是信用是吧
|
|
120
|
+
是不一样的
|
|
121
|
+
这一块呢
|
|
122
|
+
该如何来做
|
|
123
|
+
能够尽量少的造成侵入性
|
|
124
|
+
就尽量的不要去侵入主线啊
|
|
125
|
+
如果说你平时开发很少遇到
|
|
126
|
+
或者是思考这样的问题的话
|
|
127
|
+
那你就好好来看我的大师课
|
|
128
|
+
大师课是完全免费的啊
|
|
129
|
+
来领取就完事了
|
|
130
|
+
说前面这虽然是一套免费的课程
|
|
131
|
+
但是一定要引起高度重视啊
|
|
132
|
+
我发现部分同学呢
|
|
133
|
+
看到这些课程是免费的就不珍惜
|
|
134
|
+
你呢也不看
|
|
135
|
+
我告诉你啊
|
|
136
|
+
大师课里边讲的可是成体系的
|
|
137
|
+
核心知识
|
|
138
|
+
就是有些道理吧
|
|
139
|
+
真的是得到一定阶段过后
|
|
140
|
+
你才能理解搭车的重要性
|
|
141
|
+
确实
|
|
142
|
+
有些同学的一时半会很难理解的到
|
|
143
|
+
那你只需要相信袁老师的专业性
|
|
144
|
+
就可以了
|
|
145
|
+
我教过这么多同学
|
|
146
|
+
讲过这么多东西
|
|
147
|
+
我是把前端最重要最核心
|
|
148
|
+
最能够影响你薪资高低
|
|
149
|
+
和职业发展的知识
|
|
150
|
+
都放到了大师课里边
|
|
151
|
+
对你的要求只有一个
|
|
152
|
+
一定要认认真真看完
|
|
153
|
+
看完之后
|
|
154
|
+
你对将来的技术学习方向
|
|
155
|
+
学习的深度
|
|
156
|
+
你就有一个完整的把控了
|
|
157
|
+
你眼睛里面就会有光了
|
|
158
|
+
你就会感觉自己又行了
|
|
159
|
+
所以2024年啊
|
|
160
|
+
都过了一半了
|
|
161
|
+
你要做的最重要的一件事就是第一
|
|
162
|
+
免费来领取我们的大师课
|
|
163
|
+
第二认认真真一定要看完这个课呢
|
|
164
|
+
怎么领在咱们账号主页
|
|
165
|
+
点击头像进入账号主页
|
|
166
|
+
根据提示领取完成了
|
|
167
|
+
好说一下这个主键题怎么来做啊
|
|
168
|
+
那么我这里呢
|
|
169
|
+
有个页面啊
|
|
170
|
+
这个页面呢
|
|
171
|
+
这里可以切换这个用户啊
|
|
172
|
+
这是模拟嘛
|
|
173
|
+
然后呢下边有些组件目前呢
|
|
174
|
+
没有任何状态变化
|
|
175
|
+
然后我们怎么来处理这个组件
|
|
176
|
+
根据不同的权限展示不同的状态呢
|
|
177
|
+
这一块呢
|
|
178
|
+
我们可以有两种做法
|
|
179
|
+
一种做法呢
|
|
180
|
+
是使用一些自定义指令
|
|
181
|
+
在这里加指令
|
|
182
|
+
第二种做法呢
|
|
183
|
+
是使用高阶组件
|
|
184
|
+
其实都可以啊
|
|
185
|
+
看你自己的喜好
|
|
186
|
+
那这里呢
|
|
187
|
+
我们使用高阶组件
|
|
188
|
+
就是在外面套一层组件啊
|
|
189
|
+
这个组件呢
|
|
190
|
+
我已经写好了啊
|
|
191
|
+
一会给带大家看一下啊
|
|
192
|
+
非常简单
|
|
193
|
+
叫做authority这个主键
|
|
194
|
+
然后呢把这个按钮扔进去
|
|
195
|
+
然后告诉这个主键
|
|
196
|
+
有哪些权限的用户可以看到这个按钮
|
|
197
|
+
那么通过这个属性啊
|
|
198
|
+
permissions比方说system user you
|
|
199
|
+
表示具有查看权限的用户
|
|
200
|
+
才能看到这个主键啊
|
|
201
|
+
这个字符串呢
|
|
202
|
+
这个玩意儿你就跟后端商量吧
|
|
203
|
+
你们那个系统里边权限的定义啊
|
|
204
|
+
就描述
|
|
205
|
+
是用什么样的字母串格式来描述的
|
|
206
|
+
我这里随便写了一个啊
|
|
207
|
+
好保存
|
|
208
|
+
你看一下
|
|
209
|
+
那么现在呢
|
|
210
|
+
我们去切换一下
|
|
211
|
+
切换Vistr好像都有查看权限是吧
|
|
212
|
+
那么给他一个更新权限吧
|
|
213
|
+
呃或者给他艾特权限吧
|
|
214
|
+
添加用户嘛
|
|
215
|
+
好保存看一下
|
|
216
|
+
哎没反应啊
|
|
217
|
+
这属性写错了啊
|
|
218
|
+
少拨个s啊
|
|
219
|
+
看一下你看这两个权限呢
|
|
220
|
+
它就看不到第一个按钮
|
|
221
|
+
只有r的命它有这个权限
|
|
222
|
+
它才能看到这个按钮啊
|
|
223
|
+
我们来看一下吧
|
|
224
|
+
打开调试工具
|
|
225
|
+
然后呢找到view的调试
|
|
226
|
+
我们找到这个主键啊sorry
|
|
227
|
+
那么我们这里该传的属性是什么
|
|
228
|
+
你必须要有这个权限才行那
|
|
229
|
+
么目前的用户有哪些权限呢
|
|
230
|
+
它有这些权限
|
|
231
|
+
所以说它里边包含了这个ad
|
|
232
|
+
因此呢他能看到这个按钮
|
|
233
|
+
所以说这个高阶组件呢
|
|
234
|
+
它实际上控制的是啥呢
|
|
235
|
+
控制的是组件的可见度
|
|
236
|
+
因为很多时候呢
|
|
237
|
+
都是一个可见和不可见的区别
|
|
238
|
+
它把这个状态呢提取出来
|
|
239
|
+
来控制它的可见度
|
|
240
|
+
那如果说某一个按钮
|
|
241
|
+
它需要的权限是多个
|
|
242
|
+
比方说同时拥有两个权限
|
|
243
|
+
或者是两个以上的权限
|
|
244
|
+
它才能控制它的可见
|
|
245
|
+
那这一块呢
|
|
246
|
+
我们这个主键呢
|
|
247
|
+
也可以做一个处理啊
|
|
248
|
+
比方说我们针对这个查询用户
|
|
249
|
+
呃我们需要两个权限啊
|
|
250
|
+
比方说吧
|
|
251
|
+
你不仅要能够新增
|
|
252
|
+
你还要能够修改
|
|
253
|
+
那么这个属性呢
|
|
254
|
+
我把它做成了一个数组啊
|
|
255
|
+
它是可以支持数组的
|
|
256
|
+
第一个权限呢是这个你必须要要的
|
|
257
|
+
第二个权限呢
|
|
258
|
+
也是必须要有修改
|
|
259
|
+
但是啊你做来做去吧
|
|
260
|
+
其实你只是控制这个组件的可见度
|
|
261
|
+
如果说这个组件有别的状态呢
|
|
262
|
+
比较禁用和可用的区别
|
|
263
|
+
或者是点击试验的不一样
|
|
264
|
+
或者是一些动画的不一样
|
|
265
|
+
那么这个组件呢
|
|
266
|
+
就处理不了了啊
|
|
267
|
+
呃
|
|
268
|
+
就需要把这个目前的权限信息拿出来
|
|
269
|
+
让他自己自行处理
|
|
270
|
+
这带来侵入性的
|
|
271
|
+
比方说这个组件呢
|
|
272
|
+
我们可以这样设计
|
|
273
|
+
我们给他来一个作用率的插槽default
|
|
274
|
+
然后这里边user permissions啊
|
|
275
|
+
就是通过这个主线呢
|
|
276
|
+
把目前这个用户的所有的权限
|
|
277
|
+
暴露出来啊
|
|
278
|
+
拿给你你自己来决定该怎么样啊
|
|
279
|
+
比方说这个按钮的禁用状态disabled
|
|
280
|
+
我就可以判断一下啊
|
|
281
|
+
user permissions里边是不是包含
|
|
282
|
+
它是个数组啊
|
|
283
|
+
包含了用户的所有的权限
|
|
284
|
+
是不是包含user ad
|
|
285
|
+
或者是不包含Uzi的时候去禁用
|
|
286
|
+
好把它写成这种格式
|
|
287
|
+
咱们看一下
|
|
288
|
+
好你看
|
|
289
|
+
ADMI没问题
|
|
290
|
+
editor呢它变禁用状态了是吧
|
|
291
|
+
它要自行决定的
|
|
292
|
+
那没办法
|
|
293
|
+
只能做到这了啊
|
|
294
|
+
那么最后说一下这个12位体啊
|
|
295
|
+
这个组件怎么来做的
|
|
296
|
+
非常简单啊
|
|
297
|
+
这个组件设置呢
|
|
298
|
+
你就是第一个属性哎
|
|
299
|
+
它可以支持支付券
|
|
300
|
+
也可以支持一个驻主
|
|
301
|
+
你需要什么样的权限
|
|
302
|
+
才能够查看里边的主线
|
|
303
|
+
把它传进来
|
|
304
|
+
然后呢通过仓库
|
|
305
|
+
拿到目前用户的拥有的所有权限啊
|
|
306
|
+
这个玩意呢
|
|
307
|
+
可以从后端获取啊
|
|
308
|
+
然后通过一个计算属性
|
|
309
|
+
就非常简单
|
|
310
|
+
就判断一下
|
|
311
|
+
用户的权限里边
|
|
312
|
+
包不包含你传入的权限
|
|
313
|
+
包含的话
|
|
314
|
+
那我就显示
|
|
315
|
+
不包含的话
|
|
316
|
+
我就不显示
|
|
317
|
+
非常简单
|
|
318
|
+
好了通过一个重用浴插槽
|
|
319
|
+
把目前的用户的所有权限呢
|
|
320
|
+
传过去以便他做一些灵活处理
|
|
321
|
+
对吧呃
|
|
322
|
+
组件级的权限控制呢
|
|
323
|
+
也只能做到这样了啊
|
|
324
|
+
没办法因为他太灵活了
|
|
325
|
+
无法形成一个统一的状态
|
|
326
|
+
其实我们开发领域里边都是这样
|
|
327
|
+
一旦能统一就好办
|
|
328
|
+
不能统一
|
|
329
|
+
没有标准就不好办
|
|
330
|
+
其实你做开发做到一定程度过后
|
|
331
|
+
你会发现这一切都是标准问题
|
|
332
|
+
就是有标准和没标准的问题
|
|
333
|
+
比如说把软件系统里边所有的事情
|
|
334
|
+
都能够定向一个标准的话
|
|
335
|
+
那我告诉你
|
|
336
|
+
不需要开发了
|
|
337
|
+
AI就可以完全搞定的
|
|
338
|
+
很多时候
|
|
339
|
+
AI搞不定很多东西呢
|
|
340
|
+
就是因为他不清楚标准和界限在哪里
|
|
341
|
+
啊说远了啊
|
|
342
|
+
就分享这么个东西
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weig_3078/cli-demo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "脚手架 demo",
|
|
5
5
|
"private": false,
|
|
6
|
-
"main": "index.js",
|
|
7
6
|
"bin": {
|
|
8
|
-
"mvc": "./
|
|
7
|
+
"mvc": "./bin/mvc.js"
|
|
8
|
+
},
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
9
11
|
},
|
|
10
12
|
"scripts": {
|
|
11
13
|
"build": "rollup -c rollup.config.cjs",
|