|
@@ -20,6 +20,7 @@ import {
|
|
|
import {
|
|
import {
|
|
|
kanbanApi,
|
|
kanbanApi,
|
|
|
IotDangerApi,
|
|
IotDangerApi,
|
|
|
|
|
+ IotHiddenApi,
|
|
|
IotInstrumentApi,
|
|
IotInstrumentApi,
|
|
|
IotMeasureCertApi,
|
|
IotMeasureCertApi,
|
|
|
IotCertificateApi
|
|
IotCertificateApi
|
|
@@ -503,6 +504,8 @@ function initHazardChart() {
|
|
|
renderer: CHART_RENDERER
|
|
renderer: CHART_RENDERER
|
|
|
})
|
|
})
|
|
|
hazardChart.setOption(getHazardChartOption(), true)
|
|
hazardChart.setOption(getHazardChartOption(), true)
|
|
|
|
|
+ hazardChart.off('click')
|
|
|
|
|
+ hazardChart.on('click', handleHazardBarClick)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function updateHazardChart() {
|
|
function updateHazardChart() {
|
|
@@ -962,6 +965,20 @@ const certWarningQueryParams = reactive({
|
|
|
alertWarn: undefined as boolean | undefined
|
|
alertWarn: undefined as boolean | undefined
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+const hazardDialogVisible = ref(false)
|
|
|
|
|
+const hazardDialogTitle = ref('')
|
|
|
|
|
+const hazardDialogLoading = ref(false)
|
|
|
|
|
+const hazardDialogList = ref<any[]>([])
|
|
|
|
|
+const hazardDialogTotal = ref(0)
|
|
|
|
|
+const hazardDialogQueryParams = reactive({
|
|
|
|
|
+ pageNo: 1,
|
|
|
|
|
+ pageSize: 10,
|
|
|
|
|
+ deptId: userStore.getUser.deptId,
|
|
|
|
|
+ status: undefined as string | undefined,
|
|
|
|
|
+ address: '',
|
|
|
|
|
+ source: ''
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
const getCertificateTypeText = (type: string) => {
|
|
const getCertificateTypeText = (type: string) => {
|
|
|
const map: Record<string, string> = {
|
|
const map: Record<string, string> = {
|
|
|
personal: '个人证书',
|
|
personal: '个人证书',
|
|
@@ -1052,6 +1069,44 @@ async function getCertificateWarningList() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+async function getHazardDialogList() {
|
|
|
|
|
+ hazardDialogLoading.value = true
|
|
|
|
|
+ try {
|
|
|
|
|
+ const data = await IotHiddenApi.getHiddenList(hazardDialogQueryParams)
|
|
|
|
|
+ hazardDialogList.value = data.list || []
|
|
|
|
|
+ hazardDialogTotal.value = data.total || 0
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ hazardDialogLoading.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function openHazardDialog(barLabel: string) {
|
|
|
|
|
+ hazardDialogQueryParams.pageNo = 1
|
|
|
|
|
+ hazardDialogQueryParams.pageSize = 10
|
|
|
|
|
+ hazardDialogQueryParams.deptId = userStore.getUser.deptId
|
|
|
|
|
+ hazardDialogQueryParams.address = ''
|
|
|
|
|
+ hazardDialogQueryParams.source = ''
|
|
|
|
|
+
|
|
|
|
|
+ if (barLabel === '未整改') {
|
|
|
|
|
+ hazardDialogTitle.value = '未整改隐患列表'
|
|
|
|
|
+ hazardDialogQueryParams.status = 'todo'
|
|
|
|
|
+ } else if (barLabel === '已整改') {
|
|
|
|
|
+ hazardDialogTitle.value = '已整改隐患列表'
|
|
|
|
|
+ hazardDialogQueryParams.status = 'finished'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ hazardDialogTitle.value = '隐患总数列表'
|
|
|
|
|
+ hazardDialogQueryParams.status = undefined
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ hazardDialogVisible.value = true
|
|
|
|
|
+ getHazardDialogList()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function handleHazardBarClick(params: { name?: string }) {
|
|
|
|
|
+ if (!params?.name) return
|
|
|
|
|
+ openHazardDialog(params.name)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function openCertificateWarningDialog(type: 'expired' | 'warn') {
|
|
function openCertificateWarningDialog(type: 'expired' | 'warn') {
|
|
|
certWarningQueryParams.pageNo = 1
|
|
certWarningQueryParams.pageNo = 1
|
|
|
certWarningQueryParams.pageSize = 10
|
|
certWarningQueryParams.pageSize = 10
|
|
@@ -1603,6 +1658,97 @@ onUnmounted(() => {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</Dialog>
|
|
</Dialog>
|
|
|
|
|
+
|
|
|
|
|
+ <Dialog v-model="hazardDialogVisible" :title="hazardDialogTitle" width="1400px">
|
|
|
|
|
+ <div class="certificate-warning-dialog">
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ :loading="hazardDialogLoading"
|
|
|
|
|
+ :data="hazardDialogList"
|
|
|
|
|
+ height="400"
|
|
|
|
|
+ class="device-list-table production-brief-table">
|
|
|
|
|
+ <el-table-column label="序号" width="80" align="center">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ {{
|
|
|
|
|
+ (hazardDialogQueryParams.pageNo - 1) * hazardDialogQueryParams.pageSize +
|
|
|
|
|
+ scope.$index +
|
|
|
|
|
+ 1
|
|
|
|
|
+ }}
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="单位" align="center" prop="deptName" min-width="140" />
|
|
|
|
|
+ <el-table-column label="类型" align="center" prop="classifyName" min-width="120" />
|
|
|
|
|
+ <el-table-column label="来源" align="center" min-width="110">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <dict-tag :type="DICT_TYPE.QHSE_HAZARD_SOURCE" :value="scope.row.source" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="地点" align="center" prop="address" min-width="140" />
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ label="存在问题"
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="problem"
|
|
|
|
|
+ min-width="180"
|
|
|
|
|
+ show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column label="隐患附件" align="center" min-width="100">
|
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
|
+ <el-button v-if="row.hazardFile" link type="primary" @click="viewFile(row.hazardFile)">
|
|
|
|
|
+ 查看
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <span v-else>-</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ label="整改人"
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="correctPersonName"
|
|
|
|
|
+ min-width="100"
|
|
|
|
|
+ show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ label="整改要求"
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="correctStandard"
|
|
|
|
|
+ min-width="160"
|
|
|
|
|
+ show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ label="整改情况"
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="rectifyDesc"
|
|
|
|
|
+ min-width="160"
|
|
|
|
|
+ show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column label="整改附件" align="center" min-width="100">
|
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.rectifyFile"
|
|
|
|
|
+ link
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="viewFile(row.rectifyFile)">
|
|
|
|
|
+ 查看
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <span v-else>-</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="排查时间" align="center" min-width="120">
|
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
|
+ {{ formatDateCorrectly(row.checkTime) }}
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="状态" align="center" min-width="90">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <dict-tag :type="DICT_TYPE.QHSE_HAZARD_STATUS" :value="scope.row.status" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="备注" align="center" prop="remark" min-width="120" show-overflow-tooltip />
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="certificate-pagination">
|
|
|
|
|
+ <Pagination
|
|
|
|
|
+ :total="hazardDialogTotal"
|
|
|
|
|
+ v-model:page="hazardDialogQueryParams.pageNo"
|
|
|
|
|
+ v-model:limit="hazardDialogQueryParams.pageSize"
|
|
|
|
|
+ @pagination="getHazardDialogList" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </Dialog>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|