matrix_components 2.0.330 → 2.0.331

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/README.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # **组件库2.0**
2
2
  组件使用示例参考dist/ComponentDemo
3
3
 
4
+ ```
5
+ version:2.0.331
6
+ 2025-11-24
7
+ 更新日志:
8
+ 1.修改NsImage组件bug
9
+ ```
10
+
4
11
  ```
5
12
  version:2.0.330
6
13
  2025-11-24
7
14
  更新日志:
8
- 1.NsDialog增加全部弹窗关闭方法closeAllNsDialog, 注册app全局$closeAllNsDialog
9
- 2.添加post, get, put, del, download, downLoadLocalFile 等axios请求方法, 注册app全局$post, $get, $put, $del, $download, $downLoadLocalFile
15
+ 1.NsDialog增加全部弹窗关闭方法closeAllNsDialog
16
+ 2.添加post, get, put, del, download, downLoadLocalFile 等axios请求方法
10
17
  ```
11
18
 
12
19
  ```
@@ -479,15 +486,14 @@ const encrypArrs = getEncryptSm2(publicKey, ["xxx", "yyy"], isAdd04=false, ciphe
479
486
  import NsComponents from 'matrix_components'
480
487
 
481
488
  // 请求地址的baseUrl使用时必须get/psot必须传值,建议在app.use(NsComponents)之前设置
482
- app.config.globalProperties.$BaseUrl = "http://xxx";
489
+ app.config.globalProperties.$BaseUrl = 'http://请求ip:端口/'
483
490
  app.use(NsComponents)
484
491
 
492
+ // 【可选】401无权显示回调
493
+ app.config.globalProperties.$LogoutCallback = logoutHandler // 无权显示回调
485
494
  // 【可选】请求添加的token头的key,默认为satoken。token的key和value需要在外部项目中自己设置
486
- app.config.globalProperties.$TonkenKey = "satoken";
487
- // 【可选】
488
- app.config.globalProperties.$LogoutCallback = ()=>{
489
- // 退出登录回调或者401回调
490
- };
495
+ app.config.globalProperties.$TonkenKey = "tokenName"
496
+ app.config.globalProperties.$TonkenKey = "xxxx";
491
497
 
492
498
  // 2. xx.vue / xx.ts 调用获取get、post请求
493
499
  import { get, post } from 'matrix_components'
@@ -1,143 +1,27 @@
1
1
  <template>
2
- <div class="image-demo">
3
- <h2>NsImage 和 NsImg 组件测试</h2>
4
-
5
- <div class="demo-section">
6
- <h3>1. 正常图片加载测试</h3>
7
- <p>使用有效的图片URL</p>
8
- <NsImage
9
- :src="validImageUrl"
10
- alt="有效图片"
11
- width="300"
12
- height="200"
13
- style="border: 1px solid #ccc; border-radius: 8px;"
14
- />
15
- </div>
16
-
17
- <div class="demo-section">
18
- <h3>2. 图片加载失败测试</h3>
19
- <p>使用不存在的图片URL,应该显示默认图片</p>
20
- <NsImage
21
- :src="invalidImageUrl"
22
- alt="无效图片"
23
- width="300"
24
- height="200"
25
- style="border: 1px solid #ccc; border-radius: 8px;"
26
- />
27
- </div>
28
-
29
- <div class="demo-section">
30
- <h3>3. 动态切换测试</h3>
31
- <p>点击按钮切换图片URL</p>
32
- <div style="margin-bottom: 10px;">
33
- <button @click="toggleImage" style="padding: 8px 16px; margin-right: 10px;">
34
- 切换图片 (当前: {{ currentImageType }})
35
- </button>
36
- <button @click="useRandomInvalidUrl" style="padding: 8px 16px;">
37
- 使用随机无效URL
38
- </button>
39
- </div>
40
- <NsImg
41
- :src="dynamicImageUrl"
42
- alt="动态图片"
43
- width="300"
44
- height="200"
45
- style="border: 1px solid #ccc; border-radius: 8px;"
46
- />
47
- </div>
48
-
49
- <div class="demo-section">
50
- <h3>4. 多个实例测试</h3>
51
- <p>测试多个NsImage组件同时使用</p>
52
- <div style="display: flex; gap: 20px; flex-wrap: wrap;">
53
- <NsImg
54
- :src="validImageUrl"
55
- alt="图片1"
56
- width="150"
57
- height="100"
58
- style="border: 1px solid #ccc; border-radius: 4px;"
59
- />
60
- <NsImg
61
- src="/nonexistent1.jpg"
62
- error="data:image/png;base64,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"
63
- alt="图片2"
64
- width="150"
65
- height="100"
66
- style="border: 1px solid #ccc; border-radius: 4px;"
67
- />
68
- <NsImg
69
- src="/nonexistent2.jpg"
70
- error="http://199.10.9.178:8081/static/rapture/resources/icons/x32/nexus.png"
71
- alt="图片3"
72
- width="150"
73
- height="100"
74
- style="border: 1px solid #ccc; border-radius: 4px;"
75
- />
76
- </div>
77
- </div>
78
- </div>
2
+ <NsImage :src="src" :apiUrl="apiUrl" :hasPreview="hasPreview">
3
+ <img
4
+ :src="ThemeVar.VARS.getPropertyValue('--matrix-empty-img')"
5
+ style="width: 100%; height: 100%"
6
+ @click.stop
7
+ />
8
+ </NsImage>
79
9
  </template>
80
10
 
81
11
  <script setup lang="ts">
82
- import { ref } from 'vue'
83
-
84
- const validImageUrl = ref('http://199.10.10.67:10000/juzhenManage/assets/bg-cTuRoWal.png')
85
- const invalidImageUrl = ref('/nonexistent/image.jpg')
86
-
87
- const dynamicImageUrl = ref(validImageUrl.value)
88
- const currentImageType = ref('有效图片')
89
-
90
- const toggleImage = () => {
91
- if (dynamicImageUrl.value === validImageUrl.value) {
92
- dynamicImageUrl.value = invalidImageUrl.value
93
- currentImageType.value = '无效图片'
94
- } else {
95
- dynamicImageUrl.value = validImageUrl.value
96
- currentImageType.value = '有效图片'
97
- }
98
- }
99
-
100
- const useRandomInvalidUrl = () => {
101
- dynamicImageUrl.value = `/random-invalid-${Date.now()}.jpg`
102
- currentImageType.value = '随机无效图片'
103
- }
12
+ import { reactive, ref } from 'vue';
13
+ import { ThemeVar } from '../../packages/utils/loadCssVars'
14
+ const src = ref('')
15
+ const hasPreview = ref(true)
16
+ const apiUrl = reactive( {
17
+ type: Object,
18
+ default: ()=>({
19
+ method: 'get',
20
+ url: '/tool/file/getFileDetail',
21
+ paramkey: 'fileIds',
22
+ params: {},
23
+ }),
24
+ })
104
25
  </script>
105
-
106
- <style scoped>
107
- .image-demo {
108
- padding: 20px;
109
- max-width: 800px;
110
- margin: 0 auto;
111
- }
112
-
113
- .demo-section {
114
- margin-bottom: 40px;
115
- padding: 20px;
116
- border: 1px solid #e0e0e0;
117
- border-radius: 8px;
118
- background-color: #fafafa;
119
- }
120
-
121
- .demo-section h3 {
122
- margin-top: 0;
123
- color: #333;
124
- }
125
-
126
- .demo-section p {
127
- color: #666;
128
- margin-bottom: 15px;
129
- }
130
-
131
- button {
132
- background-color: #409eff;
133
- color: white;
134
- border: none;
135
- border-radius: 4px;
136
- cursor: pointer;
137
- transition: background-color 0.3s;
138
- }
139
-
140
- button:hover {
141
- background-color: #337ecc;
142
- }
26
+ <style lang="scss" scoped>
143
27
  </style>