mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 12:26:47 +08:00
feat:增加项目的存为模版,删除等
This commit is contained in:
98
package-lock.json
generated
98
package-lock.json
generated
@@ -13,7 +13,9 @@
|
|||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
"element-plus": "^2.2.17",
|
"element-plus": "^2.2.17",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
"jquery": "^3.6.1",
|
"jquery": "^3.6.1",
|
||||||
|
"qrcode.vue": "^3.3.3",
|
||||||
"qs": "^6.11.0",
|
"qs": "^6.11.0",
|
||||||
"sortablejs": "^1.15.0",
|
"sortablejs": "^1.15.0",
|
||||||
"vue": "^3.2.13",
|
"vue": "^3.2.13",
|
||||||
@@ -3514,6 +3516,14 @@
|
|||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/base64-arraybuffer": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/base64-js": {
|
"node_modules/base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
@@ -4279,6 +4289,14 @@
|
|||||||
"node": "^10 || ^12 || >=14"
|
"node": "^10 || ^12 || >=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/css-line-break": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
|
||||||
|
"dependencies": {
|
||||||
|
"utrie": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/css-loader": {
|
"node_modules/css-loader": {
|
||||||
"version": "6.7.1",
|
"version": "6.7.1",
|
||||||
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
|
||||||
@@ -6332,6 +6350,18 @@
|
|||||||
"node": ">=10.13.0"
|
"node": ">=10.13.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/html2canvas": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
||||||
|
"dependencies": {
|
||||||
|
"css-line-break": "^2.1.0",
|
||||||
|
"text-segmentation": "^1.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/htmlparser2": {
|
"node_modules/htmlparser2": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||||
@@ -8757,6 +8787,14 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/qrcode.vue": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"vue": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/qs": {
|
"node_modules/qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.11.0",
|
||||||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
|
||||||
@@ -9911,6 +9949,14 @@
|
|||||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/text-segmentation": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
|
||||||
|
"dependencies": {
|
||||||
|
"utrie": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/text-table": {
|
"node_modules/text-table": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
|
||||||
@@ -10186,6 +10232,14 @@
|
|||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/utrie": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-arraybuffer": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/uuid": {
|
"node_modules/uuid": {
|
||||||
"version": "8.3.2",
|
"version": "8.3.2",
|
||||||
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
|
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
|
||||||
@@ -14091,6 +14145,11 @@
|
|||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"base64-arraybuffer": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
|
||||||
|
},
|
||||||
"base64-js": {
|
"base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
@@ -14733,6 +14792,14 @@
|
|||||||
"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
|
"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"css-line-break": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
|
||||||
|
"requires": {
|
||||||
|
"utrie": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"css-loader": {
|
"css-loader": {
|
||||||
"version": "6.7.1",
|
"version": "6.7.1",
|
||||||
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
|
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
|
||||||
@@ -16424,6 +16491,15 @@
|
|||||||
"tapable": "^2.0.0"
|
"tapable": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"html2canvas": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
||||||
|
"requires": {
|
||||||
|
"css-line-break": "^2.1.0",
|
||||||
|
"text-segmentation": "^1.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"htmlparser2": {
|
"htmlparser2": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||||
@@ -18387,6 +18463,12 @@
|
|||||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"qrcode.vue": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/qrcode.vue/-/qrcode.vue-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.11.0",
|
||||||
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
|
||||||
@@ -19358,6 +19440,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"text-segmentation": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
|
||||||
|
"requires": {
|
||||||
|
"utrie": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"text-table": {
|
"text-table": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
|
||||||
@@ -19578,6 +19668,14 @@
|
|||||||
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"utrie": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
|
||||||
|
"requires": {
|
||||||
|
"base64-arraybuffer": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "8.3.2",
|
"version": "8.3.2",
|
||||||
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
|
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
|
||||||
|
|||||||
@@ -13,7 +13,9 @@
|
|||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"core-js": "^3.8.3",
|
"core-js": "^3.8.3",
|
||||||
"element-plus": "^2.2.17",
|
"element-plus": "^2.2.17",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
"jquery": "^3.6.1",
|
"jquery": "^3.6.1",
|
||||||
|
"qrcode.vue": "^3.3.3",
|
||||||
"qs": "^6.11.0",
|
"qs": "^6.11.0",
|
||||||
"sortablejs": "^1.15.0",
|
"sortablejs": "^1.15.0",
|
||||||
"vue": "^3.2.13",
|
"vue": "^3.2.13",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-07 17:06:45
|
* @Date: 2022-11-07 17:06:45
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-07 20:11:23
|
* @LastEditTime: 2022-11-09 09:32:35
|
||||||
* @FilePath: /fe-manage/src/api/index.js
|
* @FilePath: /fe-manage/src/api/index.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -57,3 +57,11 @@ export const getProjectDetail = (obj) => http.get('/admin/project/detail', { par
|
|||||||
export const releaseProject=(obj)=>http.post('/admin/project/publish',obj)
|
export const releaseProject=(obj)=>http.post('/admin/project/publish',obj)
|
||||||
//获取项目学员
|
//获取项目学员
|
||||||
export const projectStudent=(obj)=>http.post('/admin/project/studentList',obj)
|
export const projectStudent=(obj)=>http.post('/admin/project/studentList',obj)
|
||||||
|
//撤回发布、结束
|
||||||
|
export const handleProject=(obj)=>http.post('/admin/project/handle',obj)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//获取讨论信息
|
||||||
|
export const getDiscussDetail=(obj)=>http.post('/discuss/getDiscussDetail',obj)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-04 22:45:31
|
* @Date: 2022-11-04 22:45:31
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-06 16:48:50
|
* @LastEditTime: 2022-11-09 09:32:52
|
||||||
* @FilePath: /fe-manage/src/api/index1.js
|
* @FilePath: /fe-manage/src/api/index1.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -58,13 +58,13 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; margin-bottom: 20px">
|
<div style="display: flex; margin-bottom: 20px">
|
||||||
<div class="btnn btn1">
|
<div class="btnn btn1" @click="searchSubmit">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText" v-on:click="searchSubmit">搜索</div>
|
<div class="btnText" >搜索</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2" @click="searchReset">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText" v-on:click="searchReset">重置</div>
|
<div class="btnText" >重置</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -849,11 +849,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeStopModal">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="finishProject">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -879,11 +879,11 @@
|
|||||||
<span>您确定要删除此项目吗</span>
|
<span>您确定要删除此项目吗</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeDeleteModal">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="deleteProject">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -910,10 +910,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" @click="closeStartModal">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" @click="templateProject">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1014,11 +1014,11 @@
|
|||||||
<div class="back">(项目撤回后学员进度保留,发布后可继续学习)</div>
|
<div class="back">(项目撤回后学员进度保留,发布后可继续学习)</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="closeBackModal">
|
||||||
<div class="btnText" @click="delete_exit">取消</div>
|
<div class="btnText" >取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="recallProject">
|
||||||
<div class="btnText" @click="delete_exit">确定</div>
|
<div class="btnText" >确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1080,8 +1080,17 @@ export default {
|
|||||||
|
|
||||||
currentEditChildrensProjectId: "",
|
currentEditChildrensProjectId: "",
|
||||||
dcProjectID: "",
|
dcProjectID: "",
|
||||||
|
|
||||||
|
currentPage: 1, //当前页
|
||||||
|
tableDataTotal: -1, //学习路径列表总数
|
||||||
|
pageSize: 10, //每页10条数据
|
||||||
|
|
||||||
projectStudentsNum:0,//发布弹窗-学员人数
|
projectStudentsNum:0,//发布弹窗-学员人数
|
||||||
releaseProjectId: null, //发布的项目id
|
releaseProjectId: null, //发布的项目id
|
||||||
|
recallProjectId:null,//撤回的项目id
|
||||||
|
finishProjectId:null,//结束的项目id
|
||||||
|
deleteProjectId:null,//删除的项目id
|
||||||
|
templateProjectId:null,//存为模版的项目id
|
||||||
});
|
});
|
||||||
// 数据接入 - start -
|
// 数据接入 - start -
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -1146,13 +1155,16 @@ export default {
|
|||||||
endTime = "";
|
endTime = "";
|
||||||
status = null;
|
status = null;
|
||||||
managerid = "";
|
managerid = "";
|
||||||
|
state.currentPage=1
|
||||||
getTableDate();
|
getTableDate();
|
||||||
};
|
};
|
||||||
|
|
||||||
const searchSubmit = () => {
|
const searchSubmit = () => {
|
||||||
|
console.log('点击了搜索')
|
||||||
|
state.currentPage=1
|
||||||
const obj = {
|
const obj = {
|
||||||
pageNo: 1,
|
pageNo: state.currentPage,
|
||||||
pageSize: 10,
|
pageSize: state.pageSize,
|
||||||
beginTime: beginTime,
|
beginTime: beginTime,
|
||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
status: status,
|
status: status,
|
||||||
@@ -1354,6 +1366,7 @@ export default {
|
|||||||
state.doublepro = false;
|
state.doublepro = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("创建成功");
|
message.success("创建成功");
|
||||||
|
state.currentPage=1
|
||||||
getTableDate();
|
getTableDate();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1598,6 +1611,7 @@ export default {
|
|||||||
state.doublesonpro = false;
|
state.doublesonpro = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("创建成功");
|
message.success("创建成功");
|
||||||
|
state.currentPage=1
|
||||||
getTableDate();
|
getTableDate();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1608,6 +1622,9 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 编辑多层子项目
|
// 编辑多层子项目
|
||||||
const edvalue6 = ref("");
|
const edvalue6 = ref("");
|
||||||
const edvalue7 = ref([]);
|
const edvalue7 = ref([]);
|
||||||
@@ -1743,26 +1760,8 @@ export default {
|
|||||||
state.eddoublesonpro = false;
|
state.eddoublesonpro = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
//确认发布项目
|
|
||||||
const releaseProject = () => {
|
//打开发布弹窗
|
||||||
console.log('点击发布')
|
|
||||||
let obj = {
|
|
||||||
projectId: state.releaseProjectId,
|
|
||||||
};
|
|
||||||
api
|
|
||||||
.releaseProject(obj)
|
|
||||||
.then((res) => {
|
|
||||||
console.log("发布成功", res);
|
|
||||||
message.destroy();
|
|
||||||
message.success("发布成功");
|
|
||||||
state.projectPub = false
|
|
||||||
getTableDate()
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log("发布失败", err);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
//发布弹窗
|
|
||||||
const showProjectPub = (projectId) => {
|
const showProjectPub = (projectId) => {
|
||||||
state.projectPub = true;
|
state.projectPub = true;
|
||||||
state.releaseProjectId = projectId;
|
state.releaseProjectId = projectId;
|
||||||
@@ -1783,8 +1782,141 @@ console.log('获取学员人数失败',err)
|
|||||||
})
|
})
|
||||||
//获取阶段及任务总数
|
//获取阶段及任务总数
|
||||||
};
|
};
|
||||||
|
//确认发布项目
|
||||||
//撤回
|
const releaseProject = () => {
|
||||||
|
console.log('点击发布')
|
||||||
|
let obj = {
|
||||||
|
projectId: state.releaseProjectId,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.releaseProject(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("发布成功", res);
|
||||||
|
message.destroy();
|
||||||
|
message.success("发布成功");
|
||||||
|
state.projectPub = false
|
||||||
|
getTableDate()
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("发布失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//关闭发布弹窗
|
||||||
|
const closeProjectPub = () => {
|
||||||
|
state.projectPub = false;
|
||||||
|
};
|
||||||
|
//打开撤回弹窗
|
||||||
|
const showBackModal = (projectId) => {
|
||||||
|
state.backModal = true;
|
||||||
|
state.recallProjectId = projectId;
|
||||||
|
};
|
||||||
|
//确认撤回发布
|
||||||
|
const recallProject = () => {
|
||||||
|
let obj = {
|
||||||
|
projectId: state.recallProjectId,
|
||||||
|
type: 0,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.handleProject(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("撤回成功", res);
|
||||||
|
message.destroy();
|
||||||
|
message.success("撤回成功");
|
||||||
|
state.backModal = false;
|
||||||
|
getTableDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("撤回失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//关闭撤回弹窗
|
||||||
|
const closeBackModal = () => {
|
||||||
|
state.backModal = false;
|
||||||
|
};
|
||||||
|
//打开结束弹窗
|
||||||
|
const showStopModal = (projectId) => {
|
||||||
|
state.stopModal = true;
|
||||||
|
state.finishProjectId=projectId
|
||||||
|
};
|
||||||
|
//确认结束
|
||||||
|
const finishProject=()=>{
|
||||||
|
let obj = {
|
||||||
|
projectId: state.finishProjectId,
|
||||||
|
type: -1,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.handleProject(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("结束成功", res);
|
||||||
|
message.destroy();
|
||||||
|
message.success("已结束");
|
||||||
|
state.stopModal = false;
|
||||||
|
getTableDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("结束失败", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//关闭结束弹窗
|
||||||
|
const closeStopModal = () => {
|
||||||
|
state.stopModal = false;
|
||||||
|
};
|
||||||
|
//打开删除弹窗
|
||||||
|
const showDeleteModal = (projectId) => {
|
||||||
|
state.deleteModal = true;
|
||||||
|
state.deleteProjectId=projectId
|
||||||
|
};
|
||||||
|
//确认删除
|
||||||
|
const deleteProject=()=>{
|
||||||
|
let obj = {
|
||||||
|
projectId: state.deleteProjectId,
|
||||||
|
type: -2,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.handleProject(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("删除成功", res);
|
||||||
|
message.destroy();
|
||||||
|
message.success("删除成功");
|
||||||
|
state.deleteModal = false;
|
||||||
|
getTableDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("删除失败", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//关闭删除弹窗
|
||||||
|
const closeDeleteModal = () => {
|
||||||
|
state.deleteModal = false;
|
||||||
|
};
|
||||||
|
//打开存为模版弹窗
|
||||||
|
const showStartModal = (projectId) => {
|
||||||
|
state.startModal = true;
|
||||||
|
state.templateProjectId=projectId
|
||||||
|
};
|
||||||
|
//确认存为模版
|
||||||
|
const templateProject=()=>{
|
||||||
|
let obj = {
|
||||||
|
projectId: state.templateProjectId,
|
||||||
|
type: 1,
|
||||||
|
};
|
||||||
|
api
|
||||||
|
.handleProject(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("模版保存成功", res);
|
||||||
|
message.destroy();
|
||||||
|
message.success("模版保存成功");
|
||||||
|
state.startModal = false;
|
||||||
|
getTableDate();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("模版保存失败", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//关闭存为模版弹窗
|
||||||
|
const closeStartModal = () => {
|
||||||
|
state.startModal = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// 数据接入 - end -
|
// 数据接入 - end -
|
||||||
@@ -1802,9 +1934,7 @@ console.log('获取学员人数失败',err)
|
|||||||
|
|
||||||
// 获取项目列表信息
|
// 获取项目列表信息
|
||||||
let tableData = ref([]);
|
let tableData = ref([]);
|
||||||
let currentPage = ref(1);
|
|
||||||
let tableDataTotal = ref("");
|
|
||||||
let pageSize = ref(10);
|
|
||||||
|
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{
|
{
|
||||||
@@ -1995,7 +2125,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2181,7 +2311,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2296,7 +2426,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2448,7 +2578,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2589,7 +2719,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2598,7 +2728,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="存为模版" label="存为模版">
|
<a-select-option value="存为模版" label="存为模版">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showStartModal();
|
showStartModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
存为模版
|
存为模版
|
||||||
@@ -2639,7 +2769,7 @@ console.log('获取学员人数失败',err)
|
|||||||
</a-select-option>
|
</a-select-option>
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showStartModal();
|
showStartModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
存为模版
|
存为模版
|
||||||
@@ -2648,7 +2778,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="结束" label="结束">
|
<a-select-option value="结束" label="结束">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showStopModal();
|
showStopModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
结束
|
结束
|
||||||
@@ -2657,7 +2787,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="撤回" label="撤回">
|
<a-select-option value="撤回" label="撤回">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showBackModal();
|
showBackModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
撤回
|
撤回
|
||||||
@@ -2686,7 +2816,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="存为模版" label="存为模版">
|
<a-select-option value="存为模版" label="存为模版">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showStartModal();
|
showStartModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
存为模版
|
存为模版
|
||||||
@@ -2704,7 +2834,7 @@ console.log('获取学员人数失败',err)
|
|||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showDeleteModal();
|
showDeleteModal(value.record.projectId);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
@@ -2738,17 +2868,25 @@ console.log('获取学员人数失败',err)
|
|||||||
|
|
||||||
const getTableDate = (pagedata) => {
|
const getTableDate = (pagedata) => {
|
||||||
let obj = {
|
let obj = {
|
||||||
pageNo: 1,
|
pageNo: state.currentPage,
|
||||||
pageSize: 10,
|
pageSize: state.pageSize,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.getProjectList(pagedata ? pagedata : obj)
|
.getProjectList(pagedata ? pagedata : obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
if (res.status == 200 && res.data.code == 200) {
|
if (res.status == 200 && res.data.code == 200) {
|
||||||
tableDataTotal.value = Number(res.data.data.total);
|
state.tableDataTotal = Number(res.data.data.total);
|
||||||
let data = res.data.data.rows;
|
let data = res.data.data.rows;
|
||||||
// let data = state.tableData;
|
// let data = state.tableData;
|
||||||
|
if (
|
||||||
|
data.length === 0 &&
|
||||||
|
res.data.data.total > 0 &&
|
||||||
|
state.currentPage > 1
|
||||||
|
) {
|
||||||
|
state.currentPage = state.currentPage - 1;
|
||||||
|
getTableDate();
|
||||||
|
}
|
||||||
console.log("1266", data);
|
console.log("1266", data);
|
||||||
data.map((value) => {
|
data.map((value) => {
|
||||||
console.log("value %o", value);
|
console.log("value %o", value);
|
||||||
@@ -2788,10 +2926,10 @@ console.log('获取学员人数失败',err)
|
|||||||
// 翻页
|
// 翻页
|
||||||
const changePagination = (page) => {
|
const changePagination = (page) => {
|
||||||
console.log(page);
|
console.log(page);
|
||||||
currentPage.value = page;
|
state.currentPage = page;
|
||||||
let pagedata = {
|
let pagedata = {
|
||||||
pageNo: page,
|
pageNo: page,
|
||||||
pageSize: 10,
|
pageSize: state.pageSize,
|
||||||
};
|
};
|
||||||
getTableDate(pagedata);
|
getTableDate(pagedata);
|
||||||
// getLearnPath();
|
// getLearnPath();
|
||||||
@@ -2826,30 +2964,9 @@ console.log('获取学员人数失败',err)
|
|||||||
const closeCopyModal = () => {
|
const closeCopyModal = () => {
|
||||||
state.copyModal = false;
|
state.copyModal = false;
|
||||||
};
|
};
|
||||||
const showStopModal = () => {
|
|
||||||
state.stopModal = true;
|
|
||||||
};
|
|
||||||
const closeStopModal = () => {
|
|
||||||
state.stopModal = false;
|
|
||||||
};
|
|
||||||
const showDeleteModal = () => {
|
|
||||||
state.deleteModal = true;
|
|
||||||
};
|
|
||||||
const closeDeleteModal = () => {
|
|
||||||
state.deleteModal = false;
|
|
||||||
};
|
|
||||||
const showStartModal = () => {
|
|
||||||
state.startModal = true;
|
|
||||||
};
|
|
||||||
const closeStartModal = () => {
|
|
||||||
state.startModal = false;
|
|
||||||
};
|
|
||||||
const showBackModal = () => {
|
|
||||||
state.backModal = true;
|
|
||||||
};
|
|
||||||
const closeBackModal = () => {
|
|
||||||
state.backModal = false;
|
|
||||||
};
|
|
||||||
const showProjOwner = () => {
|
const showProjOwner = () => {
|
||||||
state.ProjOwnervisible = true;
|
state.ProjOwnervisible = true;
|
||||||
};
|
};
|
||||||
@@ -2862,9 +2979,7 @@ console.log('获取学员人数失败',err)
|
|||||||
const showProjManage = () => {
|
const showProjManage = () => {
|
||||||
state.ProjManagevisible = true;
|
state.ProjManagevisible = true;
|
||||||
};
|
};
|
||||||
const closeProjectPub = () => {
|
|
||||||
state.projectPub = false;
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectProjectName,
|
||||||
@@ -2895,9 +3010,6 @@ console.log('获取学员人数失败',err)
|
|||||||
closeProjectPub,
|
closeProjectPub,
|
||||||
|
|
||||||
tableData,
|
tableData,
|
||||||
currentPage,
|
|
||||||
tableDataTotal,
|
|
||||||
pageSize,
|
|
||||||
columns,
|
columns,
|
||||||
createStoreyProject,
|
createStoreyProject,
|
||||||
classifyList,
|
classifyList,
|
||||||
@@ -2964,6 +3076,10 @@ console.log('获取学员人数失败',err)
|
|||||||
closeeditModal3,
|
closeeditModal3,
|
||||||
releaseProject,
|
releaseProject,
|
||||||
showProjectPub,
|
showProjectPub,
|
||||||
|
recallProject,
|
||||||
|
finishProject,
|
||||||
|
deleteProject,
|
||||||
|
templateProject,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -70,7 +70,6 @@
|
|||||||
animation="1000"
|
animation="1000"
|
||||||
@start="onStart"
|
@start="onStart"
|
||||||
@end="onEnd"
|
@end="onEnd"
|
||||||
:list="draggableList"
|
|
||||||
>
|
>
|
||||||
<template #item="{ element }">
|
<template #item="{ element }">
|
||||||
<div class="item" :key="element.id">
|
<div class="item" :key="element.id">
|
||||||
@@ -78,6 +77,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</draggable>
|
</draggable>
|
||||||
|
<div id="qrcode" style="display:flex;flex-direction: column;">
|
||||||
|
<div>下载二维码</div>
|
||||||
|
<qrcode-vue
|
||||||
|
:value="qrcodeUrl"
|
||||||
|
:size="qrcodeSize"
|
||||||
|
style="width: 200px;height: 200px"
|
||||||
|
></qrcode-vue>
|
||||||
|
</div>
|
||||||
|
<div @click="downloadQr(200)">下载200</div>
|
||||||
|
<div @click="downloadQr(400)">下载400</div>
|
||||||
|
<div @click="downloadQr(800)">下载800</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -93,6 +103,8 @@ import * as api from "../../api/index1";
|
|||||||
// }
|
// }
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import draggable from "vuedraggable";
|
import draggable from "vuedraggable";
|
||||||
|
import QrcodeVue from "qrcode.vue";
|
||||||
|
import html2canvas from "html2canvas";
|
||||||
export default {
|
export default {
|
||||||
name: "SystemManage",
|
name: "SystemManage",
|
||||||
components: {
|
components: {
|
||||||
@@ -100,6 +112,7 @@ export default {
|
|||||||
// LoadingOutlined,
|
// LoadingOutlined,
|
||||||
// PlusOutlined,
|
// PlusOutlined,
|
||||||
draggable,
|
draggable,
|
||||||
|
QrcodeVue,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
@@ -135,6 +148,8 @@ export default {
|
|||||||
name: "拖拽六",
|
name: "拖拽六",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
qrcodeUrl: "https://www.baidu.com/",
|
||||||
|
qrcodeSize:800,
|
||||||
});
|
});
|
||||||
|
|
||||||
const showDrawer = () => {
|
const showDrawer = () => {
|
||||||
@@ -214,6 +229,80 @@ export default {
|
|||||||
const golearningpath = () => {
|
const golearningpath = () => {
|
||||||
router.push({ path: "/learningpath", params: { id: 1 } });
|
router.push({ path: "/learningpath", params: { id: 1 } });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//下载二维码图片
|
||||||
|
const downloadQr = (num) => {
|
||||||
|
console.log("num", num);
|
||||||
|
state.qrcodeSize=num
|
||||||
|
let filename = `${new Date().getTime()}.png`;
|
||||||
|
let canvas=document.getElementsByTagName('canvas')[0]
|
||||||
|
let imageUrl = canvas.toDataURL("image/png")
|
||||||
|
|
||||||
|
let canvasBox = document.createElement('canvas');
|
||||||
|
let ctx = canvasBox.getContext("2d");
|
||||||
|
var img = new Image();
|
||||||
|
// 需要添加文字的图片
|
||||||
|
img.src = imageUrl;
|
||||||
|
// 等待图片加载完成
|
||||||
|
img.onload = function(){
|
||||||
|
// 将图片添加到canvas
|
||||||
|
ctx.drawImage(img, 0, 0, 1240, 2208)
|
||||||
|
// 设置字体
|
||||||
|
ctx.font = "73px 微软雅黑 bolder"
|
||||||
|
// 设置字体颜色
|
||||||
|
ctx.fillStyle = "#955f17"
|
||||||
|
ctx.textAlign = "center"
|
||||||
|
// 添加文字和位置
|
||||||
|
ctx.fillText("微信名", 621, 1050);
|
||||||
|
|
||||||
|
// 导出为图片
|
||||||
|
let url = canvasBox.toDataURL("image/png")
|
||||||
|
let a = document.createElement("a");
|
||||||
|
a.style.display = "none";
|
||||||
|
a.download = filename;
|
||||||
|
a.href = url;
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// let a = document.createElement("a");
|
||||||
|
// a.style.display = "none";
|
||||||
|
// a.download = filename;
|
||||||
|
// a.href = imageUrl;
|
||||||
|
// document.body.appendChild(a);
|
||||||
|
// a.click();
|
||||||
|
|
||||||
|
|
||||||
|
html2canvas(document.querySelector("#qrcode"), {
|
||||||
|
useCORS: true, //支持图片跨域
|
||||||
|
}).then((canvas) => {
|
||||||
|
// var extra_canvas = document.createElement("canvas");
|
||||||
|
// extra_canvas.setAttribute('width',num);
|
||||||
|
// extra_canvas.setAttribute('height',num);
|
||||||
|
// var ctx = extra_canvas.getContext('2d');
|
||||||
|
// ctx.drawImage(canvas,0,0,num,num);
|
||||||
|
// let filename = `${new Date().getTime()}.png`;
|
||||||
|
// var imageUrl = extra_canvas.toDataURL("image/png",1.0);
|
||||||
|
|
||||||
|
console.log('canvas',canvas, canvas.width,canvas.style.width)
|
||||||
|
|
||||||
|
// // let ctx = canvas.getContext('2d');
|
||||||
|
// // ctx.drawImage(canvas,0,0,canvas.width, canvas.height);
|
||||||
|
// // canvas.width=num
|
||||||
|
// // canvas.height=num
|
||||||
|
// // canvas.style.width=num+'px'
|
||||||
|
// // canvas.style.height=num+'px'
|
||||||
|
// let filename = `${new Date().getTime()}.png`;
|
||||||
|
// let imageUrl = canvas.toDataURL("image/png");
|
||||||
|
// let a = document.createElement("a");
|
||||||
|
// a.style.display = "none";
|
||||||
|
// a.download = filename;
|
||||||
|
// a.href = imageUrl;
|
||||||
|
// document.body.appendChild(a);
|
||||||
|
// a.click();
|
||||||
|
});
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
showDrawer,
|
showDrawer,
|
||||||
@@ -221,6 +310,7 @@ export default {
|
|||||||
handleChange,
|
handleChange,
|
||||||
beforeUpload,
|
beforeUpload,
|
||||||
golearningpath,
|
golearningpath,
|
||||||
|
downloadQr,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -228,6 +318,7 @@ export default {
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.systemManage {
|
.systemManage {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.ant-input-textarea-show-count {
|
.ant-input-textarea-show-count {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user