create-jnrs-template-vue 1.1.14 → 1.1.15

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 (57) hide show
  1. package/bin/create.mjs +55 -32
  2. package/jnrs-template-vue/auto-imports.d.ts +2 -0
  3. package/jnrs-template-vue/components.d.ts +1 -1
  4. package/jnrs-template-vue/package.json +4 -4
  5. package/jnrs-template-vue/src/api/common/index.ts +7 -3
  6. package/jnrs-template-vue/src/api/demos/index.ts +40 -25
  7. package/jnrs-template-vue/src/api/system/index.ts +3 -0
  8. package/jnrs-template-vue/src/assets/images/fileIcon/iconArchive.png +0 -0
  9. package/jnrs-template-vue/src/assets/images/fileIcon/iconAudio.png +0 -0
  10. package/jnrs-template-vue/src/assets/images/fileIcon/iconCode.png +0 -0
  11. package/jnrs-template-vue/src/assets/images/fileIcon/iconExcel.png +0 -0
  12. package/jnrs-template-vue/src/assets/images/fileIcon/iconFile.png +0 -0
  13. package/jnrs-template-vue/src/assets/images/fileIcon/iconFlash.png +0 -0
  14. package/jnrs-template-vue/src/assets/images/fileIcon/iconGif.png +0 -0
  15. package/jnrs-template-vue/src/assets/images/fileIcon/iconImage.png +0 -0
  16. package/jnrs-template-vue/src/assets/images/fileIcon/iconMac.png +0 -0
  17. package/jnrs-template-vue/src/assets/images/fileIcon/iconOfd.png +0 -0
  18. package/jnrs-template-vue/src/assets/images/fileIcon/iconPdf.png +0 -0
  19. package/jnrs-template-vue/src/assets/images/fileIcon/iconPpt.png +0 -0
  20. package/jnrs-template-vue/src/assets/images/fileIcon/iconText.png +0 -0
  21. package/jnrs-template-vue/src/assets/images/fileIcon/iconUnknown.png +0 -0
  22. package/jnrs-template-vue/src/assets/images/fileIcon/iconVideo.png +0 -0
  23. package/jnrs-template-vue/src/assets/images/fileIcon/iconWindows.png +0 -0
  24. package/jnrs-template-vue/src/assets/images/fileIcon/iconWord.png +0 -0
  25. package/jnrs-template-vue/src/assets/images/fileIcon/iconWps.png +0 -0
  26. package/jnrs-template-vue/src/components/base/ImageView.vue +117 -40
  27. package/jnrs-template-vue/src/components/base/JnFileUpload.vue +433 -0
  28. package/jnrs-template-vue/src/components/base/PdfView.vue +106 -0
  29. package/jnrs-template-vue/src/components/common/JnDatetime.vue +37 -0
  30. package/jnrs-template-vue/src/components/common/JnDictTag.vue +70 -0
  31. package/jnrs-template-vue/src/components/common/JnEdit.vue +68 -0
  32. package/jnrs-template-vue/src/layout/SideMenu.vue +1 -0
  33. package/jnrs-template-vue/src/layout/TopHeader.vue +17 -5
  34. package/jnrs-template-vue/src/types/index.ts +32 -8
  35. package/jnrs-template-vue/src/utils/packages.ts +12 -7
  36. package/jnrs-template-vue/src/views/demos/crud/index.vue +180 -24
  37. package/jnrs-template-vue/src/views/demos/unitTest/RequestPage.vue +12 -16
  38. package/jnrs-template-vue/src/views/login/index.vue +13 -18
  39. package/jnrs-template-vue/src/views/system/mine/baseInfo.vue +3 -8
  40. package/jnrs-template-vue/tsconfig.json +4 -1
  41. package/jnrs-template-vue/vite.config.ts +1 -1
  42. package/jnrs-template-vue/viteMockServe/file.ts +68 -0
  43. package/jnrs-template-vue/viteMockServe/fileSrc/mock-pdf.pdf +0 -0
  44. package/jnrs-template-vue/viteMockServe/fileSrc/mock-png-0.png +0 -0
  45. package/jnrs-template-vue/viteMockServe/fileSrc/mock-png-1.png +0 -0
  46. package/jnrs-template-vue/viteMockServe/index.ts +10 -8
  47. package/jnrs-template-vue/viteMockServe/json/dictRes.json +21 -0
  48. package/jnrs-template-vue/viteMockServe/json/loginRes_admin.json +157 -0
  49. package/jnrs-template-vue/viteMockServe/{loginRes_user.json → json/loginRes_user.json} +1 -1
  50. package/jnrs-template-vue/viteMockServe/{tableRes.json → json/tableRes.json} +143 -70
  51. package/jnrs-template-vue/viteMockServe/success.ts +8 -0
  52. package/package.json +1 -1
  53. package/jnrs-template-vue/viteMockServe/dictRes.json +0 -141
  54. package/jnrs-template-vue/viteMockServe/loginRes_admin.json +0 -713
  55. /package/jnrs-template-vue/viteMockServe/{detailsRes.json → json/detailsRes.json} +0 -0
  56. /package/jnrs-template-vue/viteMockServe/{dictItemRes.json → json/dictItemRes.json} +0 -0
  57. /package/jnrs-template-vue/viteMockServe/{roleRes.json → json/roleRes.json} +0 -0
@@ -0,0 +1,68 @@
1
+ import type { IncomingMessage, ServerResponse } from 'http'
2
+
3
+ const MIME_TYPES: Record<string, string> = {
4
+ '.png': 'image/png',
5
+ '.jpg': 'image/jpeg',
6
+ '.jpeg': 'image/jpeg',
7
+ '.gif': 'image/gif',
8
+ '.svg': 'image/svg+xml',
9
+ '.webp': 'image/webp',
10
+ '.pdf': 'application/pdf',
11
+ '.txt': 'text/plain; charset=utf-8',
12
+ '.json': 'application/json',
13
+ '.xml': 'application/xml',
14
+ '.zip': 'application/zip',
15
+ '.mp4': 'video/mp4',
16
+ '.mp3': 'audio/mpeg'
17
+ }
18
+
19
+ export default [
20
+ {
21
+ url: /\/mock\/api\/files\/[\w.-]+/,
22
+ method: 'get',
23
+ rawResponse: async (req: IncomingMessage, res: ServerResponse) => {
24
+ if (!req.url) {
25
+ res.statusCode = 400
26
+ res.end('Bad Request')
27
+ return
28
+ }
29
+
30
+ const pathParts = req.url.split('/')
31
+ const fileName = decodeURIComponent(pathParts[4])
32
+
33
+ try {
34
+ const fs = await import('fs').then((m) => m.default || m)
35
+ const path = await import('path').then((m) => m.default || m)
36
+
37
+ const filePath = path.resolve(process.cwd(), `viteMockServe/fileSrc/${fileName}`)
38
+
39
+ const fileDir = path.resolve(process.cwd(), 'viteMockServe/fileSrc')
40
+ if (!filePath.startsWith(fileDir + path.sep) && filePath !== fileDir) {
41
+ res.statusCode = 403
42
+ res.end('Forbidden')
43
+ return
44
+ }
45
+
46
+ if (!fs.existsSync(filePath)) {
47
+ res.statusCode = 404
48
+ res.end('File not found')
49
+ return
50
+ }
51
+
52
+ const buffer = fs.readFileSync(filePath)
53
+ const ext = path.extname(fileName).toLowerCase()
54
+ const contentType = MIME_TYPES[ext] || 'application/octet-stream'
55
+
56
+ res.setHeader('Content-Type', contentType)
57
+ res.setHeader('Content-Disposition', `attachment; filename="${encodeURIComponent(fileName)}"`)
58
+
59
+ res.statusCode = 200
60
+ res.end(buffer)
61
+ } catch (error) {
62
+ console.error('Mock file serve error:', error)
63
+ res.statusCode = 500
64
+ res.end('Internal Server Error')
65
+ }
66
+ }
67
+ }
68
+ ]
@@ -1,17 +1,19 @@
1
- import menuRes from '../public/system/menu.json'
2
1
  import successMock from './success'
3
2
  import failMock from './fail'
4
- import loginRes_admin from './loginRes_admin.json'
5
- import loginRes_user from './loginRes_user.json'
6
- import dictRes from './dictRes.json'
7
- import dictItemRes from './dictItemRes.json'
8
- import roleRes from './roleRes.json'
9
- import detailsRes from './detailsRes.json'
10
- import tableRes from './tableRes.json'
3
+ import fileMock from './file'
4
+ import menuRes from '../public/system/menu.json'
5
+ import loginRes_admin from './json/loginRes_admin.json'
6
+ import loginRes_user from './json/loginRes_user.json'
7
+ import dictRes from './json/dictRes.json'
8
+ import dictItemRes from './json/dictItemRes.json'
9
+ import roleRes from './json/roleRes.json'
10
+ import detailsRes from './json/detailsRes.json'
11
+ import tableRes from './json/tableRes.json'
11
12
 
12
13
  export default [
13
14
  ...successMock,
14
15
  ...failMock,
16
+ ...fileMock,
15
17
  // 获取菜单
16
18
  {
17
19
  url: '/mock/menu',
@@ -0,0 +1,21 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "id": 8,
5
+ "dictName": "jobTitle",
6
+ "describe": null
7
+ },
8
+ {
9
+ "id": 15,
10
+ "dictName": "role",
11
+ "describe": null
12
+ },
13
+ {
14
+ "id": 110,
15
+ "dictName": "projectType",
16
+ "describe": null
17
+ }
18
+ ],
19
+ "code": 0,
20
+ "msg": "操作成功"
21
+ }
@@ -0,0 +1,157 @@
1
+ {
2
+ "data": {
3
+ "token": "***admin***token***",
4
+ "id": 1,
5
+ "name": "管理员",
6
+ "workNo": "000000",
7
+ "avatarFileName": "mock-png-0.png",
8
+ "workgroup": null,
9
+ "jobTitle": 1,
10
+ "role": 6,
11
+ "permissions": [],
12
+ "abilityCoefficient": 0.0,
13
+ "dict": {
14
+ "role": [
15
+ {
16
+ "label": "班长",
17
+ "value": 0,
18
+ "displayColor": "#FEA822",
19
+ "sequence": 1
20
+ },
21
+ {
22
+ "label": "员工",
23
+ "value": 1,
24
+ "displayColor": "#5887F7",
25
+ "sequence": 2
26
+ },
27
+ {
28
+ "label": "正厂长",
29
+ "value": 2,
30
+ "displayColor": "#E43634",
31
+ "sequence": 3
32
+ },
33
+ {
34
+ "label": "副厂长1",
35
+ "value": 3,
36
+ "displayColor": "#E43634",
37
+ "sequence": 4
38
+ },
39
+ {
40
+ "label": "副厂长2",
41
+ "value": 4,
42
+ "displayColor": "#E43634",
43
+ "sequence": 5
44
+ },
45
+ {
46
+ "label": "生产部",
47
+ "value": 5,
48
+ "displayColor": "#E43634",
49
+ "sequence": 6
50
+ },
51
+ {
52
+ "label": "管理员",
53
+ "value": 6,
54
+ "displayColor": "#E43634",
55
+ "sequence": 7
56
+ }
57
+ ],
58
+ "jobTitle": [
59
+ {
60
+ "label": "实习",
61
+ "value": 0,
62
+ "displayColor": "#999999",
63
+ "sequence": 1
64
+ },
65
+ {
66
+ "label": "转正",
67
+ "value": 1,
68
+ "displayColor": "#65DC79",
69
+ "sequence": 2
70
+ },
71
+ {
72
+ "label": "一级助理",
73
+ "value": 2,
74
+ "displayColor": "#40CFFF",
75
+ "sequence": 3
76
+ },
77
+ {
78
+ "label": "二级助理",
79
+ "value": 3,
80
+ "displayColor": "#4080FF",
81
+ "sequence": 4
82
+ },
83
+ {
84
+ "label": "副三级",
85
+ "value": 4,
86
+ "displayColor": "#B640FF",
87
+ "sequence": 5
88
+ },
89
+ {
90
+ "label": "正三级",
91
+ "value": 5,
92
+ "displayColor": "#FF40BC",
93
+ "sequence": 6
94
+ },
95
+ {
96
+ "label": "副二级",
97
+ "value": 6,
98
+ "displayColor": "#E43634",
99
+ "sequence": 7
100
+ },
101
+ {
102
+ "label": "正二级",
103
+ "value": 7,
104
+ "displayColor": "#E43634",
105
+ "sequence": 8
106
+ },
107
+ {
108
+ "label": "副一级",
109
+ "value": 8,
110
+ "displayColor": "#E43634",
111
+ "sequence": 9
112
+ },
113
+ {
114
+ "label": "正一级",
115
+ "value": 9,
116
+ "displayColor": "#E43634",
117
+ "sequence": 10
118
+ },
119
+ {
120
+ "label": "副高级",
121
+ "value": 10,
122
+ "displayColor": "#E43634",
123
+ "sequence": 11
124
+ },
125
+ {
126
+ "label": "正高级",
127
+ "value": 11,
128
+ "displayColor": "#E43634",
129
+ "sequence": 12
130
+ }
131
+ ],
132
+ "projectType": [
133
+ {
134
+ "label": "敏捷型",
135
+ "value": 0,
136
+ "displayColor": "#4AA3F8",
137
+ "sequence": 1
138
+ },
139
+ {
140
+ "label": "瀑布型",
141
+ "value": 1,
142
+ "displayColor": "#66DC79",
143
+ "sequence": 1
144
+ },
145
+ {
146
+ "label": "混合型",
147
+ "value": 2,
148
+ "displayColor": "#F9DD4A",
149
+ "sequence": 1
150
+ }
151
+ ]
152
+ },
153
+ "settings": null
154
+ },
155
+ "code": 0,
156
+ "msg": "操作成功"
157
+ }
@@ -4,7 +4,7 @@
4
4
  "id": 1,
5
5
  "name": "小王",
6
6
  "workNo": "000000",
7
- "avatarFileName": "20251014181230905-b2bd246f-4174-4804-8122-37c826c56a7d.png",
7
+ "avatarFileName": "666",
8
8
  "workgroup": "测试组",
9
9
  "jobTitle": 0,
10
10
  "role": 1,
@@ -7,10 +7,11 @@
7
7
  "code": "DIGI-2025-TRANS-0001-IT-P001",
8
8
  "name": "统一身份认证平台",
9
9
  "description": "实现SSO单点登录与权限集中管理",
10
- "type": "混合型",
10
+ "projectTypeName": "混合型",
11
+ "projectType": 2,
11
12
  "manager": "张三",
12
- "budget": "52000.00",
13
- "plannedStartDate": "2025-08-10",
13
+ "budget": 52000,
14
+ "plannedStartDate": "2025-08-10 14:23:47",
14
15
  "plannedFinishDate": "2025-12-10",
15
16
  "progress": "65%",
16
17
  "status": "进行中",
@@ -21,18 +22,18 @@
21
22
  {
22
23
  "id": 1,
23
24
  "documentId": 1,
24
- "fileName": "成品.png",
25
- "uniqueFileName": "20251217171430919-34bcc1a9-a19d-4b91-9ab6-57cb31c3df28.jpg",
25
+ "fileName": "mock-png-1 测试.png",
26
+ "uniqueFileName": "mock-png-1.png",
26
27
  "fileType": "image/png",
27
- "fileSize": 432866
28
+ "fileSize": 25000
28
29
  },
29
30
  {
30
- "id": 3,
31
- "documentId": 1,
32
- "fileName": "02.png",
33
- "uniqueFileName": "20251216135111546-e33d678c-5099-4c4c-bc81-a97688f433af.png",
31
+ "id": 2,
32
+ "documentId": 2,
33
+ "fileName": "1",
34
+ "uniqueFileName": "1",
34
35
  "fileType": "image/png",
35
- "fileSize": 24306
36
+ "fileSize": 0
36
37
  }
37
38
  ]
38
39
  },
@@ -40,21 +41,13 @@
40
41
  "id": 2,
41
42
  "description": null,
42
43
  "attachments": [
43
- {
44
- "id": 2,
45
- "documentId": 2,
46
- "fileName": "Law Policy for Alibaba Sans.pdf",
47
- "uniqueFileName": "20251216134412671-e3f13c84-a24d-4718-930a-959cd2b41fb1.pdf",
48
- "fileType": "application/pdf",
49
- "fileSize": 63610
50
- },
51
44
  {
52
45
  "id": 4,
53
46
  "documentId": 2,
54
- "fileName": "信息化项目设计流程规定JND 024.01-2024.pdf",
55
- "uniqueFileName": "20251216135247581-05eee726-a0fe-4a44-a890-ee64b106c4b7.pdf",
47
+ "fileName": "mock-pdf 测试.pdf",
48
+ "uniqueFileName": "mock-pdf.pdf",
56
49
  "fileType": "application/pdf",
57
- "fileSize": 231295
50
+ "fileSize": 64000
58
51
  }
59
52
  ]
60
53
  }
@@ -66,13 +59,52 @@
66
59
  "code": "DIGI-2025-TRANS-0001-MFG-P001",
67
60
  "name": "生产报工移动端开发",
68
61
  "description": "车间工人通过APP实时报工",
69
- "type": "敏捷型",
62
+ "projectTypeName": "敏捷型",
63
+ "projectType": 0,
70
64
  "manager": "李四",
71
- "budget": "28000.00",
72
- "plannedStartDate": "2025-09-01",
65
+ "budget": 28000,
66
+ "plannedStartDate": "2025-09-01 09:12:33",
73
67
  "plannedFinishDate": "2025-11-30",
74
68
  "progress": "100%",
75
- "status": "已完成"
69
+ "status": "已完成",
70
+ "imageDocument": {
71
+ "id": 110,
72
+ "description": null,
73
+ "attachments": [
74
+ {
75
+ "id": 33,
76
+ "documentId": 33,
77
+ "fileName": "none.gif",
78
+ "uniqueFileName": "none.gif",
79
+ "fileType": "image/gif",
80
+ "fileSize": 1073741824
81
+ },
82
+ {
83
+ "id": 55,
84
+ "documentId": 55,
85
+ "fileName": "none.bmp",
86
+ "uniqueFileName": "none.bmp",
87
+ "fileType": "image/bmp",
88
+ "fileSize": 19922944
89
+ },
90
+ {
91
+ "id": 1,
92
+ "documentId": 1,
93
+ "fileName": "mock-png-0 测试.png",
94
+ "uniqueFileName": "mock-png-0.png",
95
+ "fileType": "image/png",
96
+ "fileSize": 27000
97
+ },
98
+ {
99
+ "id": 44,
100
+ "documentId": 44,
101
+ "fileName": "none.jpg",
102
+ "uniqueFileName": "none.jpg",
103
+ "fileType": "image/jpg",
104
+ "fileSize": 18
105
+ }
106
+ ]
107
+ }
76
108
  },
77
109
  {
78
110
  "id": "DIGI-2025-TRANS-0001-IT-P002",
@@ -81,28 +113,58 @@
81
113
  "code": "DIGI-2025-TRANS-0001-IT-P002",
82
114
  "name": "数据湖平台搭建",
83
115
  "description": "构建企业级数据湖,支持BI分析",
84
- "type": "瀑布型",
116
+ "projectTypeName": "瀑布型",
117
+ "projectType": 1,
85
118
  "manager": "王磊",
86
- "budget": "95000.00",
87
- "plannedStartDate": "2025-07-01",
119
+ "budget": 95000,
120
+ "plannedStartDate": "2025-07-01 16:45:02",
88
121
  "plannedFinishDate": "2025-12-20",
89
122
  "progress": "80%",
90
- "status": "进行中"
123
+ "status": "进行中",
124
+ "imageDocument": {
125
+ "id": 1,
126
+ "description": null,
127
+ "attachments": [
128
+ {
129
+ "id": 3,
130
+ "documentId": 3,
131
+ "fileName": "none.png",
132
+ "uniqueFileName": "none.png",
133
+ "fileType": "image/png",
134
+ "fileSize": 2048576
135
+ }
136
+ ]
137
+ }
91
138
  },
92
139
  {
93
140
  "id": "DIGI-2025-TRANS-0001-MFG-P002",
94
141
  "programCode": "DIGI-2025-TRANS-0001",
95
- "program": "信息化改造项目集",
142
+ "program": "",
96
143
  "code": "DIGI-2025-TRANS-0001-MFG-P002",
97
144
  "name": "设备台账数字化",
98
- "description": "将纸质设备档案转为数字台账",
99
- "type": "瀑布型",
145
+ "description": "",
146
+ "projectTypeName": "",
147
+ "projectType": 1,
100
148
  "manager": "赵敏",
101
- "budget": "18000.00",
102
- "plannedStartDate": "2025-10-15",
103
- "plannedFinishDate": "2026-01-15",
149
+ "budget": 0,
150
+ "plannedStartDate": "2025-10-15 11:30:18",
151
+ "plannedFinishDate": "",
104
152
  "progress": "0%",
105
- "status": "未开始"
153
+ "status": "未开始",
154
+ "imageDocument": {
155
+ "id": 1,
156
+ "description": null,
157
+ "attachments": [
158
+ {
159
+ "id": 1,
160
+ "documentId": 1,
161
+ "fileName": "mock-png-1 测试.png",
162
+ "uniqueFileName": "mock-png-1.png",
163
+ "fileType": "image/png",
164
+ "fileSize": 25000
165
+ }
166
+ ]
167
+ }
106
168
  },
107
169
  {
108
170
  "id": "DIGI-2025-TRANS-0001-IT-P003",
@@ -111,10 +173,11 @@
111
173
  "code": "DIGI-2025-TRANS-0001-IT-P003",
112
174
  "name": "API网关升级",
113
175
  "description": "提升系统间接口安全与性能",
114
- "type": "敏捷型",
176
+ "projectTypeName": "敏捷型",
177
+ "projectType": 0,
115
178
  "manager": "张三",
116
- "budget": "35000.00",
117
- "plannedStartDate": "2025-06-01",
179
+ "budget": 35000,
180
+ "plannedStartDate": "2025-06-01 08:05:59",
118
181
  "plannedFinishDate": "2025-09-30",
119
182
  "progress": "100%",
120
183
  "status": "已完成"
@@ -126,10 +189,11 @@
126
189
  "code": "SMART-2025-FACT-0002-MFG-P001",
127
190
  "name": "AGV物流调度系统",
128
191
  "description": "部署自动导引车及调度平台",
129
- "type": "混合型",
192
+ "projectTypeName": "混合型",
193
+ "projectType": 2,
130
194
  "manager": "李四",
131
- "budget": "120000.00",
132
- "plannedStartDate": "2025-05-01",
195
+ "budget": 120000,
196
+ "plannedStartDate": "2025-05-01 13:22:41",
133
197
  "plannedFinishDate": "2025-12-31",
134
198
  "progress": "90%",
135
199
  "status": "进行中"
@@ -141,10 +205,11 @@
141
205
  "code": "SMART-2025-FACT-0002-IT-P001",
142
206
  "name": "工厂IoT数据采集平台",
143
207
  "description": "接入200+传感器,实现实时监控",
144
- "type": "敏捷型",
208
+ "projectTypeName": "敏捷型",
209
+ "projectType": 0,
145
210
  "manager": "刘洋",
146
- "budget": "78000.00",
147
- "plannedStartDate": "2025-08-20",
211
+ "budget": 78000,
212
+ "plannedStartDate": "2025-08-20 17:55:03",
148
213
  "plannedFinishDate": "2026-02-28",
149
214
  "progress": "30%",
150
215
  "status": "进行中"
@@ -156,10 +221,11 @@
156
221
  "code": "SMART-2025-FACT-0002-MFG-P002",
157
222
  "name": "智能排产系统",
158
223
  "description": "基于AI算法优化生产计划",
159
- "type": "瀑布型",
224
+ "projectTypeName": "瀑布型",
225
+ "projectType": 1,
160
226
  "manager": "陈工",
161
- "budget": "65000.00",
162
- "plannedStartDate": "2025-11-01",
227
+ "budget": 65000,
228
+ "plannedStartDate": "2025-11-01 10:10:10",
163
229
  "plannedFinishDate": "2026-03-31",
164
230
  "progress": "0%",
165
231
  "status": "未开始"
@@ -171,10 +237,11 @@
171
237
  "code": "SMART-2025-FACT-0002-IT-P002",
172
238
  "name": "边缘计算节点部署",
173
239
  "description": "在车间部署边缘服务器处理实时数据",
174
- "type": "混合型",
240
+ "projectTypeName": "混合型",
241
+ "projectType": 2,
175
242
  "manager": "王磊",
176
- "budget": "42000.00",
177
- "plannedStartDate": "2025-09-10",
243
+ "budget": 42000,
244
+ "plannedStartDate": "2025-09-10 15:40:27",
178
245
  "plannedFinishDate": "2025-12-15",
179
246
  "progress": "15%",
180
247
  "status": "进行中"
@@ -186,10 +253,11 @@
186
253
  "code": "SMART-2025-FACT-0002-MFG-P003",
187
254
  "name": "质量追溯系统",
188
255
  "description": "实现产品全生命周期质量追踪",
189
- "type": "瀑布型",
256
+ "projectTypeName": "瀑布型",
257
+ "projectType": 1,
190
258
  "manager": "李四",
191
- "budget": "50000.00",
192
- "plannedStartDate": "2025-04-01",
259
+ "budget": 50000,
260
+ "plannedStartDate": "2025-04-01 07:18:55",
193
261
  "plannedFinishDate": "2025-10-31",
194
262
  "progress": "100%",
195
263
  "status": "已完成"
@@ -201,10 +269,11 @@
201
269
  "code": "CLOUD-2025-MIGR-0003-IT-P001",
202
270
  "name": "ERP系统上云",
203
271
  "description": "将SAP ERP迁移至阿里云",
204
- "type": "瀑布型",
272
+ "projectTypeName": "瀑布型",
273
+ "projectType": 1,
205
274
  "manager": "张三",
206
- "budget": "200000.00",
207
- "plannedStartDate": "2025-03-01",
275
+ "budget": 200000,
276
+ "plannedStartDate": "2025-03-01 12:00:00",
208
277
  "plannedFinishDate": "2025-11-30",
209
278
  "progress": "100%",
210
279
  "status": "已完成"
@@ -216,10 +285,11 @@
216
285
  "code": "CLOUD-2025-MIGR-0003-MFG-P001",
217
286
  "name": "MES灾备云环境搭建",
218
287
  "description": "为制造执行系统建立异地云灾备",
219
- "type": "混合型",
288
+ "projectTypeName": "混合型",
289
+ "projectType": 2,
220
290
  "manager": "李四",
221
- "budget": "85000.00",
222
- "plannedStartDate": "2025-10-01",
291
+ "budget": 85000,
292
+ "plannedStartDate": "2025-10-01 19:33:21",
223
293
  "plannedFinishDate": "2026-01-31",
224
294
  "progress": "10%",
225
295
  "status": "进行中"
@@ -231,10 +301,11 @@
231
301
  "code": "CLOUD-2025-MIGR-0003-IT-P002",
232
302
  "name": "数据库云原生改造",
233
303
  "description": "将Oracle迁移至PolarDB并优化架构",
234
- "type": "敏捷型",
304
+ "projectTypeName": "敏捷型",
305
+ "projectType": 0,
235
306
  "manager": "周婷",
236
- "budget": "110000.00",
237
- "plannedStartDate": "2025-07-15",
307
+ "budget": 110000,
308
+ "plannedStartDate": "2025-07-15 03:47:12",
238
309
  "plannedFinishDate": "2025-12-20",
239
310
  "progress": "70%",
240
311
  "status": "进行中"
@@ -246,10 +317,11 @@
246
317
  "code": "CLOUD-2025-MIGR-0003-IT-P003",
247
318
  "name": "DevOps流水线上云",
248
319
  "description": "CI/CD全流程迁移至云效平台",
249
- "type": "敏捷型",
320
+ "projectTypeName": "敏捷型",
321
+ "projectType": 0,
250
322
  "manager": "张三",
251
- "budget": "45000.00",
252
- "plannedStartDate": "2025-12-01",
323
+ "budget": 45000,
324
+ "plannedStartDate": "2025-12-01 22:11:09",
253
325
  "plannedFinishDate": "2026-02-28",
254
326
  "progress": "0%",
255
327
  "status": "未开始"
@@ -261,10 +333,11 @@
261
333
  "code": "CLOUD-2025-MIGR-0003-MFG-P002",
262
334
  "name": "车间监控云存储方案",
263
335
  "description": "视频监控数据存入对象存储",
264
- "type": "瀑布型",
336
+ "projectTypeName": "瀑布型",
337
+ "projectType": 1,
265
338
  "manager": "李四",
266
- "budget": "32000.00",
267
- "plannedStartDate": "2025-09-01",
339
+ "budget": 32000,
340
+ "plannedStartDate": "2025-09-01 05:29:38",
268
341
  "plannedFinishDate": "2025-11-15",
269
342
  "progress": "100%",
270
343
  "status": "已完成"
@@ -27,5 +27,13 @@ export default [
27
27
  response: () => {
28
28
  return res_success
29
29
  }
30
+ },
31
+ // 表单新增
32
+ {
33
+ url: '/mock/demos/save',
34
+ method: 'post',
35
+ response: () => {
36
+ return res_success
37
+ }
30
38
  }
31
39
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-jnrs-template-vue",
3
- "version": "1.1.14",
3
+ "version": "1.1.15",
4
4
  "description": "巨能前端工程化开发,Vue 项目模板脚手架",
5
5
  "keywords": [
6
6
  "vue",