900 lines
33 KiB
Vue
900 lines
33 KiB
Vue
<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>
|