From f03364d1398518eaf8f10d6053430a21d30aeafb Mon Sep 17 00:00:00 2001
From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com>
Date: Mon, 28 Oct 2024 21:43:45 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9C=88=E8=AE=A1=E5=88=92=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/workPlan/monthPlan.js | 92 ++
manifest.json | 2 +-
pages.json | 14 +
pages/workPlan/monthPlan/inf-index.vue | 474 +++++++-
pages/workPlan/monthPlan/pro-index.vue | 398 +++++-
.../monthPlanAuditingDetails/inf-index.vue | 1080 +++++++++++++++++
.../monthPlanAuditingDetails/pro-index.vue | 1005 +++++++++++++++
pages/workPlan/monthPlanDetails/inf-index.vue | 126 +-
pages/workPlan/monthPlanDetails/pro-index.vue | 119 +-
.../components/infrastructure-model.vue | 13 +-
.../workbench/components/production-model.vue | 8 +-
static/images/workPlan/fgs_wtg.png | Bin 0 -> 3616 bytes
static/images/workPlan/zgs_dsh.png | Bin 0 -> 3524 bytes
13 files changed, 3264 insertions(+), 67 deletions(-)
create mode 100644 pages/workPlan/monthPlanAuditingDetails/inf-index.vue
create mode 100644 pages/workPlan/monthPlanAuditingDetails/pro-index.vue
create mode 100644 static/images/workPlan/fgs_wtg.png
create mode 100644 static/images/workPlan/zgs_dsh.png
diff --git a/api/workPlan/monthPlan.js b/api/workPlan/monthPlan.js
index 741b4ca..6605ea9 100644
--- a/api/workPlan/monthPlan.js
+++ b/api/workPlan/monthPlan.js
@@ -96,6 +96,38 @@ export function submitPlanApi(data) {
data: data
})
}
+// 月计划-工作待办-列表 --基建
+export function getWorkWaitListApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/infMonth/getViewReport',
+ method: 'post',
+ data: data
+ })
+}
+// 月计划-工作待办-工程信息 --基建
+export function getWorkWaitProjectApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/infMonth/getViewReportForPro',
+ method: 'post',
+ data: data
+ })
+}
+// 月计划-工作待办-审核不通过 --基建
+export function setAuditingRejectApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/infMonth/rejectPlan',
+ method: 'post',
+ data: data
+ })
+}
+// 月计划-查看报表 --基建
+export function getReportFormListApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/infMonth/getViewReport',
+ method: 'post',
+ data: data
+ })
+}
/**
* 生产月计划
@@ -214,3 +246,63 @@ export function getIsPlanProApi(data) {
data: data
})
}
+
+// 月计划-工作待办-列表 - 生产
+export function getWorkWaitListProApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/proMonth/getViewReport',
+ method: 'post',
+ data: data
+ })
+}
+
+// 月计划-工作待办-工程信息- - 生产
+// export function getWorkWaitProjectProApi(data) {
+// return request_yn({
+// url: '/ynPlanApp/proMonth/getViewReportForPro',
+// method: 'post',
+// data: data
+// })
+// }
+
+// 月计划-工作待办-审核不通过 - 生产
+export function setAuditingRejectProApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/proMonth/rejectPlan',
+ method: 'post',
+ data: data
+ })
+}
+
+// 月计划-工作待办-列表 --生产
+// export function getWorkWaitListProApi(data) {
+// return request_yn({
+// url: '/ynPlanApp/proMonth/getViewReport',
+// method: 'post',
+// data: data
+// })
+// }
+// 月计划-工作待办-工程信息 --生产
+export function getWorkWaitProjectProApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/proMonth/getViewReportForPro',
+ method: 'post',
+ data: data
+ })
+}
+// 月计划-工作待办-审核不通过 --生产
+// export function setAuditingRejectProApi(data) {
+// return request_yn({
+// url: '/ynPlanApp/proMonth/rejectPlan',
+// method: 'post',
+// data: data
+// })
+// }
+// 月计划-查看报表 --生产
+export function getReportFormListProApi(data) {
+ return request_yn({
+ url: '/ynPlanApp/proMonth/getViewReport',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/manifest.json b/manifest.json
index 3ca21e6..78b085e 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,6 +1,6 @@
{
"name" : "作业管控智慧平台",
- "appid" : "__UNI__4165875",
+ "appid" : "__UNI__5A28908",
"description" : "作业管控智慧平台",
"versionName" : "1.0.11",
"versionCode" : 111,
diff --git a/pages.json b/pages.json
index 483a4f3..3e15d81 100644
--- a/pages.json
+++ b/pages.json
@@ -801,6 +801,13 @@
"navigationStyle": "custom"
}
},
+ /* 月计划详情 --基建 - 审核 */
+ {
+ "path": "pages/workPlan/monthPlanAuditingDetails/inf-index",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
/* 月计划详情--生产 */
{
"path": "pages/workPlan/monthPlanDetails/pro-index",
@@ -808,6 +815,13 @@
"navigationStyle": "custom"
}
},
+ /* 月计划详情--生产 - 审核 */
+ {
+ "path": "pages/workPlan/monthPlanAuditingDetails/pro-index",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/workPlan/networkPlan/index",
"style": {
diff --git a/pages/workPlan/monthPlan/inf-index.vue b/pages/workPlan/monthPlan/inf-index.vue
index 6fa2a23..f426d47 100644
--- a/pages/workPlan/monthPlan/inf-index.vue
+++ b/pages/workPlan/monthPlan/inf-index.vue
@@ -24,6 +24,50 @@
+
+
+
+
+ {{ getWorkWaitParams.planTime }}
+
+
+
+
+
+
+ 在建工程:
+ {{ item.zjs }}
+
+ {{ item.planTime }}
+
+
+
+ 已报工程数:
+ {{ item.ybs }}
+ 未报工程数:
+ {{ item.wbs }}
+
+
+ 待审核数:
+ {{ item.dsh }}
+
+ 待审核
+
+
+
+
+
+
@@ -153,8 +197,8 @@
-
-
+
+
+
+
+
+ 《
+
+
+
+
+ {{ currentTimeNew }}
+
+
+
+
+ 》
+
+
+
+
+
+
+
+ 在建工程:
+ {{ item.zjs }}
+
+ {{ item.planTime }}
+
+
+
+ 已报工程数:
+ {{ item.ybs }}
+ 未报工程数:
+ {{ item.wbs }}
+
+
+ 待审核数:
+ {{ item.dsh }}
+
+ 已通过
+
+
+
+
+
+
+
+
+
+
+
@@ -427,7 +546,10 @@ import {
getProjectList_2Api,
getControlLevelListApi,
getIsPlanApi,
- getAUditingUserInfoApi
+ getAUditingUserInfoApi,
+ getWorkWaitListApi,
+ getWorkWaitProjectApi,
+ getReportFormListApi
} from '../../../api/workPlan/monthPlan'
export default {
components: {
@@ -435,7 +557,7 @@ export default {
},
data() {
return {
- activeIndex: '发起提交',
+ activeIndex: '',
DateValue: this.$moment().format('YYYY-MM'),
pagesTotal: 1,
currentPage: 0,
@@ -444,10 +566,11 @@ export default {
formData: {},
isType: false,
currentTime: this.$moment().format('YYYY-MM'),
+ currentTimeNew: this.$moment().format('YYYY-MM'),
btnList: [
{ btn_title: '工作待办', isShow: ['24', '25'] },
{ btn_title: '发起提交', isShow: ['22', '23'] },
- { btn_title: '查看报表', isShow: ['22', '23'] },
+ { btn_title: '查看报表', isShow: ['22', '23', '24', '25'] },
{ btn_title: '查看数据', isShow: ['22', '23'] }
],
rules: {
@@ -648,7 +771,28 @@ export default {
scrollHeight_2: 0,
scrollHeight_3: 0,
searchUserName: '',
- auditingUserList: []
+ auditingUserList: [],
+
+ workWaitList: [],
+ workWaitListNew: [],
+ // 获取工作待办列表数据
+ getWorkWaitParams: {
+ planTime: this.$moment().format('YYYY-MM'),
+ type: '1'
+ },
+ getWorkWaitParamsNew: {
+ planTime: this.$moment().format('YYYY-MM'),
+ type: '2'
+ },
+ searchProjectName: '',
+ getWorkWaitProjectParams: {
+ planTime: '',
+ reportType: '',
+ keyword: ''
+ },
+ workWaitProjectList: [],
+ auditingDetailsFlg: true,
+ isView: false
}
},
mounted() {
@@ -674,14 +818,31 @@ export default {
// 获取管控层级
this.getControlLevelListData()
+ // 获取工作待办列表数据
+ if (this.roles == 24 || this.roles == 25) {
+ this.getWorkWaitListData()
+ }
+
const this_ = this
uni.$on('update', function () {
this_.getViewDataList()
})
+ uni.$on('updateView', function () {
+ this_.onCloseViewPopup()
+ this_.getWorkWaitListData()
+ })
+
+ if (this.roles == 22 || this.roles == 23) {
+ this.activeIndex = '发起提交'
+ }
+ if (this.roles == 24 || this.roles == 25) {
+ this.activeIndex = '工作待办'
+ }
},
onUnload() {
uni.$off('update')
+ uni.$off('updateView')
},
methods: {
leftClick() {
@@ -690,6 +851,10 @@ export default {
onTapCheck(i) {
this.activeIndex = i
+
+ if (i == '查看报表' && (this.roles == 24 || this.roles == 25)) {
+ this.getReportFormList()
+ }
},
/* 减少页数 */
onReducePages() {
@@ -799,28 +964,56 @@ export default {
this.currentTime = this.$moment(this.currentTime).subtract(1, 'year').format('YYYY-MM')
this.getMonthPlanData()
},
+ onReduceMonthNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).subtract(1, 'year').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
onReduceDay() {
this.currentTime = this.$moment(this.currentTime).subtract(1, 'months').format('YYYY-MM')
this.getMonthPlanData()
},
+ onReduceDayNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).subtract(1, 'months').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
onAddMonth() {
this.currentTime = this.$moment(this.currentTime).add(1, 'year').format('YYYY-MM')
this.getMonthPlanData()
},
+ onAddMonthNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).add(1, 'year').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
onAddDay() {
this.currentTime = this.$moment(this.currentTime).add(1, 'months').format('YYYY-MM')
this.getMonthPlanData()
},
+ onAddDayNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).add(1, 'months').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
onBackToday() {
this.currentTime = this.$moment().format('YYYY-MM')
this.getMonthPlanData()
},
+ onBackTodayNew() {
+ this.currentTimeNew = this.$moment().format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
iconClick() {
this.getViewDataList()
},
onChangeCurrentData(e) {
this.currentTime = e.detail.value
},
+ onChangeCurrentDataNew(e) {
+ this.currentTimeNew = e.detail.value
+ },
onViewSelectProject() {
this.$refs.popup.open('bottom')
this.popupType = 'bottom'
@@ -907,13 +1100,19 @@ export default {
this.zfxAmount = 0
this.gfxAmount = 0
this.tfxAmount = 0
- this.monthDataList.forEach(e => {
- this.kjsAmount = this.kjsAmount + e.kjsfx * 1
- this.dfxAmount = this.dfxAmount + e.dfx * 1
- this.zfxAmount = this.zfxAmount + e.zfx * 1
- this.gfxAmount = this.gfxAmount + e.gfx * 1
- this.tfxAmount = this.tfxAmount + e.tgfx * 1
- })
+ // this.monthDataList.forEach(e => {
+ // this.kjsAmount = this.kjsAmount + e.kjsfx * 1
+ // this.dfxAmount = this.dfxAmount + e.dfx * 1
+ // this.zfxAmount = this.zfxAmount + e.zfx * 1
+ // this.gfxAmount = this.gfxAmount + e.gfx * 1
+ // this.tfxAmount = this.tfxAmount + e.tgfx * 1
+ // })
+
+ this.kjsAmount = this.monthDataList[0].kjsfx * 1
+ this.dfxAmount = this.monthDataList[0].dfx * 1
+ this.zfxAmount = this.monthDataList[0].zfx * 1
+ this.gfxAmount = this.monthDataList[0].gfx * 1
+ this.tfxAmount = this.monthDataList[0].tgfx * 1
}
if (this.scrollHeight_2 === 0) {
@@ -1143,6 +1342,129 @@ export default {
onCheckBoxChange(item) {
console.log(item, '*****')
item.isChecked = !item.isChecked
+ },
+ /* 获取工作待办列表 */
+ async getWorkWaitListData() {
+ console.log('this.getWorkWaitParams', this.getWorkWaitParams)
+ const res = await getWorkWaitListApi(this.getWorkWaitParams)
+
+ console.log('工作待办列表', res)
+
+ this.workWaitList = res.obj
+
+ if (res.obj.length < 1) {
+ uni.showToast({
+ title: '未查询到计划!',
+ icon: 'none'
+ })
+ }
+ },
+ onWorkWaitTimeReduce() {
+ this.getWorkWaitParams.planTime = this.$moment(this.getWorkWaitParams.planTime)
+ .subtract(1, 'months')
+ .format('YYYY-MM')
+ this.getWorkWaitListData()
+ },
+ onWorkWaitTimeAdd() {
+ this.getWorkWaitParams.planTime = this.$moment(this.getWorkWaitParams.planTime).add(1, 'months').format('YYYY-MM')
+ this.getWorkWaitListData()
+ },
+ /* 查看工程数 */
+ onViewProjectNum(type) {
+ switch (type) {
+ case 1:
+ this.getWorkWaitProjectParams.reportType = '1'
+ break
+ case 2:
+ this.getWorkWaitProjectParams.reportType = '2'
+ break
+ case 3:
+ this.getWorkWaitProjectParams.reportType = '3'
+ break
+ case 4:
+ this.getWorkWaitProjectParams.reportType = '4'
+ break
+ }
+ if (type === 4) {
+ this.auditingDetailsFlg = true
+ this.isView = false
+ } else {
+ this.auditingDetailsFlg = false
+ }
+
+ this.getWorkWaitProjectParams.planTime = this.getWorkWaitParams.planTime
+ this.getWorkWaitProjectParams.keyword = ''
+ this.getWorkWaitProjectData()
+ this.$refs.popupViewProject.open('center')
+ },
+ /* 查看工程数 */
+ onViewProjectNumNew(type) {
+ switch (type) {
+ case 1:
+ this.getWorkWaitProjectParams.reportType = '1'
+ break
+ case 2:
+ this.getWorkWaitProjectParams.reportType = '2'
+ break
+ case 3:
+ this.getWorkWaitProjectParams.reportType = '3'
+ break
+ case 4:
+ this.getWorkWaitProjectParams.reportType = '4'
+ break
+ case 5:
+ this.getWorkWaitProjectParams.reportType = '5'
+ break
+ }
+ if (type === 5) {
+ this.auditingDetailsFlg = true
+ this.isView = true
+ } else {
+ this.auditingDetailsFlg = false
+ this.isView = false
+ }
+ this.getWorkWaitProjectParams.planTime = this.getWorkWaitParamsNew.planTime
+ this.getWorkWaitProjectParams.keyword = ''
+ this.getWorkWaitProjectData()
+ this.$refs.popupViewProject.open('center')
+ },
+
+ onSearchWorkWaitProject() {
+ this.getWorkWaitProjectData()
+ },
+ /* 获取工程 */
+ async getWorkWaitProjectData() {
+ const res = await getWorkWaitProjectApi(this.getWorkWaitProjectParams)
+ console.log('工程信息列表', res)
+ this.workWaitProjectList = res.obj
+ },
+ onCloseViewPopup() {
+ this.$refs.popupViewProject.close()
+ },
+ /* 查看审核详情 */
+ onViewAuditingDetails(item) {
+ if (this.auditingDetailsFlg) {
+ console.log('打开审核详情', item)
+
+ uni.navigateTo({
+ url: `/pages/workPlan/monthPlanAuditingDetails/inf-index?id=${item.id}&month=${this.getWorkWaitProjectParams.planTime}&isView=${this.isView}`
+ })
+ }
+ },
+ /* 获取报表数据 */
+ async getReportFormList() {
+ this.getWorkWaitParamsNew.planTime = this.currentTimeNew
+ console.log(this.getWorkWaitParamsNew, 'this.getWorkWaitParamsNew')
+ const res = await getReportFormListApi(this.getWorkWaitParamsNew)
+ console.log('res报表数据', res)
+ this.workWaitListNew = res.obj
+
+ if (res.obj.length < 1) {
+ uni.showToast({
+ title: '未查询到计划!',
+ icon: 'none'
+ })
+ }
}
},
@@ -1607,4 +1929,130 @@ export default {
}
}
}
+
+.time-select {
+ width: 100%;
+ padding: 10rpx 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ text {
+ font-weight: bold;
+ color: #000;
+ }
+}
+
+.view-data-auditing {
+ width: 100%;
+ margin: 10rpx auto;
+ background-color: #fff;
+
+ .auditing-item {
+ width: 98%;
+ margin: 0 auto;
+ display: flex;
+
+ align-items: center;
+ padding: 8rpx 0;
+
+ .item_1 {
+ width: 25%;
+ }
+ .item_2 {
+ width: 10%;
+ }
+ .item_3 {
+ width: 65%;
+ text-align: right;
+
+ text {
+ margin-right: 10rpx;
+ display: inline-block;
+ width: 260rpx;
+ height: 48rpx;
+ border-radius: 12rpx;
+ line-height: 48rpx;
+ text-align: center;
+ color: #fff;
+ background-color: #00337a;
+ }
+ }
+ }
+
+ .have-bottom {
+ border-bottom: 1px solid #ccc;
+ }
+}
+
+.popup-view {
+ height: 60vh;
+ width: 95vw;
+ display: flex;
+ flex-direction: column;
+ background-color: #ccc;
+
+ .popup-view-title {
+ width: 94%;
+ margin: 0 auto;
+ padding: 30rpx 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ text {
+ color: #333;
+ font-size: 38rpx;
+ font-weight: bold;
+ }
+ }
+
+ .search-container {
+ width: 100%;
+ padding: 28rpx 0;
+ background-color: #fff;
+ .search-box {
+ width: 94%;
+ margin: 0 auto;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .view-search-ipt {
+ width: 65%;
+ }
+
+ .view-search-btn {
+ width: 27%;
+ height: 68rpx;
+ text-align: center;
+ line-height: 68rpx;
+ color: #fff;
+ background-color: #00337a;
+ border-radius: 12rpx;
+ }
+ }
+ }
+
+ .view-project-list {
+ flex: 1;
+ overflow: hidden;
+
+ .view-project-item {
+ width: 96%;
+ height: 96%;
+ margin: 2% auto;
+ background-color: #fff;
+
+ view {
+ width: 100%;
+ padding-top: 13rpx;
+ padding-bottom: 6rpx;
+ text-align: center;
+ border-bottom: 1px solid #ccc;
+ box-sizing: border-box;
+ }
+ }
+ }
+}
diff --git a/pages/workPlan/monthPlan/pro-index.vue b/pages/workPlan/monthPlan/pro-index.vue
index 9d6ff16..2ee47ed 100644
--- a/pages/workPlan/monthPlan/pro-index.vue
+++ b/pages/workPlan/monthPlan/pro-index.vue
@@ -24,6 +24,50 @@
+
+
+
+
+ {{ getWorkWaitParams.planTime }}
+
+
+
+
+
+
+ 在建工程:
+ {{ item.zjs }}
+
+ {{ item.planTime }}
+
+
+
+ 已报工程数:
+ {{ item.ybs }}
+ 未报工程数:
+ {{ item.wbs }}
+
+
+ 待审核数:
+ {{ item.dsh }}
+
+ 待审核
+
+
+
+
+
+
@@ -127,7 +171,7 @@
>
@@ -153,7 +197,7 @@
-
+
+
+
+
+ 《
+
+
+
+
+ {{ currentTimeNew }}
+
+
+
+
+ 》
+
+
+
+
+
+
+
+ 在建工程:
+ {{ item.zjs }}
+
+ {{ item.planTime }}
+
+
+
+ 已报工程数:
+ {{ item.ybs }}
+ 未报工程数:
+ {{ item.wbs }}
+
+
+ 待审核数:
+ {{ item.dsh }}
+
+ 已通过
+
+
+
+
+
+
+
+
+
+
+
@@ -427,7 +544,11 @@ import {
getControlModeProApi,
getControlLevelListApi,
getIsPlanProApi,
- getAUditingUserInfoApi
+ getAUditingUserInfoApi,
+ getWorkWaitListProApi,
+ getWorkWaitProjectProApi,
+ setAuditingRejectProApi,
+ getReportFormListProApi
} from '../../../api/workPlan/monthPlan'
export default {
components: {
@@ -435,7 +556,7 @@ export default {
},
data() {
return {
- activeIndex: '发起提交',
+ activeIndex: '',
DateValue: this.$moment().format('YYYY-MM'),
pagesTotal: 1,
currentPage: 0,
@@ -444,10 +565,11 @@ export default {
formData: {},
isType: false,
currentTime: this.$moment().format('YYYY-MM'),
+ currentTimeNew: this.$moment().format('YYYY-MM'),
btnList: [
{ btn_title: '工作待办', isShow: ['24', '25'] },
{ btn_title: '发起提交', isShow: ['22', '23'] },
- { btn_title: '查看报表', isShow: ['22', '23'] },
+ { btn_title: '查看报表', isShow: ['22', '23', '24', '25'] },
{ btn_title: '查看数据', isShow: ['22', '23'] }
],
monthPlanFormRules: {
@@ -693,7 +815,27 @@ export default {
scrollHeight_2: 0,
scrollHeight_3: 0,
searchUserName: '',
- auditingUserList: []
+ auditingUserList: [],
+ workWaitList: [],
+ workWaitListNew: [],
+ // 获取工作待办列表数据
+ getWorkWaitParams: {
+ planTime: this.$moment().format('YYYY-MM'),
+ type: '1'
+ },
+ getWorkWaitParamsNew: {
+ planTime: this.$moment().format('YYYY-MM'),
+ type: '2'
+ },
+ getWorkWaitProjectParams: {
+ planTime: '',
+ reportType: '',
+ keyword: ''
+ },
+ searchProjectName: '',
+ workWaitProjectList: [],
+ auditingDetailsFlg: false,
+ isView: false
}
},
mounted() {
@@ -721,14 +863,32 @@ export default {
// 获取作业类型和管控方式
this.getWorkTypeAndControlMode()
+ // 获取工作待办列表数据
+ if (this.roles == 24 || this.roles == 25) {
+ this.getWorkWaitListData()
+ }
+
const this_ = this
uni.$on('update', function () {
this_.getViewDataList()
})
+ uni.$on('updateView', function () {
+ this_.onCloseViewPopup()
+ this_.getWorkWaitListData()
+ })
+
+ console.log(this.roles, 'this.roles ')
+ if (this.roles == 22 || this.roles == 23) {
+ this.activeIndex = '发起提交'
+ }
+ if (this.roles == 24 || this.roles == 25) {
+ this.activeIndex = '工作待办'
+ }
},
onUnload() {
uni.$off('update')
+ uni.$off('updateView')
},
methods: {
leftClick() {
@@ -952,13 +1112,18 @@ export default {
this.zfxAmount = 0
this.gfxAmount = 0
this.tfxAmount = 0
- this.monthDataList.forEach(e => {
- this.kjsAmount = this.kjsAmount + e.kjsfx * 1
- this.dfxAmount = this.dfxAmount + e.dfx * 1
- this.zfxAmount = this.zfxAmount + e.zfx * 1
- this.gfxAmount = this.gfxAmount + e.gfx * 1
- this.tfxAmount = this.tfxAmount + e.tgfx * 1
- })
+ // this.monthDataList.forEach(e => {
+ // this.kjsAmount = this.kjsAmount + e.kjsfx * 1
+ // this.dfxAmount = this.dfxAmount + e.dfx * 1
+ // this.zfxAmount = this.zfxAmount + e.zfx * 1
+ // this.gfxAmount = this.gfxAmount + e.gfx * 1
+ // this.tfxAmount = this.tfxAmount + e.tgfx * 1
+ // })
+ this.kjsAmount = this.monthDataList[0].kjsfx * 1
+ this.dfxAmount = this.monthDataList[0].dfx * 1
+ this.zfxAmount = this.monthDataList[0].zfx * 1
+ this.gfxAmount = this.monthDataList[0].gfx * 1
+ this.tfxAmount = this.monthDataList[0].tgfx * 1
}
if (this.scrollHeight_2 === 0) {
@@ -1211,6 +1376,159 @@ export default {
onCheckBoxChange(item) {
console.log(item, '*****')
item.isChecked = !item.isChecked
+ },
+ /* 获取工作待办列表 */
+ async getWorkWaitListData() {
+ console.log('this.getWorkWaitParams', this.getWorkWaitParams)
+ const res = await getWorkWaitListProApi(this.getWorkWaitParams)
+
+ console.log('工作待办列表', res)
+
+ this.workWaitList = res.obj
+
+ if (res.obj.length < 1) {
+ uni.showToast({
+ title: '未查询到计划!',
+ icon: 'none'
+ })
+ }
+ },
+ onWorkWaitTimeReduce() {
+ this.getWorkWaitParams.planTime = this.$moment(this.getWorkWaitParams.planTime)
+ .subtract(1, 'months')
+ .format('YYYY-MM')
+ this.getWorkWaitListData()
+ },
+ onWorkWaitTimeAdd() {
+ this.getWorkWaitParams.planTime = this.$moment(this.getWorkWaitParams.planTime).add(1, 'months').format('YYYY-MM')
+ this.getWorkWaitListData()
+ },
+ onViewProjectNum(type) {
+ switch (type) {
+ case 1:
+ // console.log('在建')
+
+ this.getWorkWaitProjectParams.reportType = '1'
+ break
+ case 2:
+ // console.log('已报')
+ this.getWorkWaitProjectParams.reportType = '2'
+ break
+ case 3:
+ // console.log('未报')
+ this.getWorkWaitProjectParams.reportType = '3'
+ break
+ case 4:
+ // console.log('待审核')
+ this.getWorkWaitProjectParams.reportType = '4'
+ break
+ }
+ if (type === 4) {
+ this.auditingDetailsFlg = true
+ this.isView = false
+ } else {
+ this.auditingDetailsFlg = false
+ }
+ this.getWorkWaitProjectParams.planTime = this.getWorkWaitParams.planTime
+ this.getWorkWaitProjectParams.keyword = ''
+ this.getWorkWaitProjectData()
+ this.$refs.popupViewProject.open('center')
+ },
+ /* 查看工程数 */
+ onViewProjectNumNew(type) {
+ switch (type) {
+ case 1:
+ this.getWorkWaitProjectParams.reportType = '1'
+ break
+ case 2:
+ this.getWorkWaitProjectParams.reportType = '2'
+ break
+ case 3:
+ this.getWorkWaitProjectParams.reportType = '3'
+ break
+ case 4:
+ this.getWorkWaitProjectParams.reportType = '4'
+ break
+ case 5:
+ this.getWorkWaitProjectParams.reportType = '5'
+ break
+ }
+ if (type === 5) {
+ this.auditingDetailsFlg = true
+ this.isView = true
+ } else {
+ this.auditingDetailsFlg = false
+ this.isView = false
+ }
+ this.getWorkWaitProjectParams.planTime = this.getWorkWaitParamsNew.planTime
+ this.getWorkWaitProjectParams.keyword = ''
+ this.getWorkWaitProjectData()
+ this.$refs.popupViewProject.open('center')
+ },
+ onSearchWorkWaitProject() {
+ this.getWorkWaitProjectData()
+ },
+ /* 获取工程 */
+ async getWorkWaitProjectData() {
+ const res = await getWorkWaitProjectProApi(this.getWorkWaitProjectParams)
+ console.log('工程信息列表', res)
+ this.workWaitProjectList = res.obj
+ },
+ onCloseViewPopup() {
+ this.$refs.popupViewProject.close()
+ },
+ /* 查看审核详情 */
+ onViewAuditingDetails(item) {
+ if (this.auditingDetailsFlg) {
+ console.log('打开审核详情', item)
+
+ uni.navigateTo({
+ url: `/pages/workPlan/monthPlanAuditingDetails/pro-index?id=${item.id}&month=${this.getWorkWaitProjectParams.planTime}&isView=${this.isView}`
+ })
+ }
+ },
+ /* 获取报表数据 */
+ async getReportFormList() {
+ this.getWorkWaitParamsNew.planTime = this.currentTimeNew
+ console.log(this.getWorkWaitParamsNew, 'this.getWorkWaitParamsNew')
+ const res = await getReportFormListProApi(this.getWorkWaitParamsNew)
+ console.log('res报表数据', res)
+ this.workWaitListNew = res.obj
+
+ if (res.obj.length < 1) {
+ uni.showToast({
+ title: '未查询到计划!',
+ icon: 'none'
+ })
+ }
+ },
+ onReduceMonthNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).subtract(1, 'year').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
+ onReduceDayNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).subtract(1, 'months').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
+ onChangeCurrentDataNew(e) {
+ this.currentTimeNew = e.detail.value
+ },
+ onAddDayNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).add(1, 'months').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
+ onAddMonthNew() {
+ this.currentTimeNew = this.$moment(this.currentTimeNew).add(1, 'year').format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
+ },
+ onBackTodayNew() {
+ this.currentTimeNew = this.$moment().format('YYYY-MM')
+ this.getWorkWaitProjectParams.planTime = this.currentTimeNew
+ this.getReportFormList()
}
},
@@ -1674,4 +1992,58 @@ export default {
}
}
}
+.time-select {
+ width: 100%;
+ padding: 10rpx 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ text {
+ font-weight: bold;
+ color: #000;
+ }
+}
+
+.view-data-auditing {
+ width: 100%;
+ margin: 10rpx auto;
+ background-color: #fff;
+
+ .auditing-item {
+ width: 98%;
+ margin: 0 auto;
+ display: flex;
+
+ align-items: center;
+ padding: 8rpx 0;
+
+ .item_1 {
+ width: 25%;
+ }
+ .item_2 {
+ width: 10%;
+ }
+ .item_3 {
+ width: 65%;
+ text-align: right;
+
+ text {
+ margin-right: 10rpx;
+ display: inline-block;
+ width: 260rpx;
+ height: 48rpx;
+ border-radius: 12rpx;
+ line-height: 48rpx;
+ text-align: center;
+ color: #fff;
+ background-color: #00337a;
+ }
+ }
+ }
+
+ .have-bottom {
+ border-bottom: 1px solid #ccc;
+ }
+}
diff --git a/pages/workPlan/monthPlanAuditingDetails/inf-index.vue b/pages/workPlan/monthPlanAuditingDetails/inf-index.vue
new file mode 100644
index 0000000..c0f715f
--- /dev/null
+++ b/pages/workPlan/monthPlanAuditingDetails/inf-index.vue
@@ -0,0 +1,1080 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 流程
+
+
+
+
+
+
+
+
+
+ {{ item.process }}
+
+ {{ j.operateUser }}
+ {{ j.operateResult }}
+ {{ j.operateTime }}
+
+
+ {{ item.auditingInfo[0].operateTime || '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 审核完成
+
+
+
+
+
+
+
+
+ 请选择计划审核人
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+ 序号
+ 姓名
+ 岗位
+
+
+
+
+
+
+
+ {{ index + 1 }}
+ {{ item.name }}
+ {{ item.orgName }}
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
diff --git a/pages/workPlan/monthPlanAuditingDetails/pro-index.vue b/pages/workPlan/monthPlanAuditingDetails/pro-index.vue
new file mode 100644
index 0000000..94932c4
--- /dev/null
+++ b/pages/workPlan/monthPlanAuditingDetails/pro-index.vue
@@ -0,0 +1,1005 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 流程
+
+
+
+
+
+
+
+
+
+ {{ item.process }}
+
+ {{ item.userName }}
+ {{ item.auditingResult }}
+
+
+ {{ item.time }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 审核完成
+
+
+
+
+
+
+
+
+ 请选择计划审核人
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+ 序号
+ 姓名
+ 岗位
+
+
+
+
+
+
+
+ {{ index + 1 }}
+ {{ item.name }}
+ {{ item.orgName }}
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
diff --git a/pages/workPlan/monthPlanDetails/inf-index.vue b/pages/workPlan/monthPlanDetails/inf-index.vue
index 14cbdb5..74a64a7 100644
--- a/pages/workPlan/monthPlanDetails/inf-index.vue
+++ b/pages/workPlan/monthPlanDetails/inf-index.vue
@@ -78,16 +78,17 @@
-
+
-
+
{{ item.process }}
-
- {{ item.userName }}
- {{ item.auditingResult }}
-
+
+ {{ j.operateUser }}
+ {{ j.operateResult }}
+ {{ j.operateTime }}
+
- {{ item.time }}
+ {{ item.auditingInfo[0].operateTime || '' }}
@@ -360,28 +361,41 @@ export default {
roles: uni.getStorageSync('wkRole'),
processList: [
{
- title: '项目部',
process: '发起申请',
userName: '',
time: '',
auditingResult: '',
- imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
+ imgSrcIndex: 0,
+ auditingInfo: [],
+ imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', ' ', '../../../static/images/workPlan/xmb_tg.png']
},
{
- title: '项目部',
process: '审核人',
userName: '',
time: '2',
auditingResult: '',
- imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
+ imgSrcIndex: 0,
+ auditingInfo: [],
+ imgSrcList: [
+ '../../../static/images/workPlan/fgs_dsh.png',
+ '../../../static/images/workPlan/fgs_wtg.png',
+ '../../../static/images/workPlan/fgs_tg.png',
+ '../../../static/images/workPlan/fgs_dd.png'
+ ]
},
{
- title: '项目部',
process: '审核人',
userName: '',
time: '',
+ imgSrcIndex: 0,
auditingResult: '未通过',
- imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
+ auditingInfo: [],
+ imgSrcList: [
+ '../../../static/images/workPlan/zgs_dsh.png',
+ '../../../static/images/workPlan/zgs_wtg.png',
+ '../../../static/images/workPlan/zgs_tg.png',
+ '../../../static/images/workPlan/zgs_dd.png'
+ ]
}
],
searchUserName: '',
@@ -524,18 +538,70 @@ export default {
console.log('paramsparams参数', params)
const res = await getAUditingProcessApi(params)
+ console.log('res审核流程', res)
- const auditingList = res.obj.splice(1, 3)
- console.log('res---审核流程图', auditingList)
-
- // this.processList[0].userName = auditingList[0].upUser
- auditingList.forEach((e, index) => {
- this.processList[index].userName = e.upUser
- this.processList[index].time = e.upTime
- this.processList[index].auditingResult = e.state
+ res.obj.forEach(e => {
+ if (e.type == 2) {
+ this.processList[0].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
+ if (e.type == 3) {
+ this.processList[1].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
+ if (e.type == 4) {
+ this.processList[2].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
})
- console.log('this.this.processList', this.processList)
+ this.processList.forEach((e, index) => {
+ console.log('e.auditingInfo', e.auditingInfo, 'e.auditingInfo')
+ if (index === 0) {
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateTime) {
+ e.imgSrcIndex = 2
+ } else {
+ e.imgSrcIndex = 0
+ }
+ }
+ if (index === 1) {
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '待审核') {
+ e.imgSrcIndex = 0
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '未通过') {
+ e.imgSrcIndex = 1
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '通过') {
+ e.imgSrcIndex = 2
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == null) {
+ e.imgSrcIndex = 3
+ }
+ }
+ if (index === 2) {
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '待审核') {
+ e.imgSrcIndex = 0
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '未通过') {
+ e.imgSrcIndex = 1
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '通过') {
+ e.imgSrcIndex = 2
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == null) {
+ e.imgSrcIndex = 3
+ }
+ }
+ })
}
},
/* 复选框事件 */
@@ -573,14 +639,16 @@ export default {
let idsStr = ids.filter(e => e != null).join(',')
const params = {
- id: JSON.stringify(this.monthDetailsList),
- user: idsStr,
- state: '2'
+ id: this.proId,
+ user: idsStr
+ // state: '2'
}
console.log('saveParams保存参数', params)
- const result = await setMonthPlanApi(params)
+ const result = await submitPlanApi(params)
+
+ console.log(result, 'results上报人提交结果')
if (result.res == 1) {
uni.showToast({ title: `提交成功!`, icon: 'none' })
setTimeout(() => {
@@ -732,7 +800,7 @@ export default {
background-color: green;
}
}
- .process-item view:nth-child(2) {
+ .process-item .box-2 {
flex: 1;
padding-left: 26rpx;
display: flex;
@@ -745,14 +813,16 @@ export default {
.text_2 {
width: 100%;
display: flex;
+ // display: block;
justify-content: space-between;
+ align-items: center;
margin-top: 16rpx;
font-size: 24rpx;
color: #000;
}
}
- .process-item view:last-child {
+ .process-item .box-3 {
width: 30%;
font-size: 22rpx;
color: #333;
diff --git a/pages/workPlan/monthPlanDetails/pro-index.vue b/pages/workPlan/monthPlanDetails/pro-index.vue
index 5a6b3cc..1032d4f 100644
--- a/pages/workPlan/monthPlanDetails/pro-index.vue
+++ b/pages/workPlan/monthPlanDetails/pro-index.vue
@@ -145,7 +145,8 @@ import {
getControlLevelListApi,
updateInfPlanContentProApi,
getAUditingUserInfoApi,
- setMonthPlanProApi
+ setMonthPlanProApi,
+ getAUditingProcessApi
} from '../../../api/workPlan/monthPlan'
export default {
data() {
@@ -279,7 +280,46 @@ export default {
tfxAmount: 0,
navHeight: 0,
searchUserName: '',
- auditingUserList: []
+ auditingUserList: [],
+ processList: [
+ {
+ process: '发起申请',
+ userName: '',
+ time: '',
+ auditingResult: '',
+ imgSrcIndex: 0,
+ auditingInfo: [],
+ imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', ' ', '../../../static/images/workPlan/xmb_tg.png']
+ },
+ {
+ process: '审核人',
+ userName: '',
+ time: '2',
+ auditingResult: '',
+ imgSrcIndex: 0,
+ auditingInfo: [],
+ imgSrcList: [
+ '../../../static/images/workPlan/fgs_dsh.png',
+ '../../../static/images/workPlan/fgs_wtg.png',
+ '../../../static/images/workPlan/fgs_tg.png',
+ '../../../static/images/workPlan/fgs_dd.png'
+ ]
+ },
+ {
+ process: '审核人',
+ userName: '',
+ time: '',
+ imgSrcIndex: 0,
+ auditingResult: '未通过',
+ auditingInfo: [],
+ imgSrcList: [
+ '../../../static/images/workPlan/zgs_dsh.png',
+ '../../../static/images/workPlan/zgs_wtg.png',
+ '../../../static/images/workPlan/zgs_tg.png',
+ '../../../static/images/workPlan/zgs_dd.png'
+ ]
+ }
+ ]
}
},
methods: {
@@ -465,6 +505,81 @@ export default {
} else {
uni.showToast({ title: `提交失败!`, icon: 'none' })
}
+ },
+ /* 获取详细审核流程 */
+ async getAUditingProcessData() {
+ if (this.roles != '22') {
+ const params = {
+ id: this.proId
+ }
+
+ console.log('paramsparams参数', params)
+ const res = await getAUditingProcessApi(params)
+ console.log('res审核流程', res)
+
+ res.obj.forEach(e => {
+ if (e.type == 2) {
+ this.processList[0].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
+ if (e.type == 3) {
+ this.processList[1].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
+ if (e.type == 4) {
+ this.processList[2].auditingInfo.push({
+ operateTime: e.upTime,
+ operateUser: e.upUser,
+ operateResult: e.state
+ })
+ }
+ })
+
+ this.processList.forEach((e, index) => {
+ console.log('e.auditingInfo', e.auditingInfo, 'e.auditingInfo')
+ if (index === 0) {
+ if (e.auditingInfo[0].operateTime) {
+ e.imgSrcIndex = 2
+ } else {
+ e.imgSrcIndex = 0
+ }
+ }
+ if (index === 1) {
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '待审核') {
+ e.imgSrcIndex = 0
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '未通过') {
+ e.imgSrcIndex = 1
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '通过') {
+ e.imgSrcIndex = 2
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == null) {
+ e.imgSrcIndex = 3
+ }
+ }
+ if (index === 2) {
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '待审核') {
+ e.imgSrcIndex = 0
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '未通过') {
+ e.imgSrcIndex = 1
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == '通过') {
+ e.imgSrcIndex = 2
+ }
+ if (e.auditingInfo[e.auditingInfo.length - 1].operateResult == null) {
+ e.imgSrcIndex = 3
+ }
+ }
+ })
+ }
}
},
diff --git a/pages/workPlan/workbench/components/infrastructure-model.vue b/pages/workPlan/workbench/components/infrastructure-model.vue
index 75740f9..c43b101 100644
--- a/pages/workPlan/workbench/components/infrastructure-model.vue
+++ b/pages/workPlan/workbench/components/infrastructure-model.vue
@@ -53,8 +53,9 @@ export default {
isShow: ['23', '24', '25']
}
],
- roles: uni.getStorageSync('wkRole'),
- title: '填报'
+
+ title: '',
+ roles: uni.getStorageSync('wkRole')
}
},
methods: {
@@ -62,14 +63,14 @@ export default {
uni.navigateTo({ url: `${url}` })
}
},
- onLoad() {
- if (this.roles === '22') {
+ mounted() {
+ if (this.roles == 22) {
this.title = '填报'
}
- if (this.roles === '23') {
+ if (this.roles == 23) {
this.title = '上报'
}
- if (this.roles === '24' || this.roles === '25') {
+ if (this.roles == 24 || this.roles == 25) {
this.title = '审核'
}
}
diff --git a/pages/workPlan/workbench/components/production-model.vue b/pages/workPlan/workbench/components/production-model.vue
index 4c51849..19293cd 100644
--- a/pages/workPlan/workbench/components/production-model.vue
+++ b/pages/workPlan/workbench/components/production-model.vue
@@ -62,14 +62,14 @@ export default {
uni.navigateTo({ url: `${url}?type=2` })
}
},
- onLoad() {
- if (this.roles === '22') {
+ mounted() {
+ if (this.roles == 22) {
this.title = '填报'
}
- if (this.roles === '23') {
+ if (this.roles == 23) {
this.title = '上报'
}
- if (this.roles === '24' || this.roles === '25') {
+ if (this.roles == 24 || this.roles == 25) {
this.title = '审核'
}
}
diff --git a/static/images/workPlan/fgs_wtg.png b/static/images/workPlan/fgs_wtg.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e1d2eedcc974d1744e48488a830e2d75ac5733d
GIT binary patch
literal 3616
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