接口调试 页面完善
|
|
@ -1,13 +1,21 @@
|
|||
import request_yn from '@/utils/request_new_yn'
|
||||
|
||||
// 获取工程列表
|
||||
export function getProjectListApi(data) {
|
||||
// 获取工程列表 (其一)
|
||||
export function getProjectList_1Api(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/select/getProsByState',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 获取工程列表 (其二)
|
||||
export function getProjectList_2Api(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/select/getProsForPro',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
// 获取风险等级
|
||||
export function getRiskLevelListApi(data) {
|
||||
return request_yn({
|
||||
|
|
@ -24,7 +32,7 @@ export function getControlLevelListApi(data) {
|
|||
params: data
|
||||
})
|
||||
}
|
||||
// 月计划填报提交
|
||||
// 月计划填报提交 --基建
|
||||
export function setMonthPlanApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/addInfPlan',
|
||||
|
|
@ -32,7 +40,7 @@ export function setMonthPlanApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看报表
|
||||
// 月计划-查看报表 --基建
|
||||
export function getMonthPlanDataApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/getPlanDetail',
|
||||
|
|
@ -40,7 +48,7 @@ export function getMonthPlanDataApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据
|
||||
// 月计划-查看数据 --基建
|
||||
export function getViewDataListApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/getViewData',
|
||||
|
|
@ -48,7 +56,7 @@ export function getViewDataListApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情
|
||||
// 月计划-查看数据-详情 --基建
|
||||
export function getPlanDetailApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/getPlanDetail',
|
||||
|
|
@ -56,7 +64,7 @@ export function getPlanDetailApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划撤回
|
||||
// 月计划-查看数据-详情-计划撤回 --基建
|
||||
export function revokePlanApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/backPlan',
|
||||
|
|
@ -64,7 +72,7 @@ export function revokePlanApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划删除
|
||||
// 月计划-查看数据-详情-计划删除 --基建
|
||||
export function deletePlanApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/deletePlan',
|
||||
|
|
@ -72,7 +80,7 @@ export function deletePlanApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划修改
|
||||
// 月计划-查看数据-详情-计划修改 --基建
|
||||
export function updateInfPlanContentApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/updateInfPlanContent',
|
||||
|
|
@ -80,7 +88,7 @@ export function updateInfPlanContentApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划提交
|
||||
// 月计划-查看数据-详情-计划提交 --基建
|
||||
export function submitPlanApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/submitPlan',
|
||||
|
|
@ -88,3 +96,121 @@ export function submitPlanApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 生产月计划
|
||||
*/
|
||||
|
||||
// 获取作业类型
|
||||
export function getWorkTypeProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/select/getGZLX',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
// 获取管控方式
|
||||
export function getControlModeProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/select/getGKFS',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 月计划填报提交 --生产
|
||||
export function setMonthPlanProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/addInfPlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看报表 --生产
|
||||
export function getMonthPlanDataProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/getPlanDetail',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据 --生产
|
||||
export function getViewDataListProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/getViewData',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情 --生产
|
||||
export function getPlanDetailProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/getPlanDetail',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划撤回 --生产
|
||||
export function revokePlanProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/backPlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划删除 --生产
|
||||
export function deletePlanProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/deletePlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划修改 --生产
|
||||
export function updateInfPlanContentProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/updateInfPlanContent',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-详情-计划提交 --生产
|
||||
export function submitPlanProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/submitPlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看数据-审核流程
|
||||
export function getAUditingProcessApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/getCheckDetail',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-上报人-获取审核人信息
|
||||
export function getAUditingUserInfoApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/select/getSelectUser',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看当前工程 当前月计划是否上传 - 基建
|
||||
export function getIsPlanApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infMonth/isPlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
// 月计划-查看当前工程 当前月计划是否上传 - 生产
|
||||
export function getIsPlanProApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/proMonth/isPlan',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
|
|
|||
21
pages.json
|
|
@ -779,14 +779,31 @@
|
|||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
|
||||
/* 基建月计划 */
|
||||
{
|
||||
"path": "pages/workPlan/monthPlan/index",
|
||||
"path": "pages/workPlan/monthPlan/inf-index",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
/* 生产月计划 */
|
||||
{
|
||||
"path": "pages/workPlan/monthPlanDetails/index",
|
||||
"path": "pages/workPlan/monthPlan/pro-index",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
/* 月计划详情 --基建 */
|
||||
{
|
||||
"path": "pages/workPlan/monthPlanDetails/inf-index",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
/* 月计划详情--生产 */
|
||||
{
|
||||
"path": "pages/workPlan/monthPlanDetails/pro-index",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<view class="yy-box">
|
||||
<view class="bt">我的应用</view>
|
||||
<view class="yy-list">
|
||||
<view class="yy-one" @click="gotoYy(item.appName)" v-for="(item, index) in myApp" :key="index">
|
||||
<view class="yy-one" @click="gotoYy(item.appName)" v-for="(item, index) in allApp" :key="index">
|
||||
<view class="yy-img">
|
||||
<image :src="item.base64Url"></image>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -95,10 +95,16 @@
|
|||
|
||||
</scroll-view> -->
|
||||
|
||||
<view style="background-color: #fff" class="scroll-content-1">
|
||||
<swiper circular :autoplay="false" :current="currentSwiper" style="height: 700rpx" @change="onSwiperChange">
|
||||
<swiper-item v-for="(item, index) in monthParams" :key="index">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" style="height: 100%">
|
||||
<view style="background-color: #fff" :style="{ height: scrollHeight_1 + 'px' }" class="scroll-content-1">
|
||||
<swiper
|
||||
circular
|
||||
:autoplay="false"
|
||||
:current="currentSwiper"
|
||||
:style="{ height: scrollHeight_1 + 'px' }"
|
||||
@change="onSwiperChange"
|
||||
>
|
||||
<swiper-item v-for="(item, index) in monthParams" :key="index" :style="{ height: scrollHeight_1 + 'px' }">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" :style="{ height: scrollHeight_1 + 'px' }">
|
||||
<uni-forms
|
||||
class="form-container"
|
||||
:ref="`monthPlanFormRef_${index}`"
|
||||
|
|
@ -202,17 +208,17 @@
|
|||
<button @tap="onBackToday">返回本月</button>
|
||||
</view>
|
||||
|
||||
<view class="pages">
|
||||
<view class="pages scroll-content-2" :style="{ height: scrollHeight_2 + 'px' }">
|
||||
<!-- <uni-pagination :show-icon="true" :total="1" /> -->
|
||||
<swiper
|
||||
circular
|
||||
:autoplay="false"
|
||||
:current="activeFormPages"
|
||||
style="height: 700rpx"
|
||||
:style="{ height: scrollHeight_2 + 'px' }"
|
||||
@change="onSwiperChangeForms"
|
||||
v-if="monthDataList.length > 0"
|
||||
>
|
||||
<swiper-item v-for="(item, index) in monthDataList" :key="index">
|
||||
<swiper-item v-for="(item, index) in monthDataList" :key="index" :style="{ height: scrollHeight_2 + 'px' }">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" style="height: 100%">
|
||||
<uni-forms class="form-container" label-position="top" label-width="200">
|
||||
<uni-forms-item
|
||||
|
|
@ -268,7 +274,12 @@
|
|||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
|
||||
<scroll-view scroll-y style="height: 600rpx">
|
||||
<scroll-view
|
||||
scroll-y
|
||||
style="height: 600rpx"
|
||||
class="scroll-content-3"
|
||||
:style="{ height: scrollHeight_3 + 'px' }"
|
||||
>
|
||||
<view class="month-list" v-for="item in viewMonthPlanList" :key="item.id" @tap="onViewDetails(item)">
|
||||
<view class="item-header">
|
||||
<text v-if="item.kjsfx > 0">可接受风险:{{ item.kjsfx }}</text>
|
||||
|
|
@ -662,7 +673,10 @@ export default {
|
|||
dfxAmount: 0,
|
||||
zfxAmount: 0,
|
||||
gfxAmount: 0,
|
||||
tfxAmount: 0
|
||||
tfxAmount: 0,
|
||||
scrollHeight_1: 0,
|
||||
scrollHeight_2: 0,
|
||||
scrollHeight_3: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -923,6 +937,12 @@ export default {
|
|||
this.tfxAmount = this.tfxAmount + e.tgfx * 1
|
||||
})
|
||||
}
|
||||
|
||||
if (this.scrollHeight_2 === 0) {
|
||||
this.calcScrollHeight('.scroll-content-2', null).then(res => {
|
||||
this.scrollHeight_2 = res
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 查看报表页面工程选择事件 */
|
||||
onChangeProjectSel(value) {
|
||||
|
|
@ -955,6 +975,11 @@ export default {
|
|||
const res = await getViewDataListApi(this.queryDataParamsNew)
|
||||
console.log('res查看数据中的数据', res)
|
||||
this.viewMonthPlanList = res.obj
|
||||
if (this.scrollHeight_3 === 0) {
|
||||
this.calcScrollHeight('.scroll-content-3', null).then(res => {
|
||||
this.scrollHeight_3 = res
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 处理枚举状态 */
|
||||
onTypeChange(type) {
|
||||
|
|
@ -1034,24 +1059,22 @@ export default {
|
|||
let that = this
|
||||
let scrollHeight = 0
|
||||
|
||||
new Promise((resolve, reject) => {
|
||||
// 使用 Promise 包裹 uni.getSystemInfo 的异步调用
|
||||
const result = await new Promise((resolve, reject) => {
|
||||
uni.getSystemInfo({
|
||||
//调用uni-app接口获取屏幕高度
|
||||
success(res) {
|
||||
//成功回调函数
|
||||
that._data.pH = res.windowHeight
|
||||
let titleH = uni.createSelectorQuery().select(dom)
|
||||
|
||||
if (bottom) {
|
||||
let bottomDom = uni.createSelectorQuery().select(bottom)
|
||||
bottomDom
|
||||
.boundingClientRect(res => {
|
||||
const bottomHeight = res.height
|
||||
.boundingClientRect(bottomRes => {
|
||||
const bottomHeight = bottomRes.height
|
||||
|
||||
titleH
|
||||
.boundingClientRect(data => {
|
||||
let pH = that._data.pH
|
||||
scrollHeight = pH - data.top - bottomHeight
|
||||
scrollHeight = that._data.pH - data.top - bottomHeight
|
||||
resolve(scrollHeight)
|
||||
})
|
||||
.exec()
|
||||
|
|
@ -1060,17 +1083,19 @@ export default {
|
|||
} else {
|
||||
titleH
|
||||
.boundingClientRect(data => {
|
||||
let pH = that._data.pH
|
||||
scrollHeight = pH - data.top
|
||||
scrollHeight = that._data.pH - data.top
|
||||
resolve(scrollHeight)
|
||||
})
|
||||
.exec()
|
||||
}
|
||||
},
|
||||
fail(err) {
|
||||
reject(err) // 处理获取系统信息失败的情况
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// return scrollHeight
|
||||
return result // 返回计算的高度
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
|
|
@ -1082,9 +1107,10 @@ export default {
|
|||
},
|
||||
onReady() {
|
||||
this.calcScrollHeight('.scroll-content-1', '.bottom-btn').then(res => {
|
||||
console.log('res---', res)
|
||||
// console.log('res---', res)
|
||||
|
||||
this.scrollHeight_1 = res
|
||||
})
|
||||
// console.log('content_1content_1', content_1)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -410,7 +410,7 @@ export default {
|
|||
titleH
|
||||
.boundingClientRect(data => {
|
||||
let pH = that._data.pH
|
||||
that._data.navHeight = pH - data.top - bottomHeight
|
||||
that._data.navHeight = pH - data.top - bottomHeight - 48
|
||||
})
|
||||
.exec()
|
||||
})
|
||||
|
|
@ -436,7 +436,7 @@ export default {
|
|||
|
||||
.revoke {
|
||||
width: 100%;
|
||||
padding: 30rpx 0;
|
||||
padding: 12px 0;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,867 @@
|
|||
<template>
|
||||
<!-- 基建月计划详情 -->
|
||||
<view style="padding: 15rpx">
|
||||
<u-navbar
|
||||
class="u-navbar"
|
||||
title="详情"
|
||||
placeholder
|
||||
@leftClick="leftClick"
|
||||
leftIconColor="#fff"
|
||||
bgColor="#00337A"
|
||||
:titleStyle="{ color: '#FFF', fontSize: '32rpx' }"
|
||||
/>
|
||||
|
||||
<view>
|
||||
<view class="item-header">
|
||||
<text>{{ month }}</text>
|
||||
<text v-if="kjsAmount > 0">可接受风险:{{ kjsAmount }}</text>
|
||||
<text v-if="gfxAmount > 0">高风险:{{ gfxAmount }}</text>
|
||||
<text v-if="zfxAmount > 0">中风险:{{ zfxAmount }}</text>
|
||||
<text v-if="dfxAmount > 0">低风险:{{ dfxAmount }}</text>
|
||||
<text v-if="tfxAmount > 0">特高风险:{{ tfxAmount }}</text>
|
||||
</view>
|
||||
|
||||
<view>
|
||||
<scroll-view scroll-x class="header-left">
|
||||
<text
|
||||
:class="{ 'active-form-page': activeFormPages === index }"
|
||||
v-for="(item, index) in monthDetailsList"
|
||||
:key="index"
|
||||
@tap="onChangeFormPages(index)"
|
||||
>
|
||||
{{ index + 1 }}
|
||||
</text>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<swiper
|
||||
circular
|
||||
:autoplay="false"
|
||||
:current="activeFormPages"
|
||||
class="scroll-content"
|
||||
:style="{ height: navHeight + 'px' }"
|
||||
@change="onSwiperChangeForms"
|
||||
>
|
||||
<swiper-item v-for="(item, index) in monthDetailsList" :key="index" :style="{ height: navHeight + 'px' }">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" :style="{ height: navHeight + 'px' }">
|
||||
<uni-forms class="form-container" label-position="top" label-width="200">
|
||||
<uni-forms-item
|
||||
v-for="(f, i) in monthPlanTitle === '基建月计划' ? infrastructureFormLabel : productionFormLabel"
|
||||
:key="i"
|
||||
:label="f.form_label"
|
||||
:name="f.name"
|
||||
required
|
||||
>
|
||||
<uni-easyinput
|
||||
v-if="f.items_type === 'ipt'"
|
||||
:clear="false"
|
||||
type="text"
|
||||
v-model="item[f.name]"
|
||||
:disabled="editDisabled"
|
||||
/>
|
||||
<uni-data-select
|
||||
v-model="item[f.name]"
|
||||
:localdata="f.options"
|
||||
:disabled="editDisabled"
|
||||
:clear="false"
|
||||
v-if="f.items_type === 'sel'"
|
||||
></uni-data-select>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
|
||||
<view class="process-container" v-if="roles != '22'">
|
||||
<h1>流程</h1>
|
||||
|
||||
<view v-for="(item, index) in processList" :key="index">
|
||||
<view class="process-item">
|
||||
<view>
|
||||
<!-- 项目部
|
||||
<text class="type-icon">x</text> -->
|
||||
|
||||
<image :src="item.imgSrcList[0]" mode="'scaleToFill'"></image>
|
||||
</view>
|
||||
<view>
|
||||
<text class="text_1">{{ item.process }}</text>
|
||||
<text class="text_2">
|
||||
<text>{{ item.userName }}</text>
|
||||
<text v-if="index !== 0" style="margin-left: 100rpx">{{ item.auditingResult }}</text>
|
||||
</text>
|
||||
</view>
|
||||
<view>{{ item.time }}</view>
|
||||
</view>
|
||||
|
||||
<view class="line" v-if="index !== 2">
|
||||
<view class="line-content">
|
||||
<view></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
|
||||
<view class="revoke">
|
||||
<view
|
||||
@tap="showModalFun(item.id)"
|
||||
v-for="item in btnList"
|
||||
:key="item.id"
|
||||
v-show="item.isShow.includes(state) && item.isRoles.includes(roles)"
|
||||
>
|
||||
<uni-icons :type="item.type" size="20" style="color: #00337a"></uni-icons>
|
||||
<text style="margin-top: 8rpx">{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 审核人弹框 -->
|
||||
<uni-popup ref="popupAuditing" background-color="#fff">
|
||||
<view class="auditing-content">
|
||||
<view class="auditing-title">
|
||||
<view class="title">
|
||||
<text style="margin-left: 15rpx">请选择计划审核人</text>
|
||||
</view>
|
||||
<view class="search">
|
||||
<view class="search-ipt">
|
||||
<uni-easyinput :clear="false" type="text" placeholder="请输入关键字" v-model="searchUserName" />
|
||||
</view>
|
||||
<view class="search-btn" @tap="onSearchUserInfo">搜索</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="user-info">
|
||||
<view class="user-title">
|
||||
<view style="width: 8%"></view>
|
||||
<view style="width: 12%">序号</view>
|
||||
<view style="width: 30%">姓名</view>
|
||||
<view style="width: 50%">岗位</view>
|
||||
</view>
|
||||
|
||||
<scroll-view :scroll-y="true" style="height: 33vh">
|
||||
<view class="user-content" v-for="(item, index) in auditingUserList" :key="item.id">
|
||||
<view style="width: 8%">
|
||||
<label>
|
||||
<checkbox
|
||||
:checked="item.isChecked"
|
||||
color="#fff"
|
||||
borderColor="#ccc"
|
||||
backgroundColor="#fff"
|
||||
activeBorderColor="#003778"
|
||||
activeBackgroundColor="#003778"
|
||||
style="transform: scale(0.7)"
|
||||
@tap="onCheckBoxChange(item)"
|
||||
/>
|
||||
</label>
|
||||
</view>
|
||||
<view style="width: 12%">{{ index + 1 }}</view>
|
||||
<view style="width: 30%">{{ item.name }}</view>
|
||||
<view style="width: 50%">{{ item.orgName }}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<view class="user-btn">
|
||||
<view class="btn-cancel" @tap="onHandlerCancel">取消</view>
|
||||
<view class="btn-submit" @tap="onHandlerSubmit">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
submitPlanApi,
|
||||
deletePlanApi,
|
||||
revokePlanApi,
|
||||
getPlanDetailApi,
|
||||
getRiskLevelListApi,
|
||||
getControlLevelListApi,
|
||||
updateInfPlanContentApi,
|
||||
getAUditingProcessApi,
|
||||
getAUditingUserInfoApi,
|
||||
setMonthPlanApi
|
||||
} from '../../../api/workPlan/monthPlan'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
monthDetailsList: [],
|
||||
monthPlanTitle: '基建月计划',
|
||||
editDisabled: false,
|
||||
state: '',
|
||||
month: '',
|
||||
proId: '',
|
||||
activeFormPages: 0,
|
||||
params: {
|
||||
id: ''
|
||||
},
|
||||
btnList: [
|
||||
{ title: '修改', id: 1, type: 'compose', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
{ title: '删除', id: 2, type: 'trash', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
{
|
||||
title: '撤回',
|
||||
id: 3,
|
||||
type: 'redo-filled',
|
||||
isShow: ['1', '2', '4', '5', '6', '7', '8', '9'],
|
||||
isRoles: ['22', '23']
|
||||
},
|
||||
{ title: '提交', id: 4, type: 'upload', isShow: ['1', '2', '3'], isRoles: ['22', '23'] }
|
||||
],
|
||||
infrastructureFormLabel: [
|
||||
{ form_label: '作业内容', items_type: 'ipt', name: 'zynr' },
|
||||
{ form_label: '作业条件(人员、机具、图纸、物资等、气候条件对作业的影响)', items_type: 'ipt', name: 'zytj' },
|
||||
{ form_label: '风险类别', items_type: 'ipt', name: 'fxlb' },
|
||||
{ form_label: '管控措施', items_type: 'ipt', name: 'gkcs' },
|
||||
{
|
||||
form_label: '风险等级',
|
||||
items_type: 'sel',
|
||||
name: 'fxdj',
|
||||
options: []
|
||||
},
|
||||
{
|
||||
form_label: '管控级别',
|
||||
items_type: 'sel',
|
||||
name: 'gkcj',
|
||||
options: []
|
||||
},
|
||||
{
|
||||
form_label: '是否有危大/易造成人员较大伤亡作业',
|
||||
items_type: 'sel',
|
||||
name: 'wdgc',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '方案是否报审',
|
||||
items_type: 'sel',
|
||||
name: 'fasp',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '是否有涉网作业',
|
||||
items_type: 'sel',
|
||||
name: 'swzy',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '线路/设备停电计划是否上报',
|
||||
items_type: 'sel',
|
||||
name: 'sbtd',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
]
|
||||
},
|
||||
{ form_label: '项目负责人/联系电话', items_type: 'ipt', name: 'xmfzr' },
|
||||
{ form_label: '单位负责人/联系电话', items_type: 'ipt', name: 'dwfzr' },
|
||||
{ form_label: '计划数量', items_type: 'ipt', name: 'planCount' }
|
||||
],
|
||||
productionFormLabel: [
|
||||
{ form_label: '作业内容', items_type: 'ipt' },
|
||||
{ form_label: '实施单位', items_type: 'ipt' },
|
||||
{ form_label: '实施部门', items_type: 'ipt' },
|
||||
{ form_label: '任务来源', items_type: 'ipt' },
|
||||
{
|
||||
form_label: '作业类型',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '检修' },
|
||||
{ value: 1, text: '维护' }
|
||||
]
|
||||
},
|
||||
{ form_label: '计划开始时间', items_type: 'sel' },
|
||||
{ form_label: '计划结束时间', items_type: 'sel' },
|
||||
{
|
||||
form_label: '是否停电',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 1, text: '是' },
|
||||
{ value: 0, text: '否' }
|
||||
]
|
||||
},
|
||||
{ form_label: '停电设备(作业场所)', items_type: 'ipt' },
|
||||
{ form_label: '作业监督人/联系电话', items_type: 'ipt' },
|
||||
{ form_label: '作业负责人/联系电话', items_type: 'ipt' },
|
||||
{
|
||||
form_label: '管控级别',
|
||||
items_type: 'sel',
|
||||
options: []
|
||||
},
|
||||
{
|
||||
form_label: '风险等级',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '可接受风险' },
|
||||
{ value: 1, text: '低风险' },
|
||||
{ value: 2, text: '中风险' },
|
||||
{ value: 2, text: '高风险' },
|
||||
{ value: 2, text: '特高风险' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '管控方式(根据作业内容在作业文件栏中选择"是"、"否")',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '过程管控' },
|
||||
{ value: 1, text: '巡视管控' },
|
||||
{ value: 2, text: '驻点管控' },
|
||||
{ value: 2, text: '节点管控' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '施工方案',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 1, text: '是' },
|
||||
{ value: 0, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '作业指导书',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '作业表单',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '工作票',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{ form_label: '备注', items_type: 'ipt' },
|
||||
{ form_label: '计划数量', items_type: 'ipt' }
|
||||
],
|
||||
kjsAmount: 0,
|
||||
dfxAmount: 0,
|
||||
zfxAmount: 0,
|
||||
gfxAmount: 0,
|
||||
tfxAmount: 0,
|
||||
navHeight: 0,
|
||||
roles: uni.getStorageSync('wkRole'),
|
||||
processList: [
|
||||
{
|
||||
title: '项目部',
|
||||
process: '发起申请',
|
||||
userName: '',
|
||||
time: '',
|
||||
auditingResult: '',
|
||||
imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
|
||||
},
|
||||
{
|
||||
title: '项目部',
|
||||
process: '审核人',
|
||||
userName: '',
|
||||
time: '2',
|
||||
auditingResult: '',
|
||||
imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
|
||||
},
|
||||
{
|
||||
title: '项目部',
|
||||
process: '审核人',
|
||||
userName: '',
|
||||
time: '',
|
||||
auditingResult: '未通过',
|
||||
imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', '../../../static/images/workPlan/xmb_dsh.png']
|
||||
}
|
||||
],
|
||||
searchUserName: '',
|
||||
auditingUserList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
leftClick() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
async getRiskLevelListData() {
|
||||
const res = await getRiskLevelListApi()
|
||||
|
||||
try {
|
||||
this.infrastructureFormLabel.forEach(e => {
|
||||
if (e.form_label === '风险等级') {
|
||||
e.options = res.map(e => {
|
||||
return {
|
||||
value: e.id,
|
||||
text: e.name
|
||||
}
|
||||
})
|
||||
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
},
|
||||
async getControlLevelListData() {
|
||||
const res = await getControlLevelListApi()
|
||||
// console.log('管控层级', res)
|
||||
try {
|
||||
this.infrastructureFormLabel.forEach(e => {
|
||||
if (e.form_label === '管控级别') {
|
||||
e.options = res.map(e => {
|
||||
return {
|
||||
value: e.id,
|
||||
text: e.name
|
||||
}
|
||||
})
|
||||
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
},
|
||||
/* 获取详情 */
|
||||
async getPlanDetailData() {
|
||||
const res = await getPlanDetailApi(this.params)
|
||||
console.log('详情数据res', res)
|
||||
|
||||
this.monthDetailsList = res.obj
|
||||
|
||||
if (this.monthDetailsList.length > 0) {
|
||||
this.kjsAmount = 0
|
||||
this.dfxAmount = 0
|
||||
this.zfxAmount = 0
|
||||
this.gfxAmount = 0
|
||||
this.tfxAmount = 0
|
||||
this.monthDetailsList.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
|
||||
})
|
||||
}
|
||||
},
|
||||
showModalFun(type) {
|
||||
let tipTitle = ''
|
||||
let API = null
|
||||
switch (type) {
|
||||
case 1:
|
||||
tipTitle = '修改'
|
||||
API = updateInfPlanContentApi
|
||||
break
|
||||
case 2:
|
||||
tipTitle = '删除'
|
||||
API = deletePlanApi
|
||||
break
|
||||
case 3:
|
||||
tipTitle = '撤销'
|
||||
API = revokePlanApi
|
||||
break
|
||||
case 4:
|
||||
tipTitle = '提交'
|
||||
API = submitPlanApi
|
||||
break
|
||||
}
|
||||
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: `确定要${tipTitle}吗?`,
|
||||
showCancel: true,
|
||||
cancelText: '取消',
|
||||
confirmText: '确定',
|
||||
confirmColor: '#00337a',
|
||||
cancelColor: '#00337a',
|
||||
success: async res => {
|
||||
if (res.confirm) {
|
||||
const params = {
|
||||
id: JSON.stringify(this.monthDetailsList)
|
||||
}
|
||||
|
||||
if (type === 4 && this.roles != '22') {
|
||||
this.getAUditingUserInfoData()
|
||||
this.$refs.popupAuditing.open('center')
|
||||
} else {
|
||||
const result = await API(type === 1 ? params : this.params)
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ title: `${tipTitle}成功!`, icon: 'none' })
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
success() {
|
||||
uni.$emit('update')
|
||||
}
|
||||
})
|
||||
}, 500)
|
||||
} else {
|
||||
uni.showToast({ title: `${tipTitle}失败!`, icon: 'none' })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onChangeFormPages(index) {
|
||||
this.activeFormPages = index
|
||||
},
|
||||
onSwiperChangeForms(e) {
|
||||
this.activeFormPages = e.detail.current
|
||||
},
|
||||
/* 获取详细审核流程 */
|
||||
async getAUditingProcessData() {
|
||||
if (this.roles != '22') {
|
||||
const params = {
|
||||
id: this.proId
|
||||
}
|
||||
|
||||
console.log('paramsparams参数', params)
|
||||
const res = await getAUditingProcessApi(params)
|
||||
|
||||
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
|
||||
})
|
||||
|
||||
console.log('this.this.processList', this.processList)
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
onCheckBoxChange(item) {
|
||||
console.log(item, '*****')
|
||||
item.isChecked = !item.isChecked
|
||||
},
|
||||
/* 获取审核人接口 */
|
||||
async getAUditingUserInfoData() {
|
||||
const res = await getAUditingUserInfoApi({ name: this.searchUserName })
|
||||
|
||||
this.auditingUserList = res.map(e => {
|
||||
this.$set(e, 'isChecked', false)
|
||||
return e
|
||||
})
|
||||
|
||||
console.log('this.auditingUserList已处理', this.auditingUserList)
|
||||
},
|
||||
/* 搜索审核人员 */
|
||||
onSearchUserInfo() {
|
||||
console.log(this.searchUserName, '99999999')
|
||||
this.getAUditingUserInfoData()
|
||||
},
|
||||
/* 取消 */
|
||||
onHandlerCancel() {
|
||||
this.$refs.popupAuditing.close()
|
||||
this.searchUserName = ''
|
||||
},
|
||||
/* 确定 */
|
||||
async onHandlerSubmit() {
|
||||
const ids = this.auditingUserList.map(e => {
|
||||
if (e.isChecked) return e.id
|
||||
})
|
||||
|
||||
let idsStr = ids.filter(e => e != null).join(',')
|
||||
|
||||
const params = {
|
||||
id: JSON.stringify(this.monthDetailsList),
|
||||
user: idsStr,
|
||||
state: '2'
|
||||
}
|
||||
|
||||
console.log('saveParams保存参数', params)
|
||||
|
||||
const result = await setMonthPlanApi(params)
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ title: `提交成功!`, icon: 'none' })
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
success() {
|
||||
uni.$emit('update')
|
||||
}
|
||||
})
|
||||
}, 500)
|
||||
} else {
|
||||
uni.showToast({ title: `提交失败!`, icon: 'none' })
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.state = options.state
|
||||
this.month = options.month
|
||||
this.proId = options.id
|
||||
console.log('options.state', options.state, options.month)
|
||||
Promise.all([this.getRiskLevelListData(), this.getControlLevelListData()]).then(res => {
|
||||
this.params.id = options.id
|
||||
this.getPlanDetailData()
|
||||
})
|
||||
this.getAUditingProcessData()
|
||||
},
|
||||
onReady() {
|
||||
let that = this
|
||||
uni.getSystemInfo({
|
||||
//调用uni-app接口获取屏幕高度
|
||||
success(res) {
|
||||
//成功回调函数
|
||||
that._data.pH = res.windowHeight
|
||||
let titleH = uni.createSelectorQuery().select('.scroll-content')
|
||||
let bottom = uni.createSelectorQuery().select('.revoke')
|
||||
bottom
|
||||
.boundingClientRect(res => {
|
||||
const bottomHeight = res.height
|
||||
|
||||
titleH
|
||||
.boundingClientRect(data => {
|
||||
let pH = that._data.pH
|
||||
that._data.navHeight = pH - data.top - bottomHeight - 48
|
||||
})
|
||||
.exec()
|
||||
})
|
||||
.exec()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.item-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10rpx 0;
|
||||
font-size: 22rpx;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
::v-deep .uni-input-input:disabled {
|
||||
-webkit-text-fill-color: #333;
|
||||
}
|
||||
|
||||
.revoke {
|
||||
width: 100%;
|
||||
padding: 12px 0;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
|
||||
view {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.header-left {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
white-space: nowrap;
|
||||
|
||||
text {
|
||||
width: 16.66%;
|
||||
padding: 12rpx 0;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.active-form-page {
|
||||
border-bottom: 1px solid #003778;
|
||||
color: #003778 !important;
|
||||
}
|
||||
|
||||
.process-container {
|
||||
padding: 20rpx;
|
||||
background-color: #fff;
|
||||
border-top: 2px solid #ccc;
|
||||
|
||||
h1 {
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 40rpx;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
.process-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.process-item view:first-child {
|
||||
position: relative;
|
||||
width: 20%;
|
||||
height: 80rpx;
|
||||
color: #fff;
|
||||
// background-color: #00337a;
|
||||
border-radius: 12rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
}
|
||||
|
||||
.type-icon {
|
||||
// box-sizing: border-box;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 35rpx;
|
||||
width: 35rpx;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height: 35rpx;
|
||||
transform: translate(25%, 25%);
|
||||
border: 3px solid #fff;
|
||||
background-color: green;
|
||||
}
|
||||
}
|
||||
.process-item view:nth-child(2) {
|
||||
flex: 1;
|
||||
padding-left: 26rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.text_1 {
|
||||
font-size: 28rpx;
|
||||
color: #7e7e7e;
|
||||
}
|
||||
.text_2 {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 16rpx;
|
||||
font-size: 24rpx;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.process-item view:last-child {
|
||||
width: 30%;
|
||||
font-size: 22rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.line {
|
||||
margin: 28rpx 0;
|
||||
.line-content {
|
||||
width: 20%;
|
||||
|
||||
view {
|
||||
margin: 0 auto;
|
||||
height: 60rpx;
|
||||
width: 2px;
|
||||
background-color: #00337a;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.auditing-content {
|
||||
width: 95vw;
|
||||
height: 60vh;
|
||||
background-color: #eee;
|
||||
|
||||
.auditing-title {
|
||||
width: 100%;
|
||||
padding-bottom: 4rpx;
|
||||
margin-bottom: 16rpx;
|
||||
background-color: #fff;
|
||||
|
||||
.title {
|
||||
width: 93%;
|
||||
margin: 20rpx auto;
|
||||
padding: 13rpx 0;
|
||||
border: 1px solid #ccc;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
border-radius: 5rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 93%;
|
||||
margin: 20rpx auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.search-ipt {
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
width: 25%;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
line-height: 60rpx;
|
||||
color: #fff;
|
||||
border-radius: 12rpx;
|
||||
background-color: #003778;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.user-info {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
box-sizing: content-box;
|
||||
background-color: #fff;
|
||||
.user-title,
|
||||
.user-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8rpx;
|
||||
|
||||
view {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.user-content {
|
||||
padding: 15rpx 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.user-btn {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
padding-top: 28rpx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
view {
|
||||
width: 40%;
|
||||
height: 82rpx;
|
||||
text-align: center;
|
||||
line-height: 82rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
.btn-cancel {
|
||||
background-color: #ccc !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.btn-submit {
|
||||
color: #fff;
|
||||
background-color: #003778 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,651 @@
|
|||
<template>
|
||||
<!-- 生产月计划详情 -->
|
||||
<view style="padding: 15rpx">
|
||||
<u-navbar
|
||||
class="u-navbar"
|
||||
title="详情"
|
||||
placeholder
|
||||
@leftClick="leftClick"
|
||||
leftIconColor="#fff"
|
||||
bgColor="#00337A"
|
||||
:titleStyle="{ color: '#FFF', fontSize: '32rpx' }"
|
||||
/>
|
||||
|
||||
<view>
|
||||
<view class="item-header">
|
||||
<text>{{ month }}</text>
|
||||
<text v-if="kjsAmount > 0">可接受风险:{{ kjsAmount }}</text>
|
||||
<text v-if="gfxAmount > 0">高风险:{{ gfxAmount }}</text>
|
||||
<text v-if="zfxAmount > 0">中风险:{{ zfxAmount }}</text>
|
||||
<text v-if="dfxAmount > 0">低风险:{{ dfxAmount }}</text>
|
||||
<text v-if="tfxAmount > 0">特高风险:{{ tfxAmount }}</text>
|
||||
</view>
|
||||
|
||||
<view>
|
||||
<scroll-view scroll-x class="header-left">
|
||||
<text
|
||||
:class="{ 'active-form-page': activeFormPages === index }"
|
||||
v-for="(item, index) in monthDetailsList"
|
||||
:key="index"
|
||||
@tap="onChangeFormPages(index)"
|
||||
>
|
||||
{{ index + 1 }}
|
||||
</text>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<swiper
|
||||
circular
|
||||
:autoplay="false"
|
||||
:current="activeFormPages"
|
||||
class="scroll-content"
|
||||
:style="{ height: navHeight + 'px' }"
|
||||
@change="onSwiperChangeForms"
|
||||
>
|
||||
<swiper-item v-for="(item, index) in monthDetailsList" :key="index" :style="{ height: navHeight + 'px' }">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" :style="{ height: navHeight + 'px' }">
|
||||
<uni-forms class="form-container" label-position="top" label-width="200">
|
||||
<uni-forms-item
|
||||
v-for="(f, i) in productionFormLabel"
|
||||
:key="i"
|
||||
:label="f.form_label"
|
||||
:name="f.name"
|
||||
required
|
||||
>
|
||||
<uni-easyinput
|
||||
v-if="f.items_type === 'ipt'"
|
||||
:clear="false"
|
||||
type="text"
|
||||
v-model="item[f.name]"
|
||||
:disabled="editDisabled"
|
||||
/>
|
||||
<uni-data-select
|
||||
v-model="item[f.name]"
|
||||
:localdata="f.options"
|
||||
:disabled="editDisabled"
|
||||
:clear="false"
|
||||
v-if="f.items_type === 'sel'"
|
||||
></uni-data-select>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</scroll-view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
|
||||
<view class="revoke">
|
||||
<view @tap="showModalFun(item.id)" v-for="item in btnList" :key="item.id" v-show="item.isShow.includes(state)">
|
||||
<uni-icons :type="item.type" size="20" style="color: #00337a"></uni-icons>
|
||||
<text style="margin-top: 8rpx">{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 审核人弹框 -->
|
||||
<uni-popup ref="popupAuditing" background-color="#fff">
|
||||
<view class="auditing-content">
|
||||
<view class="auditing-title">
|
||||
<view class="title">
|
||||
<text style="margin-left: 15rpx">请选择计划审核人</text>
|
||||
</view>
|
||||
<view class="search">
|
||||
<view class="search-ipt">
|
||||
<uni-easyinput :clear="false" type="text" placeholder="请输入关键字" v-model="searchUserName" />
|
||||
</view>
|
||||
<view class="search-btn" @tap="onSearchUserInfo">搜索</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="user-info">
|
||||
<view class="user-title">
|
||||
<view style="width: 8%"></view>
|
||||
<view style="width: 12%">序号</view>
|
||||
<view style="width: 30%">姓名</view>
|
||||
<view style="width: 50%">岗位</view>
|
||||
</view>
|
||||
|
||||
<scroll-view :scroll-y="true" style="height: 33vh">
|
||||
<view class="user-content" v-for="(item, index) in auditingUserList" :key="item.id">
|
||||
<view style="width: 8%">
|
||||
<label>
|
||||
<checkbox
|
||||
:checked="item.isChecked"
|
||||
color="#fff"
|
||||
borderColor="#ccc"
|
||||
backgroundColor="#fff"
|
||||
activeBorderColor="#003778"
|
||||
activeBackgroundColor="#003778"
|
||||
style="transform: scale(0.7)"
|
||||
@tap="onCheckBoxChange(item)"
|
||||
/>
|
||||
</label>
|
||||
</view>
|
||||
<view style="width: 12%">{{ index + 1 }}</view>
|
||||
<view style="width: 30%">{{ item.name }}</view>
|
||||
<view style="width: 50%">{{ item.orgName }}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<view class="user-btn">
|
||||
<view class="btn-cancel" @tap="onHandlerCancel">取消</view>
|
||||
<view class="btn-submit" @tap="onHandlerSubmit">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
submitPlanProApi,
|
||||
deletePlanProApi,
|
||||
revokePlanProApi,
|
||||
getPlanDetailProApi,
|
||||
getRiskLevelListApi,
|
||||
getControlLevelListApi,
|
||||
updateInfPlanContentProApi,
|
||||
getAUditingUserInfoApi,
|
||||
setMonthPlanProApi
|
||||
} from '../../../api/workPlan/monthPlan'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
monthDetailsList: [],
|
||||
|
||||
editDisabled: false,
|
||||
state: '',
|
||||
month: '',
|
||||
activeFormPages: 0,
|
||||
params: {
|
||||
id: ''
|
||||
},
|
||||
btnList: [
|
||||
{ title: '修改', id: 1, type: 'compose', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
{ title: '删除', id: 2, type: 'trash', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
{
|
||||
title: '撤回',
|
||||
id: 3,
|
||||
type: 'redo-filled',
|
||||
isShow: ['1', '2', '4', '5', '6', '7', '8', '9'],
|
||||
isRoles: ['22', '23']
|
||||
},
|
||||
{ title: '提交', id: 4, type: 'upload', isShow: ['1', '2', '3'], isRoles: ['22', '23'] }
|
||||
],
|
||||
|
||||
productionFormLabel: [
|
||||
{ form_label: '作业内容', items_type: 'ipt', name: 'zynr', required: true },
|
||||
{ form_label: '实施单位', items_type: 'ipt', name: 'ssdw', required: true },
|
||||
{ form_label: '实施部门', items_type: 'ipt', name: 'ssbm', required: true },
|
||||
{ form_label: '任务来源', items_type: 'ipt', name: 'rwly', required: true },
|
||||
{
|
||||
form_label: '作业类型',
|
||||
items_type: 'sel',
|
||||
name: 'zylx',
|
||||
required: true,
|
||||
|
||||
options: [
|
||||
{ value: 0, text: '检修' },
|
||||
{ value: 1, text: '维护' }
|
||||
]
|
||||
},
|
||||
{ form_label: '计划开始时间', items_type: 'date', name: 'kssj', required: true },
|
||||
{ form_label: '计划结束时间', items_type: 'date', name: 'jssj', required: true },
|
||||
{
|
||||
form_label: '是否停电',
|
||||
items_type: 'sel',
|
||||
name: 'sftd',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 1, text: '是' },
|
||||
{ value: 0, text: '否' }
|
||||
]
|
||||
},
|
||||
{ form_label: '停电设备(作业场所)', items_type: 'ipt', name: 'tdsb', required: true },
|
||||
{ form_label: '作业监督人/联系电话', items_type: 'ipt', name: 'zyjdr', required: true },
|
||||
{ form_label: '作业负责人/联系电话', items_type: 'ipt', name: 'zyfzr', required: true },
|
||||
{
|
||||
form_label: '管控级别',
|
||||
items_type: 'sel',
|
||||
name: 'gkcj',
|
||||
required: true,
|
||||
options: []
|
||||
},
|
||||
{
|
||||
form_label: '风险等级',
|
||||
items_type: 'sel',
|
||||
name: 'fxdj',
|
||||
required: true,
|
||||
options: []
|
||||
},
|
||||
{
|
||||
form_label: '管控方式(根据作业内容在作业文件栏中选择"是"、"否")',
|
||||
items_type: 'sel',
|
||||
name: 'gkfs',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 0, text: '过程管控' },
|
||||
{ value: 1, text: '巡视管控' },
|
||||
{ value: 2, text: '驻点管控' },
|
||||
{ value: 2, text: '节点管控' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '施工方案',
|
||||
items_type: 'sel',
|
||||
name: 'sgfa',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 1, text: '是' },
|
||||
{ value: 0, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '作业指导书',
|
||||
items_type: 'sel',
|
||||
name: 'zyzds',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '作业表单',
|
||||
items_type: 'sel',
|
||||
name: 'zybd',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '工作票',
|
||||
items_type: 'sel',
|
||||
name: 'gzp',
|
||||
required: true,
|
||||
options: [
|
||||
{ value: 0, text: '是' },
|
||||
{ value: 1, text: '否' }
|
||||
]
|
||||
},
|
||||
{ form_label: '备注', items_type: 'ipt', name: 'bz' },
|
||||
{ form_label: '计划数量', items_type: 'ipt', name: 'planCount', required: true }
|
||||
],
|
||||
kjsAmount: 0,
|
||||
dfxAmount: 0,
|
||||
zfxAmount: 0,
|
||||
gfxAmount: 0,
|
||||
tfxAmount: 0,
|
||||
navHeight: 0,
|
||||
searchUserName: '',
|
||||
auditingUserList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
leftClick() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
async getRiskLevelListData() {
|
||||
const res = await getRiskLevelListApi()
|
||||
|
||||
try {
|
||||
this.productionFormLabel.forEach(e => {
|
||||
if (e.form_label === '风险等级') {
|
||||
e.options = res.map(e => {
|
||||
return {
|
||||
value: e.id,
|
||||
text: e.name
|
||||
}
|
||||
})
|
||||
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
},
|
||||
async getControlLevelListData() {
|
||||
const res = await getControlLevelListApi()
|
||||
// console.log('管控层级', res)
|
||||
try {
|
||||
this.productionFormLabel.forEach(e => {
|
||||
if (e.form_label === '管控级别') {
|
||||
e.options = res.map(e => {
|
||||
return {
|
||||
value: e.id,
|
||||
text: e.name
|
||||
}
|
||||
})
|
||||
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
},
|
||||
/* 获取详情 */
|
||||
async getPlanDetailData() {
|
||||
const res = await getPlanDetailProApi(this.params)
|
||||
console.log('详情数据res', res)
|
||||
|
||||
this.monthDetailsList = res.obj
|
||||
|
||||
if (this.monthDetailsList.length > 0) {
|
||||
this.kjsAmount = 0
|
||||
this.dfxAmount = 0
|
||||
this.zfxAmount = 0
|
||||
this.gfxAmount = 0
|
||||
this.tfxAmount = 0
|
||||
this.monthDetailsList.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
|
||||
})
|
||||
}
|
||||
},
|
||||
showModalFun(type) {
|
||||
let tipTitle = ''
|
||||
let API = null
|
||||
switch (type) {
|
||||
case 1:
|
||||
tipTitle = '修改'
|
||||
API = updateInfPlanContentProApi
|
||||
break
|
||||
case 2:
|
||||
tipTitle = '删除'
|
||||
API = deletePlanProApi
|
||||
break
|
||||
case 3:
|
||||
tipTitle = '撤销'
|
||||
API = revokePlanProApi
|
||||
break
|
||||
case 4:
|
||||
tipTitle = '提交'
|
||||
API = submitPlanProApi
|
||||
break
|
||||
}
|
||||
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: `确定要${tipTitle}吗?`,
|
||||
showCancel: true,
|
||||
cancelText: '取消',
|
||||
confirmText: '确定',
|
||||
confirmColor: '#00337a',
|
||||
cancelColor: '#00337a',
|
||||
success: async res => {
|
||||
if (res.confirm) {
|
||||
const params = {
|
||||
id: JSON.stringify(this.monthDetailsList)
|
||||
}
|
||||
if (type === 4 && this.roles != '22') {
|
||||
this.getAUditingUserInfoData()
|
||||
this.$refs.popupAuditing.open('center')
|
||||
} else {
|
||||
const result = await API(type === 1 ? params : this.params)
|
||||
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ title: `${tipTitle}成功!`, icon: 'none' })
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
success() {
|
||||
uni.$emit('update')
|
||||
}
|
||||
})
|
||||
}, 500)
|
||||
} else {
|
||||
uni.showToast({ title: `${tipTitle}失败!`, icon: 'none' })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onChangeFormPages(index) {
|
||||
this.activeFormPages = index
|
||||
},
|
||||
onSwiperChangeForms(e) {
|
||||
this.activeFormPages = e.detail.current
|
||||
},
|
||||
/* 复选框事件 */
|
||||
onCheckBoxChange(item) {
|
||||
console.log(item, '*****')
|
||||
item.isChecked = !item.isChecked
|
||||
},
|
||||
/* 获取审核人接口 */
|
||||
async getAUditingUserInfoData() {
|
||||
const res = await getAUditingUserInfoApi({ name: this.searchUserName })
|
||||
|
||||
this.auditingUserList = res.map(e => {
|
||||
this.$set(e, 'isChecked', false)
|
||||
return e
|
||||
})
|
||||
|
||||
console.log('this.auditingUserList已处理', this.auditingUserList)
|
||||
},
|
||||
/* 搜索审核人员 */
|
||||
onSearchUserInfo() {
|
||||
console.log(this.searchUserName, '99999999')
|
||||
this.getAUditingUserInfoData()
|
||||
},
|
||||
/* 取消 */
|
||||
onHandlerCancel() {
|
||||
this.$refs.popupAuditing.close()
|
||||
this.searchUserName = ''
|
||||
},
|
||||
/* 确定 */
|
||||
async onHandlerSubmit() {
|
||||
const ids = this.auditingUserList.map(e => {
|
||||
if (e.isChecked) return e.id
|
||||
})
|
||||
|
||||
let idsStr = ids.filter(e => e != null).join(',')
|
||||
|
||||
const params = {
|
||||
id: JSON.stringify(this.monthDetailsList),
|
||||
user: idsStr,
|
||||
state: '2'
|
||||
}
|
||||
|
||||
console.log('saveParams保存参数', params)
|
||||
|
||||
const result = await setMonthPlanProApi(params)
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ title: `提交成功!`, icon: 'none' })
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
success() {
|
||||
uni.$emit('update')
|
||||
}
|
||||
})
|
||||
}, 500)
|
||||
} else {
|
||||
uni.showToast({ title: `提交失败!`, icon: 'none' })
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onLoad(options) {
|
||||
this.state = options.state
|
||||
this.month = options.month
|
||||
console.log('options.state', options.state, options.month)
|
||||
Promise.all([this.getRiskLevelListData(), this.getControlLevelListData()]).then(res => {
|
||||
this.params.id = options.id
|
||||
this.getPlanDetailData()
|
||||
})
|
||||
},
|
||||
onReady() {
|
||||
let that = this
|
||||
uni.getSystemInfo({
|
||||
//调用uni-app接口获取屏幕高度
|
||||
success(res) {
|
||||
//成功回调函数
|
||||
that._data.pH = res.windowHeight
|
||||
let titleH = uni.createSelectorQuery().select('.scroll-content')
|
||||
let bottom = uni.createSelectorQuery().select('.revoke')
|
||||
bottom
|
||||
.boundingClientRect(res => {
|
||||
const bottomHeight = res.height
|
||||
|
||||
titleH
|
||||
.boundingClientRect(data => {
|
||||
let pH = that._data.pH
|
||||
that._data.navHeight = pH - data.top - bottomHeight - 48
|
||||
})
|
||||
.exec()
|
||||
})
|
||||
.exec()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.item-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10rpx 0;
|
||||
font-size: 22rpx;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
::v-deep .uni-input-input:disabled {
|
||||
-webkit-text-fill-color: #333;
|
||||
}
|
||||
|
||||
.revoke {
|
||||
width: 100%;
|
||||
padding: 12px 0;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
|
||||
view {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.header-left {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
white-space: nowrap;
|
||||
|
||||
text {
|
||||
width: 16.66%;
|
||||
padding: 12rpx 0;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.active-form-page {
|
||||
border-bottom: 1px solid #003778;
|
||||
color: #003778 !important;
|
||||
}
|
||||
.auditing-content {
|
||||
width: 95vw;
|
||||
height: 60vh;
|
||||
background-color: #eee;
|
||||
|
||||
.auditing-title {
|
||||
width: 100%;
|
||||
padding-bottom: 4rpx;
|
||||
margin-bottom: 16rpx;
|
||||
background-color: #fff;
|
||||
|
||||
.title {
|
||||
width: 93%;
|
||||
margin: 20rpx auto;
|
||||
padding: 13rpx 0;
|
||||
border: 1px solid #ccc;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
border-radius: 5rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 93%;
|
||||
margin: 20rpx auto;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.search-ipt {
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
width: 25%;
|
||||
height: 60rpx;
|
||||
text-align: center;
|
||||
line-height: 60rpx;
|
||||
color: #fff;
|
||||
border-radius: 12rpx;
|
||||
background-color: #003778;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.user-info {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
box-sizing: content-box;
|
||||
background-color: #fff;
|
||||
.user-title,
|
||||
.user-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8rpx;
|
||||
|
||||
view {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.user-content {
|
||||
padding: 15rpx 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.user-btn {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
padding-top: 28rpx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
view {
|
||||
width: 40%;
|
||||
height: 82rpx;
|
||||
text-align: center;
|
||||
line-height: 82rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
.btn-cancel {
|
||||
background-color: #ccc !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.btn-submit {
|
||||
color: #fff;
|
||||
background-color: #003778 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<!-- 现场监护 -->
|
||||
<view class="infrastructure">
|
||||
<h4>基建-计划审核</h4>
|
||||
<h4>基建-计划{{ title }}</h4>
|
||||
<view class="infrastructure-content">
|
||||
<view
|
||||
class="icon-box"
|
||||
|
|
@ -36,7 +36,7 @@ export default {
|
|||
},
|
||||
{
|
||||
icon_title: '月计划',
|
||||
url: '/pages/workPlan/monthPlan/index',
|
||||
url: '/pages/workPlan/monthPlan/inf-index',
|
||||
img_src: require('../../../../static/images/workPlan/month_plan.png'),
|
||||
isShow: ['22', '23', '24', '25']
|
||||
},
|
||||
|
|
@ -53,12 +53,24 @@ export default {
|
|||
isShow: ['23', '24', '25']
|
||||
}
|
||||
],
|
||||
roles: uni.getStorageSync('wkRole')
|
||||
roles: uni.getStorageSync('wkRole'),
|
||||
title: '填报'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpenPlanPage(url) {
|
||||
uni.navigateTo({ url: `${url}?type=1` })
|
||||
uni.navigateTo({ url: `${url}` })
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
if (this.roles === '22') {
|
||||
this.title = '填报'
|
||||
}
|
||||
if (this.roles === '23') {
|
||||
this.title = '上报'
|
||||
}
|
||||
if (this.roles === '24' || this.roles === '25') {
|
||||
this.title = '审核'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<!-- 现场监护 -->
|
||||
<view class="production">
|
||||
<h4>生产-计划审核</h4>
|
||||
<h4>生产-计划{{ title }}</h4>
|
||||
<view class="production-content">
|
||||
<view
|
||||
class="icon-box"
|
||||
|
|
@ -36,7 +36,7 @@ export default {
|
|||
},
|
||||
{
|
||||
icon_title: '月计划',
|
||||
url: '/pages/workPlan/monthPlan/index',
|
||||
url: '/pages/workPlan/monthPlan/pro-index',
|
||||
img_src: require('../../../../static/images/workPlan/month_plan.png'),
|
||||
isShow: ['22', '23', '24', '25']
|
||||
},
|
||||
|
|
@ -53,13 +53,25 @@ export default {
|
|||
isShow: ['23', '24', '25']
|
||||
}
|
||||
],
|
||||
roles: uni.getStorageSync('wkRole')
|
||||
roles: uni.getStorageSync('wkRole'),
|
||||
title: '填报'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpenPlanPage(url) {
|
||||
uni.navigateTo({ url: `${url}?type=2` })
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
if (this.roles === '22') {
|
||||
this.title = '填报'
|
||||
}
|
||||
if (this.roles === '23') {
|
||||
this.title = '上报'
|
||||
}
|
||||
if (this.roles === '24' || this.roles === '25') {
|
||||
this.title = '审核'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import CustodyModel from './components/custody-model'
|
|||
import InfrastructureModel from './components/infrastructure-model'
|
||||
import ProductionModel from './components/production-model'
|
||||
|
||||
import { getProjectListApi } from '../../../api/workPlan/monthPlan'
|
||||
// import { getProjectListApi } from '../../../api/workPlan/monthPlan'
|
||||
export default {
|
||||
components: {
|
||||
CustodyModel,
|
||||
|
|
@ -46,7 +46,7 @@ export default {
|
|||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getProjectListData()
|
||||
// this.getProjectListData()
|
||||
},
|
||||
methods: {
|
||||
leftClick() {
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
|
@ -8,7 +8,7 @@ const token = uni.getStorageSync('wkToken') || null
|
|||
|
||||
let timeout = 60000
|
||||
const baseUrl = config.workPlanNewYnUrl
|
||||
console.log('baseUrl-请求', baseUrl)
|
||||
console.log('token', token)
|
||||
|
||||
const request = config => {
|
||||
// 是否需要设置 token
|
||||
|
|
|
|||