matrix_components 2.0.329 → 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
@@ -2,10 +2,18 @@
2
2
  组件使用示例参考dist/ComponentDemo
3
3
 
4
4
  ```
5
- version:2.0.322
6
- 2025-11-24 09:20:37
5
+ version:2.0.331
6
+ 2025-11-24
7
7
  更新日志:
8
- 1.添加e post, get, put, del, download, downLoadLocalFile 等axios请求方法
8
+ 1.修改NsImage组件bug
9
+ ```
10
+
11
+ ```
12
+ version:2.0.330
13
+ 2025-11-24
14
+ 更新日志:
15
+ 1.NsDialog增加全部弹窗关闭方法closeAllNsDialog
16
+ 2.添加post, get, put, del, download, downLoadLocalFile 等axios请求方法
9
17
  ```
10
18
 
11
19
  ```
@@ -478,15 +486,14 @@ const encrypArrs = getEncryptSm2(publicKey, ["xxx", "yyy"], isAdd04=false, ciphe
478
486
  import NsComponents from 'matrix_components'
479
487
 
480
488
  // 请求地址的baseUrl使用时必须get/psot必须传值,建议在app.use(NsComponents)之前设置
481
- app.config.globalProperties.$BaseUrl = "http://xxx";
489
+ app.config.globalProperties.$BaseUrl = 'http://请求ip:端口/'
482
490
  app.use(NsComponents)
483
491
 
492
+ // 【可选】401无权显示回调
493
+ app.config.globalProperties.$LogoutCallback = logoutHandler // 无权显示回调
484
494
  // 【可选】请求添加的token头的key,默认为satoken。token的key和value需要在外部项目中自己设置
485
- app.config.globalProperties.$TonkenKey = "satoken";
486
- // 【可选】
487
- app.config.globalProperties.$LogoutCallback = ()=>{
488
- // 退出登录回调或者401回调
489
- };
495
+ app.config.globalProperties.$TonkenKey = "tokenName"
496
+ app.config.globalProperties.$TonkenKey = "xxxx";
490
497
 
491
498
  // 2. xx.vue / xx.ts 调用获取get、post请求
492
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>