From 15210e9064559d38133139599e22525ec1945265 Mon Sep 17 00:00:00 2001 From: dongwug Date: Wed, 9 Nov 2022 09:05:34 +0800 Subject: [PATCH 01/14] =?UTF-8?q?feat:=E6=8A=95=E7=A5=A8=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 29 +++++++++++++++++++++++++--- src/api/indexEval.js | 2 +- src/components/drawers/AddInvist.vue | 2 +- src/components/drawers/AddVote.vue | 4 +++- src/components/drawers/CreVote.vue | 24 +++++++++++++++-------- 5 files changed, 47 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 379ccd42..fc6622f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,10 @@ "element-plus": "^2.2.17", "jquery": "^3.6.1", "qs": "^6.11.0", + "sortablejs": "^1.15.0", "vue": "^3.2.13", "vue-router": "^4.0.3", + "vuedraggable": "^4.1.0", "vuex": "^4.0.0" }, "devDependencies": { @@ -9522,6 +9524,11 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sortablejs": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz", + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", @@ -10447,6 +10454,22 @@ "node": ">=0.10.0" } }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz", + "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/vuedraggable/node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" + }, "node_modules/vuex": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.0.2.tgz", @@ -14906,9 +14929,9 @@ } }, "dayjs": { - "version": "1.11.6", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.6.tgz", - "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + "version": "1.11.5", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" }, "debug": { "version": "4.3.4", diff --git a/src/api/indexEval.js b/src/api/indexEval.js index f76de0b9..01f7794f 100644 --- a/src/api/indexEval.js +++ b/src/api/indexEval.js @@ -1,5 +1,5 @@ import http from "./config"; -import qs from 'qs'; +// import qs from 'qs'; /** * 接口传参数方式(get) diff --git a/src/components/drawers/AddInvist.vue b/src/components/drawers/AddInvist.vue index 61f36c1d..8655565a 100644 --- a/src/components/drawers/AddInvist.vue +++ b/src/components/drawers/AddInvist.vue @@ -269,7 +269,6 @@ export default { appraiseId: 0, appraiseStartTime: "", appraiseTag: "", - createTime: "", createUser: 0, researchId: 0, researchName: "", @@ -325,6 +324,7 @@ export default { // state.createLoading = false; }); }; + //搜索评估信息接口 onMounted(() => { // createInvist(); diff --git a/src/components/drawers/AddVote.vue b/src/components/drawers/AddVote.vue index 39681d3e..d13fe14e 100644 --- a/src/components/drawers/AddVote.vue +++ b/src/components/drawers/AddVote.vue @@ -65,7 +65,7 @@
- 传过来的name + {{voteStemName}}
@@ -197,6 +197,7 @@ export default { ascriptionId: "", voteStemId: "", voteId:"", + voteStemName:"", }); const closeDrawer = () => { ctx.emit("update:addvoteVisible", false); @@ -213,6 +214,7 @@ export default { state.creVote = data.creVote; state.ascriptionId = data.ascriptionId; state.voteStemId = data.voteStemId; + state.voteStemName = data.voteStemName; console.log("222", state.creVote); console.log("333", state.ascriptionId); }; diff --git a/src/components/drawers/CreVote.vue b/src/components/drawers/CreVote.vue index fb0c3ebf..9722df81 100644 --- a/src/components/drawers/CreVote.vue +++ b/src/components/drawers/CreVote.vue @@ -159,15 +159,21 @@ export default { //创建题干接口 const createQueTit = () => { - if (!state.questions[0].inputV) { + if (state.inputV1 == "") { message.destroy(); - return message.info("请输入题干"); + return message.info("请输入投票名称"); } + // if (!state.questions.inputV) { + // message.destroy(); + // return message.info("请输入题干"); + // } // if (!state.questions.optins.opvalue) { // message.destroy(); // return message.info("请输入选项"); // } - console.log(state.questions[0].inputV); + console.log('111111',state.questions); + // console.log('22222',state.questions.inputV); + // console.log('333333',state.questions.options); let obj = [ { ascriptionId: 0, @@ -176,7 +182,7 @@ export default { { createUser: 0, optionId: 0, - optionName: "", + optionName: state.questions[0].options[0].opvalue, optionOrderNum: "", optionPictureAddress: "", stem: "", @@ -190,15 +196,16 @@ export default { updateUser: 0, voteStemFlag: "", voteStemId: 0, - voteStemName: "", + voteStemName: state.questions[0].inputV, }, ]; api .createOptionMessage(obj) .then((res) => { console.log("创建成功", res); - console.log('res.data.data[0].ascriptionId',res.data.data[0].ascriptionId); - console.log('res.data.data[0].voteStemId',res.data.data[0].voteStemId); + // console.log('res.data.data[0].ascriptionId',res.data.data[0].ascriptionId); + // console.log('res.data.data[0].voteStemId',res.data.data[0].voteStemId); + // console.log('state.questions[0].inputV',state.questions[0].inputV); message.success("创建成功"); //获取题干信息 let objstem = { @@ -217,7 +224,8 @@ export default { let stemData = { creVote: state.creVote, ascriptionId: res.data.data[0].ascriptionId, - voteStemId:res.data.data[0].voteStemId + voteStemId: res.data.data[0].voteStemId, + voteStemName: state.questions[0].inputV, }; ctx.emit("getData", stemData); closeDrawer(); From 3ec7c07e577d8085fc872170da736781989ca4ab Mon Sep 17 00:00:00 2001 From: lixg Date: Wed, 9 Nov 2022 09:36:45 +0800 Subject: [PATCH 02/14] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9A=84=E5=AD=98=E4=B8=BA=E6=A8=A1=E7=89=88,=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 98 +++++++ package.json | 2 + src/api/index.js | 12 +- src/api/index1.js | 2 +- src/views/projectcenter/ProjectManage.vue | 300 +++++++++++++++------- src/views/system/SystemManage.vue | 93 ++++++- 6 files changed, 411 insertions(+), 96 deletions(-) diff --git a/package-lock.json b/package-lock.json index 52bc5ebc..be3fa8d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,9 @@ "axios": "^1.1.3", "core-js": "^3.8.3", "element-plus": "^2.2.17", + "html2canvas": "^1.4.1", "jquery": "^3.6.1", + "qrcode.vue": "^3.3.3", "qs": "^6.11.0", "sortablejs": "^1.15.0", "vue": "^3.2.13", @@ -3514,6 +3516,14 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "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": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", @@ -4279,6 +4289,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": { "version": "6.7.1", "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", @@ -6332,6 +6350,18 @@ "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": { "version": "6.1.0", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -8757,6 +8787,14 @@ "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": { "version": "6.11.0", "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==", "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": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", @@ -10186,6 +10232,14 @@ "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": { "version": "8.3.2", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", @@ -14091,6 +14145,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "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": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", @@ -14733,6 +14792,14 @@ "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", "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": { "version": "6.7.1", "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", @@ -16424,6 +16491,15 @@ "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": { "version": "6.1.0", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -18387,6 +18463,12 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "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": { "version": "6.11.0", "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": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", @@ -19578,6 +19668,14 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "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": { "version": "8.3.2", "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", diff --git a/package.json b/package.json index 7f47e397..faa48370 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "axios": "^1.1.3", "core-js": "^3.8.3", "element-plus": "^2.2.17", + "html2canvas": "^1.4.1", "jquery": "^3.6.1", + "qrcode.vue": "^3.3.3", "qs": "^6.11.0", "sortablejs": "^1.15.0", "vue": "^3.2.13", diff --git a/src/api/index.js b/src/api/index.js index b0db5ad7..994fc519 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2022-11-07 17:06:45 * @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 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -56,4 +56,12 @@ export const getProjectDetail = (obj) => http.get('/admin/project/detail', { par //发布项目 export const releaseProject=(obj)=>http.post('/admin/project/publish',obj) //获取项目学员 -export const projectStudent=(obj)=>http.post('/admin/project/studentList',obj) \ No newline at end of file +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) diff --git a/src/api/index1.js b/src/api/index1.js index 16e7ee9d..0024073f 100644 --- a/src/api/index1.js +++ b/src/api/index1.js @@ -2,7 +2,7 @@ * @Author: lixg lixg@dongwu-inc.com * @Date: 2022-11-04 22:45:31 * @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 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ diff --git a/src/views/projectcenter/ProjectManage.vue b/src/views/projectcenter/ProjectManage.vue index 085f353d..a121bc62 100644 --- a/src/views/projectcenter/ProjectManage.vue +++ b/src/views/projectcenter/ProjectManage.vue @@ -58,13 +58,13 @@ />
-
+
-
搜索
+
搜索
-
+
-
重置
+
重置
@@ -849,11 +849,11 @@
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -879,11 +879,11 @@ 您确定要删除此项目吗
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -910,10 +910,10 @@
-
取消
+
取消
-
确定
+
确定
@@ -1014,11 +1014,11 @@
(项目撤回后学员进度保留,发布后可继续学习)
-
-
取消
+
+
取消
-
-
确定
+
+
确定
@@ -1080,8 +1080,17 @@ export default { currentEditChildrensProjectId: "", dcProjectID: "", + + currentPage: 1, //当前页 + tableDataTotal: -1, //学习路径列表总数 + pageSize: 10, //每页10条数据 + projectStudentsNum:0,//发布弹窗-学员人数 releaseProjectId: null, //发布的项目id + recallProjectId:null,//撤回的项目id + finishProjectId:null,//结束的项目id + deleteProjectId:null,//删除的项目id + templateProjectId:null,//存为模版的项目id }); // 数据接入 - start - const router = useRouter(); @@ -1146,13 +1155,16 @@ export default { endTime = ""; status = null; managerid = ""; + state.currentPage=1 getTableDate(); }; const searchSubmit = () => { + console.log('点击了搜索') + state.currentPage=1 const obj = { - pageNo: 1, - pageSize: 10, + pageNo: state.currentPage, + pageSize: state.pageSize, beginTime: beginTime, endTime: endTime, status: status, @@ -1354,6 +1366,7 @@ export default { state.doublepro = false; message.destroy(); message.success("创建成功"); + state.currentPage=1 getTableDate(); } }) @@ -1598,6 +1611,7 @@ export default { state.doublesonpro = false; message.destroy(); message.success("创建成功"); + state.currentPage=1 getTableDate(); } }) @@ -1608,6 +1622,9 @@ export default { }); }; + + + // 编辑多层子项目 const edvalue6 = ref(""); const edvalue7 = ref([]); @@ -1743,26 +1760,8 @@ export default { 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) => { state.projectPub = true; state.releaseProjectId = projectId; @@ -1783,9 +1782,142 @@ 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 - @@ -1802,9 +1934,7 @@ console.log('获取学员人数失败',err) // 获取项目列表信息 let tableData = ref([]); - let currentPage = ref(1); - let tableDataTotal = ref(""); - let pageSize = ref(10); + const columns = ref([ { @@ -1995,7 +2125,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2181,7 +2311,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2296,7 +2426,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2448,7 +2578,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2589,7 +2719,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2598,7 +2728,7 @@ console.log('获取学员人数失败',err)
{ - showStartModal(); + showStartModal(value.record.projectId); }} > 存为模版 @@ -2639,7 +2769,7 @@ console.log('获取学员人数失败',err)
{ - showStartModal(); + showStartModal(value.record.projectId); }} > 存为模版 @@ -2648,7 +2778,7 @@ console.log('获取学员人数失败',err)
{ - showStopModal(); + showStopModal(value.record.projectId); }} > 结束 @@ -2657,7 +2787,7 @@ console.log('获取学员人数失败',err)
{ - showBackModal(); + showBackModal(value.record.projectId); }} > 撤回 @@ -2686,7 +2816,7 @@ console.log('获取学员人数失败',err)
{ - showStartModal(); + showStartModal(value.record.projectId); }} > 存为模版 @@ -2704,7 +2834,7 @@ console.log('获取学员人数失败',err)
{ - showDeleteModal(); + showDeleteModal(value.record.projectId); }} > 删除 @@ -2738,17 +2868,25 @@ console.log('获取学员人数失败',err) const getTableDate = (pagedata) => { let obj = { - pageNo: 1, - pageSize: 10, + pageNo: state.currentPage, + pageSize: state.pageSize, }; api .getProjectList(pagedata ? pagedata : obj) .then((res) => { console.log(res); 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 = state.tableData; + if ( + data.length === 0 && + res.data.data.total > 0 && + state.currentPage > 1 + ) { + state.currentPage = state.currentPage - 1; + getTableDate(); + } console.log("1266", data); data.map((value) => { console.log("value %o", value); @@ -2788,10 +2926,10 @@ console.log('获取学员人数失败',err) // 翻页 const changePagination = (page) => { console.log(page); - currentPage.value = page; + state.currentPage = page; let pagedata = { pageNo: page, - pageSize: 10, + pageSize: state.pageSize, }; getTableDate(pagedata); // getLearnPath(); @@ -2826,30 +2964,9 @@ console.log('获取学员人数失败',err) const closeCopyModal = () => { 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 = () => { state.ProjOwnervisible = true; }; @@ -2862,9 +2979,7 @@ console.log('获取学员人数失败',err) const showProjManage = () => { state.ProjManagevisible = true; }; - const closeProjectPub = () => { - state.projectPub = false; - }; + return { ...toRefs(state), selectProjectName, @@ -2895,9 +3010,6 @@ console.log('获取学员人数失败',err) closeProjectPub, tableData, - currentPage, - tableDataTotal, - pageSize, columns, createStoreyProject, classifyList, @@ -2964,6 +3076,10 @@ console.log('获取学员人数失败',err) closeeditModal3, releaseProject, showProjectPub, + recallProject, + finishProject, + deleteProject, + templateProject, }; }, }; diff --git a/src/views/system/SystemManage.vue b/src/views/system/SystemManage.vue index 9c791a40..1c024efb 100644 --- a/src/views/system/SystemManage.vue +++ b/src/views/system/SystemManage.vue @@ -70,7 +70,6 @@ animation="1000" @start="onStart" @end="onEnd" - :list="draggableList" > +
+
下载二维码
+ +
+
下载200
+
下载400
+
下载800
+ + \ No newline at end of file diff --git a/src/components/drawers/StuAdd.vue b/src/components/drawers/StuAdd.vue index cdb761cf..735d851f 100644 --- a/src/components/drawers/StuAdd.vue +++ b/src/components/drawers/StuAdd.vue @@ -65,32 +65,50 @@
清空
--> -
- -
- +
+ + + +
+
+ +
+ +
@@ -101,36 +119,14 @@ style="overflow-y: auto" >
-
-
选择组织:
-
- - -
-
-
-
姓名:
+
+
组织:
-
- -
@@ -149,6 +145,34 @@
重置
+ +
+
+ + + +
+ +
@@ -284,204 +308,19 @@ 全部清除
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 -
-
-
- 李明 -
-
-
- 李大明 -
-
-
- 李二明 +
+
快速选人
+
+ +
+ {{ item.name }}
+
+
添加组织
+
+
受众关联
@@ -521,9 +360,12 @@ export default { value: [], //级联选择框 choosevalue: null, //受众选择 valueSelect: null, //树形选择 + valueSelectboe: null, //boe树形选择 + valueSelectboe2: null, //boe树形选择 name: "", nameadd: "", nameaddd: "", + com: "", treeData: [ { title: "京东方", @@ -691,69 +533,236 @@ export default { ], }, ], + treeData2: [ + { + title: "京东方", + value: "京东方", + children: [ + { + title: "产研部", + value: "产研部", + children: [ + { + title: "产品部", + value: "产品部", + }, + { + title: "研究部", + value: "研究部", + }, + ], + }, + { + title: "二级标题", + value: "二级标题", + children: [ + { + title: "三级标题", + value: "三级标题", + children: [ + { + title: "四级标题", + value: "四级标题", + children: [ + { + title: "五级标题", + value: "五级标题", + children: [ + { + title: "六级标题", + value: "六级标题", + children: [ + { + title: "七级标题", + value: "七级标题", + children: [ + { + title: "八级标题", + value: "八级标题", + children: [ + { + title: "九级标题", + value: "九级标题", + children: [ + { + title: "十级标题", + value: "十级标题", + children: [ + { + title: "十一级标题", + value: "十一级标题", + children: [ + { + title: "十二级标题", + value: "十二级标题", + children: [ + { + title: + "十三级标题十三级标题十三级标题十三级标题", + value: "十三级标题", + children: [ + { + title: + "十四级标题", + value: + "十四级标题", + children: [ + { + title: + "十五级标题", + value: + "十五级标题", + children: [ + { + title: + "十六级标题", + value: + "十六级标题", + children: + [ + { + title: + "十七级标题", + value: + "十七级标题", + children: + [ + { + title: + "十八级标题", + value: + "十八级标题", + children: + [ + { + title: + "十九级标题", + value: + "十九级标题", + children: + [ + { + title: + "二十级标题二十级标题", + value: + "二十级标题二十级标题", + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + { + title: "人力资源部", + value: "人力资源部", + children: [ + { + title: "人事部", + value: "人事部", + }, + { + title: "行政部", + value: "行政部", + }, + ], + }, + ], + }, + ], tabledata: [ { key: 1, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 2, name: "小刘", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 3, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 4, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 5, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 6, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 7, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 8, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, { key: 9, name: "小李", bum: "产研部", numb: "000000", - guishu: "", + guishu: "产品部", }, ], tablecolumns: [ @@ -761,7 +770,7 @@ export default { title: "姓名", dataIndex: "name", key: "name", - width: 30, + // width: 30, align: "left", className: "h", }, @@ -769,7 +778,7 @@ export default { title: "工号", dataIndex: "numb", key: "numb", - width: 35, + // width: 30, align: "center", className: "h", }, @@ -777,7 +786,7 @@ export default { title: "归属组织", dataIndex: "guishu", key: "guishu", - width: 30, + // width: 30, align: "center", className: "h", }, @@ -785,7 +794,7 @@ export default { title: "部门", dataIndex: "bum", key: "bum", - width: 40, + // width: 30, align: "center", className: "h", }, @@ -998,6 +1007,52 @@ export default { label: "人力资源hrbp", }, ], + choosepeople: [ + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + { + id: 1, + name: "李明", + }, + ], }); const closeDrawer = () => { state.activeKey = "1"; @@ -1234,49 +1289,70 @@ export default { } } } - .tabb { - .ant-table-thead > tr > th { - background-color: rgba(240, 246, 252, 1); - color: rgba(0, 0, 0, 0.85); - } - .ant-table-tbody > tr > td { - border-bottom: 1px solid #f0f6fc; - color: rgba(0, 0, 0, 0.65); - } - th.h { - background-color: #eff4fc !important; + .chooseLeft { + display: flex; + justify-content: space-between; + .boeTree { + margin-top: 20px; + width: 300px; + height: 40px; + margin-right: 10px; + .ant-select { + .ant-select-selector { + border-radius: 8px; + height: 40px; + .ant-select-selection-placeholder { + color: #409eff; + margin-left: 72px !important; + margin-top: 4px !important; + } + } + } } + .tabb { + .ant-table-thead > tr > th { + background-color: rgba(240, 246, 252, 1); + color: rgba(0, 0, 0, 0.85); + } + .ant-table-tbody > tr > td { + border-bottom: 1px solid #f0f6fc; + color: rgba(0, 0, 0, 0.65); + } + th.h { + background-color: #eff4fc !important; + } - .ant-table-tbody - > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) - > td { - background: rgba(250, 250, 250, 1); - } - .ant-table-selection-column { - padding: 0 !important; - } - // table tr td.ant-table-selection-column { - // text-align: right; - // } - // .ant-checkbox-wrapper { - // align-items: center; - // margin-top: -2px; - // } - .pa { - // left: 0; - margin-top: 15px; - width: 100%; - // height: 20px; - // background-color: red; - display: flex; - justify-content: center; - // position: absolute; - // bottom: 20px; - .ant-pagination-item, - .ant-pagination-prev, - .ant-pagination-next, - .ant-pagination-options { - margin-bottom: 10px; + .ant-table-tbody + > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) + > td { + background: rgba(250, 250, 250, 1); + } + .ant-table-selection-column { + padding: 0 !important; + } + // table tr td.ant-table-selection-column { + // text-align: right; + // } + // .ant-checkbox-wrapper { + // align-items: center; + // margin-top: -2px; + // } + .pa { + // left: 0; + margin-top: 15px; + width: 100%; + // height: 20px; + // background-color: red; + display: flex; + justify-content: center; + // position: absolute; + // bottom: 20px; + .ant-pagination-item, + .ant-pagination-prev, + .ant-pagination-next, + .ant-pagination-options { + margin-bottom: 10px; + } } } } @@ -1284,45 +1360,27 @@ export default { .tab2 { display: flex; align-items: center; - margin-top: 10px; + // margin-top: 10px; flex-wrap: wrap; justify-content: space-between; + .nameinp { + display: flex; + align-items: center; + margin-top: 10px; + .namee { + color: rgba(0, 0, 0, 0.85); + font-size: 14px; + } + } .t1 { display: flex; align-items: center; margin-bottom: 5px; } - .organize { - color: rgba(0, 0, 0, 0.85); - font-size: 14px; - white-space: nowrap; - } - - .ant-select-dropdown { - min-width: 800px !important; - } - .ant-select { - border-radius: 8px !important; - // background-color: red; - } - .ant-cascader { - width: 264px; - height: 40px; - border-radius: 8px !important; - .ant-select-selector { - height: 100%; - } - .ant-select-selection-search-input { - height: 40px; - } - } - } - - .searchdown { .btns { display: flex; - margin-top: 10px; + // margin-top: -10px; .btn1 { width: 100px; height: 40px; @@ -1357,6 +1415,47 @@ export default { } } } + .organize { + color: rgba(0, 0, 0, 0.85); + font-size: 14px; + white-space: nowrap; + } + + .ant-select-dropdown { + min-width: 800px !important; + } + .ant-select { + border-radius: 8px !important; + // background-color: red; + } + .ant-cascader { + width: 264px; + height: 40px; + border-radius: 8px !important; + .ant-select-selector { + height: 100%; + } + .ant-select-selection-search-input { + height: 40px; + } + } + } + .boeTree { + margin-top: 20px; + width: 300px; + height: 40px; + margin-right: 10px; + .ant-select { + .ant-select-selector { + border-radius: 8px; + height: 40px; + .ant-select-selection-placeholder { + color: #409eff; + margin-left: 72px !important; + margin-top: 4px !important; + } + } + } } } } @@ -1416,10 +1515,25 @@ export default { } } } + .line { + width: 90%; + height: 1px; + background-color: #e8e8e8; + margin-left: 12px; + margin-top: 20px; + } + .tit { + font-size: 14px; + font-weight: 500; + margin-top: 12px; + margin-left: 32px; + } .selecteds { display: flex; flex-wrap: wrap; margin-left: 32px; + height: 200px; + overflow-y: hidden; .chose { width: 64px; height: 24px; @@ -1490,4 +1604,18 @@ export default { width: 7px !important; } } +.changetreedropdownboe { + width: 240px !important; + border-radius: 5px; + min-height: 600px !important; + .ant-select-tree-list-scrollbar { + width: 5px !important; + .ant-select-tree-list-scrollbar-thumb { + background-color: #4ea6ff !important; + } + } + .ant-select-tree-indent-unit { + width: 7px !important; + } +} diff --git a/src/views/projectcenter/TaskAdd.vue b/src/views/projectcenter/TaskAdd.vue index eeb9619d..c9510c07 100644 --- a/src/views/projectcenter/TaskAdd.vue +++ b/src/views/projectcenter/TaskAdd.vue @@ -1326,7 +1326,16 @@ export default { // console.log("22222", res.data.data.stageList); let leng = res.data.data.stageList.length; if (leng > 0) { - //获取任务列表 + //后加选择了阶段id + // if(state.chooseStageId!==null){ + // let final = res.data.data.stageList.find((item)=>item.id==state.chooseStageId) + // getTableData(final) + // }else{ + // //获取任务列表 + // let arr = res.data.data.stageList[0].taskList; + // console.log("任务列表", arr); + // getTableData(arr); + // } let arr = res.data.data.stageList[0].taskList; console.log("任务列表", arr); getTableData(arr); diff --git a/src/views/projectcenter/TaskPage.vue b/src/views/projectcenter/TaskPage.vue index ebaf0cb1..f83efd1b 100644 --- a/src/views/projectcenter/TaskPage.vue +++ b/src/views/projectcenter/TaskPage.vue @@ -597,11 +597,11 @@ />
-
+
搜索
-
+
重置
@@ -617,11 +617,16 @@ 随机分组
+
-
+
-
好好学习小组
+
{{ item.groupName }}
编辑
-
删除
+
+ 删除 +
-
组长:小李
+
组长:{{ item.leaderName }}
进度
- -
-
-
组员名单 >
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
-
全能小组
-
- . . . -
-
编辑
-
删除
-
-
-
-
组长:小李
-
-
进度
- -
-
-
组员名单 >
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
-
宇宙第一最强小组
-
- . . . -
-
编辑
-
删除
-
-
-
-
组长:小李
-
-
进度
- -
-
-
组员名单 >
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
-
天天向上小组
-
- . . . -
-
编辑
-
删除
-
-
-
-
组长:小李
-
-
进度
- +
组员名单 >
@@ -954,7 +823,7 @@ -->
-
+
编辑
@@ -968,7 +837,7 @@
封面图:
@@ -1206,7 +1075,7 @@
取消 - 确定 + 确定
@@ -1309,232 +1178,7 @@
- -
- -
-
- - 编辑 -
-
- -
-
-
-
基本信息
-
-
-
-
- -
- 项目名称: -
-
- -
-
-
-
- 直播封面: -
-
-
- + - 添加图片 -
-
-
-
-
-
- -
- 项目时间: -
-
- -
-
-
-
-
- -
- 项目经理: -
-
- -
-
-
-
-
- -
- 资源归属: -
-
- -
-
-
-
- 项目说明: -
-
- -
-
-
-
- 同步学习记录: -
-
- - 同步课程学习记录(如学员在课程库中拥有课程的学习记录,自由免修改课程) - - -
-
-
-
-
- -
- 项目级别: -
-
- -
-
-
-
-
- -
- 培训体系: -
-
- -
-
-
-
-
- -
- 是否BOEU实施: -
-
- - BOEU实施 - -
-
-
-
- 取消 - 发布 -
-
-
-
-
+ +