From aa82ccfee18cb3c5d454ee46df7c5da3dca2be64 Mon Sep 17 00:00:00 2001 From: A <1445840182@qq.com> Date: Wed, 13 Jul 2022 10:12:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E5=92=8C=E7=BB=9F=E8=AE=A1=E5=9B=BE=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CreateGgDialog.vue | 0 src/components/CreatePersonDialog.vue | 1 - src/components/echartsPie.vue | 3 +- src/views/ProjectGroup.vue | 32 +++ src/views/ProjectInfo.vue | 325 +++++++++++++++++++++++--- 5 files changed, 330 insertions(+), 31 deletions(-) create mode 100644 src/components/CreateGgDialog.vue diff --git a/src/components/CreateGgDialog.vue b/src/components/CreateGgDialog.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/components/CreatePersonDialog.vue b/src/components/CreatePersonDialog.vue index 879aaa0..ca29505 100644 --- a/src/components/CreatePersonDialog.vue +++ b/src/components/CreatePersonDialog.vue @@ -5,7 +5,6 @@ title="添加成员" :before-close="handleClose" v-model="dialogFormVisible" - width="500px" > diff --git a/src/components/echartsPie.vue b/src/components/echartsPie.vue index 3f302a6..6c11dfc 100644 --- a/src/components/echartsPie.vue +++ b/src/components/echartsPie.vue @@ -87,7 +87,8 @@ export default { option.legend = { type: 'scroll', orient: 'vertical', - right: 10, + // right: 10, + left:350, top: 20, bottom: 20, } diff --git a/src/views/ProjectGroup.vue b/src/views/ProjectGroup.vue index 92fc2ab..7dadc28 100644 --- a/src/views/ProjectGroup.vue +++ b/src/views/ProjectGroup.vue @@ -70,6 +70,7 @@

团队工作情况统计

+
@@ -129,6 +130,7 @@ export default { return { // 岗位列表 stationList: [], + teamList: [], total: 20, currentPage: 1, pageSize: 10, @@ -193,6 +195,34 @@ export default { console.log(error); }); }, + getTeamList() { + let projectId = this.$route.params.projectId; + request({ + url: `project/${projectId}/task/stats/group`, + method: "get", + }) + .then((response) => { + if (response.data.code === 200) { + console.log(response.data.data); + let data = response.data.data; + let array = []; + for (let key in data) { + array.push({ value: data[key], name: key }); + } + + this.teamList = array; + this.$nextTick(() => { + this.$refs.pie_team.updateEcharts(); + + + }); + console.log(array); + } + }) + .catch(function (error) { + console.log(error); + }); + }, onCreatePerson() { this.dialogFormVisible = true; }, @@ -246,6 +276,7 @@ export default { }; this.getTableData(data); this.getStationList(); + this.getTeamList(); this.$emit('groupChanged') }, getTableData(param) { @@ -290,6 +321,7 @@ export default { }, mounted() { this.getStationList(); + this.getTeamList(); const param = { pageCurrent: this.currentPage, pageSize: this.pageSize, diff --git a/src/views/ProjectInfo.vue b/src/views/ProjectInfo.vue index cd83cc1..5a7c6c8 100644 --- a/src/views/ProjectInfo.vue +++ b/src/views/ProjectInfo.vue @@ -4,7 +4,8 @@ display: flex;flex-direction: row;justify-content: space-between">

基本信息

-
@@ -36,9 +37,8 @@

进度

- +
@@ -47,7 +47,8 @@

工作项统计

-
@@ -59,10 +60,12 @@

详细信息

- 编辑 + 编辑
-
+

英文简称

@@ -146,27 +149,105 @@
-
-

公告

-
-

{{ project.projectDescription }}

+
+ +
+

公告

+
+ 新增 +
+ +
+ + +
+
+

< 返回

+
+

{{ findGgInfoContent.announcementTitle }}

+
+ 删除
+
+ +
+ 日期:{{ findGgInfoContent.announcementPublishTime }}    发布人:{{ findGgInfoContent.announcementPublisherName }}   +
+
+ {{ findGgInfoContent.announcementContent }} +
+ +
+ +
+ + + +

+ {{ item.announcementTitle }}

+

{{ item.announcementPublisherName }} 发布于 {{ item.announcementPublishTime }}

+
+
+
+
+
+ +
- + + + + + + + + + + + + + + + + + + + + + + +
确认删除该公告?
+ +
@@ -177,7 +258,7 @@ import EditProjectDialog from "../components/EditProjectDialog"; export default { name: "ProjectInfo", - components: {EditProjectDialog}, + components: { EditProjectDialog }, data() { return { project: { @@ -211,7 +292,29 @@ export default { viewHeight: 0, editProjectDialogVisible: false, - editProjectInfo: {} + editProjectInfo: {}, + // 项目公告 + ggList: [], + + //表单 + centerDialogVisible: false, + form: { + addggbttxt: "", + addggtextarea: '', + }, + rules: { + addggbttxt: [ + { required: true, message: '请输入公告标题', trigger: 'blur' }, + ], + addggtextarea: [ + { required: true, message: '请输入公告内容', trigger: 'blur' }, + ], + }, + findGgInfoContent: "", + findGgBoxShow: false, + dialogVisible:false, + delGGid:"" + } }, props: { @@ -270,7 +373,9 @@ export default { created() { this.getProjectInfo(); this.getProjectStats(); - this.getProjectClass() + this.getProjectClass(); + this.getannouncementList(); + }, mounted() { const that = this @@ -278,15 +383,154 @@ export default { window.onresize = () => { that.viewHeight = window.innerHeight - 150; }; + }, methods: { + // 删除公告 + delxtggsj(){ + var that = this; + let projectId = this.$route.params.projectId; + let announcementId= that.delGGid; + request({ + url: `project/${projectId}/announcement/${announcementId}`, + method: "DELETE", + }) + .then((response) => { + if (response.data.code === 200) { + console.log("成功"); + this.$message({ + message: '删除成功', + type: 'success' + }); + that.dialogVisible = false; + that.getannouncementList(); + let data = response.data.data; + console.log(data); + //返回 + that.gbGgBosShow(); + } + }) + .catch(function (error) { + console.log(error); + }); + }, + showDelbox(id){ + var that = this; + that.dialogVisible = true; + that.delGGid = id; + }, + // 查看公告 + findggInfo(announcementId) { + console.log("这里是查看公告") + var that = this; + let projectId = this.$route.params.projectId; + request({ + url: `project/${projectId}/announcement/${announcementId}`, + method: "get", + }) + .then((response) => { + if (response.data.code === 200) { + that.findGgBoxShow = true; + let data = response.data.data; + console.log(data); + data.announcementPublishTime = that.formatDate(data.announcementPublishTime) + that.findGgInfoContent = data; + } + }) + .catch(function (error) { + console.log(error); + }); + }, + gbGgBosShow() { + this.findGgBoxShow = false; + }, + // 提交新增公告 + addxtggsj(formName) { + var that = this; + let projectId = this.$route.params.projectId; + this.$refs[formName].validate((valid) => { + + if (valid) { + console.log('submit') + let { ...form} = this.form + request({ + url: `project/${projectId}/announcement`, + method: 'post', + data: { + announcementContent: that.form.addggtextarea, + announcementTitle: that.form.addggbttxt, + } + }).then((response) => { + if (response.data.code === 200) { + console.log("成功"); + this.$message({ + message: '新增成功', + type: 'success' + }); + that.getannouncementList(); + that.centerDialogVisible = false; + } + }) + .catch(function (error) { + console.log(error); + }) + } else { + console.log('error submit!!') + return false + } + }) + }, + // 弹出新增公告框 + addggboxbtn() { + this.centerDialogVisible = true; + console.log(this.centerDialogVisible) + + }, + // 查询公告 + getannouncementList() { + var that = this; + let projectId = this.$route.params.projectId; + request({ + url: `project/${projectId}/announcement`, + method: "get", + }) + .then((response) => { + if (response.data.code === 200) { + + let data = response.data.data; + console.log("公告"); + data.records.forEach(item => { + item.announcementPublishTime = that.formatDate(item.announcementPublishTime) + }) + that.ggList = data.records + console.log(that.ggList); + + } + }) + .catch(function (error) { + console.log(error); + }); + }, + formatDate(datetime) { + // 获取年月日时分秒值 slice(-2)过滤掉大于10日期前面的0 + year = datetime.getFullYear(), + month = ("0" + (datetime.getMonth() + 1)).slice(-2), + date = ("0" + datetime.getDate()).slice(-2), + hour = ("0" + datetime.getHours()).slice(-2), + minute = ("0" + datetime.getMinutes()).slice(-2), + second = ("0" + datetime.getSeconds()).slice(-2); + // 拼接 + var result = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second; + // 返回 + return result; + }, onEditProjectClick() { - let {...copy} = this.project - copy.projectStartDate = new Date(this.project.projectStartDate*1000) - copy.projectOnlineDate = new Date(this.project.projectOnlineDate*1000) - copy.projectFirstTestDate = new Date(this.project.projectFirstTestDate*1000) - copy.projectFinalTestDate = new Date(this.project.projectFinalTestDate*1000) - copy.projectEndDate = new Date(this.project.projectEndDate*1000) + let { ...copy } = this.project + copy.projectStartDate = new Date(this.project.projectStartDate * 1000) + copy.projectOnlineDate = new Date(this.project.projectOnlineDate * 1000) + copy.projectFirstTestDate = new Date(this.project.projectFirstTestDate * 1000) + copy.projectFinalTestDate = new Date(this.project.projectFinalTestDate * 1000) + copy.projectEndDate = new Date(this.project.projectEndDate * 1000) this.editProjectInfo = copy //this.getProjectClass() @@ -298,9 +542,10 @@ export default { }, formatDate(date) { if (date) - return moment(date * 1000).format("yyyy年MM月DD日") + return moment(date * 1000).format("yyyy年MM月DD日 HH:mm") return '无' }, + getProjectInfo() { const that = this request({ @@ -356,6 +601,28 @@ export default {