1、分公司隐患考评的考评功能
parent
bf3a2e525c
commit
568cce01f0
|
@ -138,4 +138,9 @@ export const setTaskSign = (params) => post("/app/Task/sign", params) //审批
|
|||
export const setSecurityMeasuresSave = (params) => post("/app/Task/setQues", params) //安全措施提交
|
||||
export const setOtherSecurityMeasuresSave = (params) => post("/app/Task/setOtherQues", params) //其它安全措施提交
|
||||
export const getHistoricalApprovalRecords = (params) => post("/app/Task/getHis", params); // 历史审批记录
|
||||
export const getHiddenDangerReview = (params) => post("/app/hidden/evaluation/dangerReviewList", params); // 分公司隐患考评
|
||||
export const getEvaluationList = (params) => post("/app/hidden/evaluation/evaluationList", params); // 分公司隐患考评
|
||||
export const goEvaluationEdit = (params) => post("/app/hidden/evaluation/goEvaluationEdit", params); // 分公司隐患考评编辑
|
||||
export const evaluationAddRecord = (params) => post("/app/hidden/evaluation/evaluationAddRecord", params); // 分公司隐患考评编辑
|
||||
export const findHiddenDetailMessage = (params) => post("/app/hidden/evaluation/findHiddenDetailMessage", params); // 此处使用修改隐患接口来查询隐患的详细信息
|
||||
// 结束
|
||||
|
|
12
pages.json
12
pages.json
|
@ -754,6 +754,18 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "定位"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/hidden-danger-review/index/index",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "分公司隐患考评"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/hidden-danger-review/evaluation/list",
|
||||
"style" : {
|
||||
"navigationBarTitleText" : "分公司隐患考评"
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
|
|
@ -0,0 +1,899 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="flex-between card custom-padding">
|
||||
<text>考评状态: </text>
|
||||
<text @click="showTree('evaluationStateTree')">{{ searchForm.stateName || '请选择' }}</text>
|
||||
<tki-tree ref="evaluationStateTree" :range="evaluationStateTreeList" rangeKey="name" @confirm="confirmTree($event,'evaluationStateTreeList')"/>
|
||||
</view>
|
||||
<view class="flex-between card custom-padding">
|
||||
<text>本人是否考评: </text>
|
||||
<text @click="showTree('ifIAmEvaluatedTree')">{{ searchForm.userIsName || '请选择' }}</text>
|
||||
<tki-tree ref="ifIAmEvaluatedTree" :range="ifIAmEvaluatedTreeList" rangeKey="name" @confirm="confirmTree($event,'ifIAmEvaluatedTreeList')"/>
|
||||
</view>
|
||||
<view class="flex-between search card">
|
||||
<u--input
|
||||
class="ml-10"
|
||||
prefixIcon="search"
|
||||
placeholder="请输入隐患发现人"
|
||||
border="surround"
|
||||
v-model="searchForm.KEYWORDS"
|
||||
clearable
|
||||
shape="circle"
|
||||
></u--input>
|
||||
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
|
||||
</view>
|
||||
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
|
||||
<u-list-item v-for="(item, index) in list" :key="index">
|
||||
<view>
|
||||
<view class="flex-between mt-10 main-title">
|
||||
<text>
|
||||
隐患来源:
|
||||
<template v-if="item.SOURCE == 1">隐患快报</template>
|
||||
<template v-if="item.SOURCE == 2 || item.SOURCE == 3">清单排查</template>
|
||||
<template v-if="item.SOURCE == 4">安全环保检查(监管端)</template>
|
||||
<template v-if="item.SOURCE == 5">安全环保检查(企业端)</template>
|
||||
<template v-if="item.SOURCE == 6">消防检查</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>隐患描述:{{ item.HIDDENDESCR }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>隐患发现人:{{ item.CREATOR_NAME }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>隐患状态:已验收</text>
|
||||
<text>隐患发现时间:{{ item.DISCOVERYTIME }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>已考评组成员:{{ item.CHECK_USER }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>待考评组成员:{{ item.UN_CHECK_USER }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>
|
||||
考评结果:
|
||||
<template v-if="item.CHECK_COUNT !== 5">考核未完成</template>
|
||||
<template v-else>
|
||||
<template v-if="item.CHECK_COUNT > 2">考核合格</template>
|
||||
<template v-else>考核不合格</template>
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-end mt-10">
|
||||
<u-button type="default" text="查看隐患详情" size="mini" class="bth-mini btn-hidden-detail-bg margin-value" @click="fnViewHidden(item.HIDDEN_ID)"></u-button>
|
||||
<u-button type="default" text="考评详情" size="mini" class="bth-mini btn-eval-detail-bg margin-value" @click="fnEvaluation(item.HIDDEN_ID,item.SOURCE, item.CREATOR,'view')"></u-button>
|
||||
<u-button v-if="isEvaluationShowButton(item.UN_CHECK_USER_ID)" type="default" text="考评" size="mini" class="bth-mini btn-eval-bg margin-value" @click="fnEvaluation(item.HIDDEN_ID, item.SOURCE, item.CREATOR,'edit')"></u-button>
|
||||
<u-button v-if="USER_ID=='1'" type="default" text="重置考评" size="mini" class="bth-mini btn-reset-bg" @click="fnDelvaluation(item)"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</u-list-item>
|
||||
</u-list>
|
||||
<empty v-else></empty>
|
||||
<u-popup :show="evaluationAndDetailShow" @close="evaluationAndDetailShow = false" mode="right" :closeOnClickOverlay="false" :customStyle="{width:'85vw',overflowY:'auto'}">
|
||||
<view class="card">
|
||||
<u-list @scrolltolower="scrolltolower" v-if="evaluationDialog.list.length > 0" height="auto">
|
||||
<u-list-item v-for="(value, index) in evaluationDialog.list" :key="index">
|
||||
<view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>考评人员:{{ value.USER_NAME }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>考评时间:{{ value.CREATTIME ? value.CREATTIME : "暂未考评" }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>
|
||||
是否符合:
|
||||
<template v-if="value.RESULT === 1">符合</template>
|
||||
<template v-if="value.RESULT === 2">不符合</template>
|
||||
<template v-if="!value.RESULT">未考评</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle" v-if="value.RESULT === 2" :key="value.CONFIG_USER_ID">
|
||||
<text>不符合原因:{{ value.DESCR }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</u-list-item>
|
||||
</u-list>
|
||||
<empty v-else></empty>
|
||||
<u-cell-group :border="false">
|
||||
<u-cell v-show="addShowOrHidden" class="flex-none">
|
||||
<view slot="title" class="title">考评人员:</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u--input v-model="evaluationDialog.form.USER_NAME" disabled="true"></u--input>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell v-show="addShowOrHidden">
|
||||
<view slot="title" class="title required">是否符合:</view>
|
||||
<view slot="value">
|
||||
<text @click="showTree('tree')">{{ evaluationDialog.form.NAME || '请选择' }}</text>
|
||||
<tki-tree ref="tree" :range="hiddenTypeTreeList" rangeKey="name" @confirm="confirmTree($event,'isIfTrueTreeList')"/>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell v-show="isdescr" class="flex-none">
|
||||
<view slot="title" class="title required">不符合原因:</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u--textarea v-model="evaluationDialog.form.DESCR" placeholder="请输入不符合原因"></u--textarea>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none" :border="false">
|
||||
<view slot="value" class="flex-between">
|
||||
<u-button type="info" text="关闭" class="bth" @click="evaluationAndDetailClose"></u-button>
|
||||
<u-button v-show="addShowOrHidden" type="primary" text="保存" class="bth ml-10" @click="evaluationAndDetailSave"></u-button>
|
||||
</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-popup :show="hiddenDetailShow" @close="hiddenDetailShow = false" mode="right" :closeOnClickOverlay="false" :customStyle="{width:'85vw',overflowY:'auto'}">
|
||||
<view class="card">
|
||||
<view class="view-title">
|
||||
<u--text text="隐患信息" bold></u--text>
|
||||
</view>
|
||||
<u-cell-group :border="false">
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患来源</view>
|
||||
<view slot="value">
|
||||
<template v-if="pd.SOURCE=='1'">
|
||||
隐患快报
|
||||
</template>
|
||||
<template v-else-if="pd.SOURCE=='2'">
|
||||
清单排查
|
||||
</template>
|
||||
<template v-else-if="pd.SOURCE=='3'">
|
||||
清单排查
|
||||
</template>
|
||||
<template v-else-if="pd.SOURCE=='4'">
|
||||
安全环保检查(监管端)
|
||||
</template>
|
||||
<template v-else-if="pd.SOURCE=='5'">
|
||||
安全环保检查(企业端)
|
||||
</template>
|
||||
<template v-else-if="pd.SOURCE=='6'">
|
||||
消防检查
|
||||
</template>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">隐患描述</view>
|
||||
<view slot="value" class="mt-10 u-line-5">{{ pd.HIDDENDESCR }}</view>
|
||||
</u-cell>
|
||||
<template v-if="pd.SOURCE=='2'">
|
||||
<u-cell>
|
||||
<view slot="title" class="title">风险点(单元)</view>
|
||||
<view slot="value">{{ pd.RISK_UNIT }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">辨识部位</view>
|
||||
<view slot="value">{{ pd.IDENTIFICATION }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">存在风险</view>
|
||||
<view slot="value">{{ pd.RISK_DESCR }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">风险分级</view>
|
||||
<view slot="value">{{ pd.LEVEL }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">检查内容</view>
|
||||
<view slot="value">{{ pd.CHECK_CONTENT }}</view>
|
||||
</u-cell>
|
||||
</template>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患级别</view>
|
||||
<view slot="value">{{ pd.editLevelName || pd.HIDDENLEVELNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患类型</view>
|
||||
<view slot="value">{{ pd.HIDDENTYPENAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患状态</view>
|
||||
<view slot="value">
|
||||
<template v-if="pd.STATE=='1'">
|
||||
未整改
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='2'">
|
||||
已整改
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='3'">
|
||||
已整改
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='4'">
|
||||
已验收
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='5'">
|
||||
忽略隐患
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='6'">
|
||||
重大隐患
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='7'">
|
||||
待处理的特殊隐患
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='8'">
|
||||
已处理的特殊隐患
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='-1'">
|
||||
已超期
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='-2'">
|
||||
待确认
|
||||
</template>
|
||||
<template v-else-if="pd.STATE=='10'">
|
||||
验收打回
|
||||
</template>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患部位</view>
|
||||
<view slot="value">{{ pd.hregionName?pd.hregionName:pd.HIDDENPART }}</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">隐患上报位置</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<view>经度:{{ pd.LONGITUDE }}</view>
|
||||
<view>纬度:{{ pd.LATITUDE }}</view>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">隐患位置描述</view>
|
||||
<view slot="value" class="mt-10">{{ pd.POSITIONDESC }}</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">隐患图片</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in hImgs" :key="item.id">
|
||||
<u--image :showLoading="true" :src="item.src" width="80px" height="80px"
|
||||
@click="previewImage(hImgs, item)"></u--image>
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患发现人</view>
|
||||
<view slot="value" class="mt-10">{{ pd.CREATORNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患发现时间</view>
|
||||
<view slot="value" class="mt-10">{{ pd.DISCOVERYTIME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改类型</view>
|
||||
<view slot="value">
|
||||
<template v-if="pd.RECTIFICATIONTYPE=='1'">
|
||||
立即整改
|
||||
</template>
|
||||
<template v-else-if="pd.RECTIFICATIONTYPE=='2'">
|
||||
限期整改
|
||||
</template>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改负责部门</view>
|
||||
<view slot="value" class="mt-10">{{ pd.oldDeptName ?pd.oldDeptName :pd.RECTIFICATIONDEPTNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改负责人</view>
|
||||
<view slot="value" class="mt-10">{{ pd.oldUserName || pd.RECTIFICATIONORNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">是否相关方</view>
|
||||
<view slot="value" class="mt-10">{{ pd.ISRELEVANT=='1'?'是':'否' }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="videoUrl">
|
||||
<view slot="title" class="title">隐患视频</view>
|
||||
<view slot="value">
|
||||
<u-icon name="play-circle-fill" size="30" @click="modalShow = true"></u-icon>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
|
||||
<view>
|
||||
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
|
||||
</view>
|
||||
</u-modal>
|
||||
<u-cell v-if="pd.RECTIFICATIONTYPE=='2'">
|
||||
<view slot="title" class="title">整改期限</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONDEADLINE }}</view>
|
||||
</u-cell>
|
||||
<template v-if="repulsecause">
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">打回原因</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in repulsecause" :key="item.USER_ID">
|
||||
{{ item.REPULSE_CAUSE }}
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">打回时间</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in repulsecause" :key="item.USER_ID">
|
||||
{{ item.OPERATTIME }}
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
</template>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
<view class="card">
|
||||
<view class="view-title">
|
||||
<u--text text="确认信息" bold></u--text>
|
||||
</view>
|
||||
<u-cell-group :border="false">
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患级别</view>
|
||||
<view slot="value">{{ pd.HIDDENLEVELNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改负责人</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONORNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改完成期限</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONDEADLINE }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">隐患确认人</view>
|
||||
<view slot="value">{{ pd.conUserName }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="pd.STATE != '-2'">
|
||||
<view slot="title" class="title">隐患确认时间</view>
|
||||
<view slot="value">{{ pd.CONFIRM_TIME }}</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
|
||||
<view v-show="pd.STATE>=2 && pd.STATE <16" class="card">
|
||||
<view class="view-title">
|
||||
<u--text text="整改信息" bold></u--text>
|
||||
</view>
|
||||
<u-cell-group :border="false">
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">整改描述</view>
|
||||
<view slot="value" class="mt-10 u-line-5">{{ pd.RECTIFYDESCR }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改部门</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONDEPTNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改人</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONORNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改时间</view>
|
||||
<view slot="value">{{ pd.RECTIFICATIONTIME }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="pd.STATE != '-2'">
|
||||
<view slot="title" class="title">投入资金</view>
|
||||
<view slot="value">{{ pd.INVESTMENT_FUNDS }}元</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">整改后图片</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in rImgs" :key="index">
|
||||
<u--image :showLoading="true" :src="item" width="80px" height="80px"
|
||||
@click="previewImage(rImgs, item)"></u--image>
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">整改方案</view>
|
||||
<view slot="value">
|
||||
<template v-if="pd.HAVESCHEME==0">
|
||||
无
|
||||
</template>
|
||||
<template v-else-if="pd.HAVESCHEME==1">
|
||||
有
|
||||
</template>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">排查日期</view>
|
||||
<view slot="value">{{ hs.SCREENINGDATE }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">治理标准要求</view>
|
||||
<view slot="value">{{ hs.GOVERNSTANDARDS }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">治理方法</view>
|
||||
<view slot="value">{{ hs.GOVERNMETHOD }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">经费和物资的落实</view>
|
||||
<view slot="value">{{ hs.EXPENDITURE }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">负责治理人员</view>
|
||||
<view slot="value">{{ hs.PRINCIPAL }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">工时安排</view>
|
||||
<view slot="value">{{ hs.PROGRAMMING }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">时限要求</view>
|
||||
<view slot="value">{{ hs.TIMELIMITFOR }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">工作要求</view>
|
||||
<view slot="value">{{ hs.JOBREQUIREMENT }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1">
|
||||
<view slot="title" class="title">其他事项</view>
|
||||
<view slot="value">{{ hs.OTHERBUSINESS }}</view>
|
||||
</u-cell>
|
||||
<u-cell v-if="hs && pd.HAVESCHEME==1" class="flex-none">
|
||||
<view slot="title" class="title">方案图片</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in sImgs" :key="index">
|
||||
<u--image :showLoading="true" :src="item" width="80px" height="80px"
|
||||
@click="previewImage(sImgs, item)"></u--image>
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
<view v-show="pd.STATE ==4 || pd.RECTIFICATIONTYPE=='1'" class="card">
|
||||
<view class="view-title">
|
||||
<u--text text="验收信息" bold></u--text>
|
||||
</view>
|
||||
<template v-if="pd.RECTIFICATIONTYPE!='1'">
|
||||
<u-cell-group v-for="(data) in checkList" :key="data.value" :border="false">
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">验收描述</view>
|
||||
<view slot="value" class="mt-10 u-line-5">{{ data.CHECKDESCR }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">是否合格</view>
|
||||
<view slot="value">
|
||||
<template v-if="data.STATUS=='1'">
|
||||
是
|
||||
</template>
|
||||
<template v-else-if="data.STATUS=='0'">
|
||||
否
|
||||
</template>
|
||||
</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">验收部门</view>
|
||||
<view slot="value">{{ data.CHECKDEPTNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">验收人</view>
|
||||
<view slot="value">{{ data.CHECKORNAME }}</view>
|
||||
</u-cell>
|
||||
<u-cell>
|
||||
<view slot="title" class="title">验收时间</view>
|
||||
<view slot="value">{{ data.CHECK_TIME }}</view>
|
||||
</u-cell>
|
||||
<u-cell class="flex-none">
|
||||
<view slot="title" class="title">验收图片</view>
|
||||
<view slot="value" class="mt-10">
|
||||
<u-row>
|
||||
<u-col span="3" v-for="(item,index) in cImgs" :key="index">
|
||||
<u--image :showLoading="true" :src="item" width="80px" height="80px"
|
||||
@click="previewImage(cImgs, item)"></u--image>
|
||||
</u-col>
|
||||
</u-row>
|
||||
</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</template>
|
||||
<template v-if="pd.RECTIFICATIONTYPE=='1'">
|
||||
<u-cell-group :border="false">
|
||||
<u-cell>
|
||||
<view slot="title" class="title">验收人</view>
|
||||
<view slot="value">{{ pd.CHECKORNAME }}</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</template>
|
||||
</view>
|
||||
<view class="card">
|
||||
<u-cell-group :border="false">
|
||||
<u-cell class="flex-none" :border="false">
|
||||
<view slot="value" class="flex-between">
|
||||
<u-button type="info" text="关闭" class="bth" @click="hiddenDetailPopClose"></u-button>
|
||||
</view>
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {getEvaluationList} from "../../../api";
|
||||
import {goEvaluationEdit} from "../../../api";
|
||||
import {evaluationAddRecord} from "../../../api";
|
||||
import {findHiddenDetailMessage} from "../../../api";
|
||||
// import UviewUi from "../../../uni_modules/uview-ui/components/uview-ui/uview-ui.vue";
|
||||
// import UText from "../../../uni_modules/uview-ui/components/u-text/u-text.vue";
|
||||
export default {
|
||||
// components: {UText, UviewUi},
|
||||
data() {
|
||||
return {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
totalPage: 0,
|
||||
list: [],
|
||||
HIDDENTYPE: '',
|
||||
hiddendescr: '',
|
||||
DEPARTMENT_ID: '',
|
||||
SOURCE: '',
|
||||
EVALUATIONCONFIG_ID: '',
|
||||
CORPINFO_ID: '',
|
||||
TYPE: '',
|
||||
USER_ID: '',
|
||||
// 下面是考评弹窗使用到的相关属性
|
||||
evaluationAndDetailShow: false,
|
||||
evaluationDialog: { // 考评弹窗
|
||||
visible: false,
|
||||
type: '',
|
||||
HIDDEN_ID: '',
|
||||
SOURCE: '',
|
||||
CREATOR: '',
|
||||
form: {
|
||||
EVALUATIONCONFIGINFO_ID: '',
|
||||
USER_NAME: '',
|
||||
DESCR: '',
|
||||
RESULT: 0,
|
||||
NAME: ''
|
||||
},
|
||||
list: []
|
||||
},
|
||||
hiddenTypeTreeList: [
|
||||
{
|
||||
id: 1,
|
||||
name: '符合'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '不符合'
|
||||
}
|
||||
],
|
||||
evaluationStateTreeList: [
|
||||
{
|
||||
id: 0,
|
||||
name: '请选择'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: '是'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '否'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '考评合格'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '考评不合格'
|
||||
}
|
||||
],
|
||||
ifIAmEvaluatedTreeList: [
|
||||
{
|
||||
id: 0,
|
||||
name: '请选择'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: '是'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '否'
|
||||
}
|
||||
],
|
||||
selectedTreeValue: '',
|
||||
isdescr: false, // 刚一开始不显示不符合原因的输入框
|
||||
addShowOrHidden: true, // 添加考评的表单默认为显示
|
||||
// 下面是隐患详情弹窗使用到的相关数据
|
||||
hiddenDetailShow: false, // 隐患详情的弹窗默认不显示
|
||||
pd: {},
|
||||
videoUrl: '', // 视频地址
|
||||
hImgs: [],
|
||||
repulsecause: [],
|
||||
rImgs: [],
|
||||
cImgs: [],
|
||||
sImgs: [],
|
||||
hs: {},
|
||||
checkList: [],
|
||||
modalShow: false, //是否播放视频
|
||||
searchForm: {
|
||||
KEYWORDS: '',
|
||||
STATE: '',
|
||||
stateName: '',
|
||||
hiddendescr: '',
|
||||
userIs: '',
|
||||
userIsName: ''
|
||||
},
|
||||
}
|
||||
},
|
||||
onLoad(event) {
|
||||
this.CORPINFO_ID = event.CORPINFO_ID
|
||||
this.EVALUATIONCONFIG_ID = event.EVALUATIONCONFIG_ID
|
||||
this.TYPE = event.TYPE
|
||||
this.resetList()
|
||||
},
|
||||
computed: {
|
||||
userInfo() {
|
||||
this.USER_ID = this.$store.getters.getUserInfo.USER_ID
|
||||
return this.$store.getters.getUserInfo
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getData(){
|
||||
let resData = await getEvaluationList({
|
||||
...this.searchForm,
|
||||
showCount: this.pageSize,
|
||||
currentPage: this.currentPage,
|
||||
USER_ID: this.userInfo.USER_ID, // 获取当前用户的ID
|
||||
HIDDENTYPE: this.HIDDENTYPE,
|
||||
hiddendescr: this.hiddendescr,
|
||||
DEPARTMENT_ID: this.DEPARTMENT_ID,
|
||||
SOURCE: this.SOURCE,
|
||||
EVALUATIONCONFIG_ID: this.EVALUATIONCONFIG_ID,
|
||||
CORPINFO_ID: this.CORPINFO_ID,
|
||||
TYPE: this.TYPE
|
||||
});
|
||||
this.list = [...this.list,...resData.varList];
|
||||
this.totalPage = resData.page.totalPage;
|
||||
},
|
||||
resetList() {
|
||||
this.pageSize= 10
|
||||
this.currentPage= 1
|
||||
this.list = []
|
||||
console.info(this.searchForm)
|
||||
this.getData()
|
||||
},
|
||||
scrolltolower() {
|
||||
this.currentPage++;
|
||||
if(this.totalPage >= this.currentPage) this.getData();
|
||||
},
|
||||
isEvaluationShowButton(UN_CHECK_USER_ID) {
|
||||
if (!UN_CHECK_USER_ID) return false
|
||||
else {
|
||||
return UN_CHECK_USER_ID.split(',').indexOf(this.USER_ID) !== -1
|
||||
}
|
||||
},
|
||||
fnEvaluationDialogChangeShow() {
|
||||
this.evaluationDialog.visible = !this.evaluationDialog.visible
|
||||
},
|
||||
fnEvaluation(HIDDEN_ID, SOURCE, CREATOR, type) { // 考评
|
||||
this.evaluationDialog.HIDDEN_ID = HIDDEN_ID
|
||||
this.evaluationDialog.SOURCE = SOURCE
|
||||
this.evaluationDialog.CREATOR = CREATOR
|
||||
this.evaluationDialog.type = type
|
||||
this.evaluationDialog.list = []
|
||||
this.fnEvaluationDialogChangeShow()
|
||||
this.isdescr = false;
|
||||
if(type === 'view'){
|
||||
this.addShowOrHidden = false;
|
||||
}else {
|
||||
this.addShowOrHidden = true;
|
||||
}
|
||||
this.getDialogData(HIDDEN_ID, type);
|
||||
this.evaluationAndDetailShow = true;
|
||||
},
|
||||
async getDialogData(HIDDEN_ID, type){
|
||||
let resultData = await goEvaluationEdit({
|
||||
HIDDEN_ID,
|
||||
EVALUATIONCONFIG_ID: this.EVALUATIONCONFIG_ID
|
||||
});
|
||||
const list = []
|
||||
for (let i = 0; i < resultData.varList.length; i++) {
|
||||
if (type === 'edit') {
|
||||
if (resultData.varList[i].CONFIG_USER_ID !== this.USER_ID) { //非当前登陆用户
|
||||
list.push(resultData.varList[i])
|
||||
} else { // 当前登陆用户
|
||||
this.evaluationDialog.form.EVALUATIONCONFIGINFO_ID = resultData.varList[i].CONFIG_EVALUATIONCONFIGINFO_ID
|
||||
this.evaluationDialog.form.USER_NAME = resultData.varList[i].USER_NAME
|
||||
this.evaluationDialog.form.DESCR = ''
|
||||
this.evaluationDialog.form.RESULT = 0
|
||||
}
|
||||
} else {
|
||||
list.push(resultData.varList[i])
|
||||
}
|
||||
}
|
||||
this.evaluationDialog.list = list
|
||||
},
|
||||
evaluationAndDetailClose() {
|
||||
this.evaluationAndDetailShow = false
|
||||
},
|
||||
evaluationAndDetailSave() {
|
||||
if(!this.evaluationDialog.form.NAME){
|
||||
uni.showToast({
|
||||
title: '请先选择是否符合',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
return;
|
||||
}
|
||||
if(this.isdescr){
|
||||
if(!this.evaluationDialog.form.DESCR){
|
||||
uni.showToast({
|
||||
title: '请输入不符合原因',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.saveDialogData()
|
||||
this.evaluationAndDetailClose()
|
||||
},
|
||||
async saveDialogData(){
|
||||
let resultData = await evaluationAddRecord({
|
||||
CORPINFO_ID: this.CORPINFO_ID,
|
||||
HIDDENTYPE: this.TYPE,
|
||||
EVALUATIONCONFIG_ID: this.EVALUATIONCONFIG_ID,
|
||||
SOURCE: this.evaluationDialog.SOURCE,
|
||||
USER_ID: this.evaluationDialog.CREATOR,
|
||||
LOGIN_USER_ID: this.userInfo.USER_ID,
|
||||
LOGIN_USER_NAME: this.userInfo.USERNAME,
|
||||
HIDDEN_ID: this.evaluationDialog.HIDDEN_ID,
|
||||
...this.evaluationDialog.form
|
||||
});
|
||||
if (resultData.result === 'success') {
|
||||
uni.showToast({
|
||||
title: '考评成功',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
this.resetList()
|
||||
}else {
|
||||
uni.showToast({
|
||||
title: '考评失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
},
|
||||
showTree(ref, type) {
|
||||
if (this.disabled) return;
|
||||
if (type === 'arr') this.$refs[ref][0]._show();
|
||||
else this.$refs[ref]._show()
|
||||
},
|
||||
confirmTree(e, list, index) {
|
||||
if (list === 'isIfTrueTreeList') {
|
||||
for (let i = 0; i < e.length; i++) {
|
||||
this.evaluationDialog.form.RESULT = e[i].id
|
||||
this.evaluationDialog.form.NAME = e[i].name
|
||||
if (e[i].name === '不符合'){
|
||||
this.isdescr = true
|
||||
} else {
|
||||
this.isdescr = false
|
||||
}
|
||||
}
|
||||
} else if (list === 'evaluationStateTreeList') {
|
||||
for (let i = 0; i < e.length; i++) {
|
||||
if (e[i].name === '请选择' && e[i].id === 0){
|
||||
this.searchForm.STATE = ''
|
||||
this.searchForm.stateName = ''
|
||||
} else {
|
||||
this.searchForm.STATE = e[i].id
|
||||
this.searchForm.stateName = e[i].name
|
||||
}
|
||||
}
|
||||
} else if (list === 'ifIAmEvaluatedTreeList') {
|
||||
for (let i = 0; i < e.length; i++) {
|
||||
if (e[i].name === '请选择' && e[i].id === 0) {
|
||||
this.searchForm.userIs = ''
|
||||
this.searchForm.userIsName = ''
|
||||
} else {
|
||||
this.searchForm.userIs = e[i].id
|
||||
this.searchForm.userIsName = e[i].name
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
fnViewHidden(HIDDEN_ID) {
|
||||
this.hiddenDetailShow = true
|
||||
this.HIDDEN_ID = HIDDEN_ID
|
||||
this.getHiddenDetailData()
|
||||
},
|
||||
hiddenDetailPopClose() {
|
||||
this.hiddenDetailShow = false
|
||||
},
|
||||
async getHiddenDetailData() {
|
||||
let hiddenData = await findHiddenDetailMessage({HIDDEN_ID: this.HIDDEN_ID});
|
||||
this.pd = hiddenData.pd
|
||||
this.hs = hiddenData.hs
|
||||
this.checkList = hiddenData.checkList
|
||||
this.repulsecause = hiddenData.repulsecause
|
||||
if (hiddenData.hiddenVideo.length > 0){
|
||||
this.videoUrl = this.$store.state.filePath + hiddenData.hiddenVideo[0].FILEPATH
|
||||
} else {
|
||||
this.videoUrl = ''
|
||||
}
|
||||
hiddenData.hiddenExa && hiddenData.hiddenExa.forEach(item => {
|
||||
if (item.TYPE == 4) {
|
||||
this.pd.oldUserName = item.editUserName
|
||||
this.pd.oldDeptName = item.editDeptName
|
||||
this.pd.oldLevelName = item.editLevelName
|
||||
this.pd.oldRectificationDeadline = item.editRectificationDeadline
|
||||
}
|
||||
})
|
||||
this.clearImages()
|
||||
// 隐患图片
|
||||
if(hiddenData.hImgs.length > 0){
|
||||
for (let i = 0; i < hiddenData.hImgs.length; i++) {
|
||||
const filePath = this.$store.state.filePath + hiddenData.hImgs[i].FILEPATH;
|
||||
const id = hiddenData.hImgs[i].IMGFILES_ID;
|
||||
this.hImgs.push({ src: filePath, id: id });
|
||||
}
|
||||
}
|
||||
// 验收图片
|
||||
if(hiddenData.cImgs.length > 0){
|
||||
for (let i = 0; i < hiddenData.cImgs.length; i++) {
|
||||
this.cImgs.push(this.$store.state.filePath + hiddenData.cImgs[i].FILEPATH)
|
||||
}
|
||||
}
|
||||
// 整改后图片
|
||||
if(hiddenData.rImgs.length > 0){
|
||||
for (let i = 0; i < hiddenData.rImgs.length; i++) {
|
||||
this.rImgs.push(this.$store.state.filePath + hiddenData.rImgs[i].FILEPATH)
|
||||
}
|
||||
}
|
||||
// 方案图片
|
||||
if(hiddenData.sImgs.length > 0){
|
||||
for (let i = 0; i < hiddenData.sImgs.length; i++) {
|
||||
this.sImgs.push(this.$store.state.filePath + hiddenData.sImgs[i].FILEPATH)
|
||||
}
|
||||
}
|
||||
},
|
||||
previewImage(list, current) {
|
||||
uni.previewImage({
|
||||
urls: list,
|
||||
current
|
||||
});
|
||||
},
|
||||
clearImages() {
|
||||
this.hImgs = []
|
||||
this.cImgs = []
|
||||
this.rImgs = []
|
||||
this.sImgs = []
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.btn-hidden-detail-bg {
|
||||
background-color: #9fa7bc;
|
||||
color: white;
|
||||
}
|
||||
.btn-eval-detail-bg {
|
||||
background-color: #007aff;
|
||||
color: white;
|
||||
}
|
||||
.btn-eval-bg {
|
||||
background-color: #07bb07;
|
||||
color: white;
|
||||
}
|
||||
.btn-reset-bg {
|
||||
background-color: #777aff;
|
||||
color: white;
|
||||
}
|
||||
.margin-value {
|
||||
margin-right: 5rpx;
|
||||
}
|
||||
.custom-padding {
|
||||
padding-left: 20px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,133 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="search card">
|
||||
<u--input
|
||||
prefixIcon="search"
|
||||
placeholder="请输入公司名称"
|
||||
border="surround"
|
||||
v-model="KEYWORDS"
|
||||
clearable
|
||||
shape="circle"
|
||||
></u--input>
|
||||
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
|
||||
</view>
|
||||
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
|
||||
<u-list-item v-for="(item, index) in list" :key="index">
|
||||
<view>
|
||||
<view class="flex-between main-title">
|
||||
<text>{{ item.CORP_NAME }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>
|
||||
隐患考评组类型:
|
||||
<template v-if="item.TYPE===1">安全类</template>
|
||||
<template v-if="item.TYPE===2">环保类</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>安全环保奖惩监管端:
|
||||
<template>
|
||||
{{ item.checked_count3 }} / {{ item.count3 }}
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>安全环保奖惩企业端:
|
||||
<template>
|
||||
{{ item.checked_count4 }} / {{ item.count4 }}
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>隐患排查:
|
||||
<template>
|
||||
{{ item.checked_count2 }} / {{ item.count2 }}
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>隐患快报:
|
||||
<template>
|
||||
{{ item.checked_count1 }} / {{ item.count1 }}
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>消防检查:
|
||||
<template>
|
||||
{{ item.checked_count5 }} / {{ item.count5 }}
|
||||
</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<text>考评组成员:{{ item.CHECK_USER }}</text>
|
||||
</view>
|
||||
<view class="flex-end mt-10">
|
||||
<u-button type="default" text="考评" size="mini" class="bth-mini btn-bg" @click="fnNavigatorDetail(item.CORPINFO_ID, item.EVALUATIONCONFIG_ID, item.TYPE)"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</u-list-item>
|
||||
</u-list>
|
||||
<empty v-else></empty>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {getHiddenDangerReview} from "../../../api";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
KEYWORDS: '',
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
totalPage: 0,
|
||||
list: [],
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.resetList()
|
||||
},
|
||||
computed: {
|
||||
userInfo() {
|
||||
return this.$store.getters.getUserInfo
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
async getData(){
|
||||
let resData = await getHiddenDangerReview({
|
||||
KEYWORDS: this.KEYWORDS,
|
||||
showCount: this.pageSize,
|
||||
currentPage: this.currentPage,
|
||||
USER_ID: this.userInfo.USER_ID,
|
||||
});
|
||||
this.list = [...this.list,...resData.varList];
|
||||
this.totalPage = resData.page.totalPage;
|
||||
},
|
||||
resetList() {
|
||||
this.pageSize= 10
|
||||
this.currentPage= 1
|
||||
this.list = []
|
||||
this.getData()
|
||||
},
|
||||
fnNavigatorDetail(CORPINFO_ID, EVALUATIONCONFIG_ID, TYPE){
|
||||
uni.$u.route({
|
||||
url: '/pages/hidden-danger-review/evaluation/list',
|
||||
params: {
|
||||
CORPINFO_ID,
|
||||
EVALUATIONCONFIG_ID,
|
||||
TYPE,
|
||||
}
|
||||
})
|
||||
},
|
||||
scrolltolower() {
|
||||
this.currentPage++;
|
||||
if(this.totalPage >= this.currentPage) this.getData();
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.btn-bg {
|
||||
background-color: #007aff;
|
||||
color: white;
|
||||
}
|
||||
</style>
|
|
@ -182,6 +182,11 @@
|
|||
img: require('../../static/icon-apps/app_icons6.png'),
|
||||
title: '高危作业',
|
||||
url: '/pages/eight_assignments/index'
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/home-znx.png'),
|
||||
title: '分公司隐患考评',
|
||||
url: '/pages/hidden-danger-review/index/index'
|
||||
},
|
||||
],
|
||||
isPromiseUnsigned: false
|
||||
|
|
Loading…
Reference in New Issue