Compare commits

...

2 Commits

Author SHA1 Message Date
wangchengming
2e54b178f5 修复bug 2025-09-04 11:30:36 +08:00
wangchengming
0ae268ecab 修改资质详情LLP不显示问题 2025-09-04 09:36:24 +08:00
12 changed files with 145 additions and 47 deletions

View File

@ -54,6 +54,7 @@
<el-table-column prop="dependencyName" label="属地" min-width="200" />
<el-table-column prop="escUserName" label="ESC" min-width="100" />
<el-table-column prop="deptName" label="部门" min-width="150" />
<el-table-column prop="toolName" label="工具及防护用品名称" width="200" />
<el-table-column prop="toolName" label="工具名称" min-width="180" />
<el-table-column prop="toolSn" label="工具编号" min-width="130" />
<el-table-column prop="expireDate" label="到期日期" min-width="130">

View File

@ -18,13 +18,18 @@
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="8">
<el-form-item label="工具名称" prop="toolName">
<el-select v-model="ruleForm.toolName" placeholder="请选择工具名称" clearable>
<el-form-item label="工具及防护用品名称" prop="toolName">
<el-select v-model="ruleForm.toolName" placeholder="请选择工具及防护用品名称" clearable>
<el-option v-for="dict in ppe_tool_name" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-if="ruleForm.toolName == '其他'">
<el-form-item label="工具名称" prop="toolSn">
<el-input v-model="ruleForm.toolSn" placeholder="请输入工具名称" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工具编号" prop="toolSn">
<el-input v-model="ruleForm.toolSn" placeholder="请输入工具编号" clearable />
@ -32,14 +37,14 @@
</el-col>
<el-col :span="8">
<el-form-item label="部门" prop="deptId">
<el-tree-select v-model="ruleForm.deptId" :data="enabledDeptOptions"
<el-tree-select v-model="ruleForm.deptId" :data="enabledDeptOptions" filterable
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
placeholder="请选择部门" check-strictly />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地" prop="dependencyId">
<el-select v-model="ruleForm.dependencyId" placeholder="请选择属地"
<el-form-item label="属地" prop="dependencyId">
<el-select v-model="ruleForm.dependencyId" placeholder="请选择属地"
@change="handleChoseDependency">
<el-option v-for="item in busDependencyData" :key="item.id"
:label="item.dependencyName" :value="item.id" />
@ -68,9 +73,9 @@
将文件拖曳至此区域 <em>点击上传</em>
</div>
</el-upload>
<el-button class="downloadTemplateBtn" text v-if="ruleForm.toolName == '高压跨接盒标定'"
<el-button class="downloadTemplateBtn" text v-if="ruleForm.toolName == '高压跨接盒'"
@click="downloadDocxTemplate('WI')">下载WI模板</el-button>
<el-button class="downloadTemplateBtn2" text v-if="ruleForm.toolName == '高压跨接盒标定'"
<el-button class="downloadTemplateBtn2" text v-if="ruleForm.toolName == '高压跨接盒'"
@click="downloadDocxTemplate('BIAOQIANYL')">下载标签样例模板</el-button>
</el-form-item>
</el-col>
@ -134,7 +139,7 @@ const { ppe_tool_name } = proxy.useDict("ppe_tool_name")
const data = reactive({
ruleForm: {},
rules: {
toolName: [{ required: true, message: "工具名称不能为空", trigger: "change" }],
toolName: [{ required: true, message: "工具及防护用品名称不能为空", trigger: "change" }],
toolSn: [{ required: true, message: "工具编号不能为空", trigger: "blur" }],
deptId: [{ required: true, message: "部门不能为空", trigger: "change" }],
dependencyId: [{ required: true, message: "属地不能为空", trigger: "change" }],

View File

@ -1,7 +1,7 @@
<template>
<div class="pdf-viewer">
<div class="pdf-viewer" v-loading="loading">
<vue-pdf-embed :source="pdfUrl" :page="currentPage" :style="`transform: scale(${scale})`"
class="pdf-document" />
@loaded="handlePdfLoaded" @progress="handleProgress" class="pdf-document" />
<div class="pdf-controls">
<el-button @click="prevPage" :disabled="currentPage <= 1">上一页</el-button>
@ -29,14 +29,31 @@ const props = defineProps({
})
const currentPage = ref(1)
const pageCount = ref(1)
const scale = ref(1)
const progress = ref(0)
const loading = ref(false)
const handlePdfLoaded = (pdf) => {
console.log('PDF 加载完成', pdf)
loading.value = false
pageCount.value = pdf.numPages
}
const handleProgress = (progressData) => {
progress.value = Math.round(progressData.loaded / progressData.total * 100)
console.log(progress.value)
if(progress.value < 100) loading.value = true
else loading.value = false
}
const prevPage = () => {
if (currentPage.value > 1) currentPage.value--
}
const nextPage = () => {
if (currentPage.value < props.pageCount) currentPage.value++
if (currentPage.value < pageCount.value) currentPage.value++
}
const zoomIn = () => {

View File

@ -1,7 +1,7 @@
<template>
<div class="pdf-viewer">
<div class="pdf-viewer" v-loading="loading">
<vue-pdf-embed :source="pdfUrl" :page="currentPage" :style="`transform: scale(${scale})`"
class="pdf-document" />
@loaded="handlePdfLoaded" @progress="handleProgress" class="pdf-document" />
<div class="pdf-controls">
<el-button @click="prevPage" :disabled="currentPage <= 1">上一页</el-button>
@ -29,14 +29,31 @@ const props = defineProps({
})
const currentPage = ref(1)
const pageCount = ref(1)
const scale = ref(1)
const progress = ref(0)
const loading = ref(false)
const handlePdfLoaded = (pdf) => {
console.log('PDF 加载完成', pdf)
loading.value = false
pageCount.value = pdf.numPages
}
const handleProgress = (progressData) => {
progress.value = Math.round(progressData.loaded / progressData.total * 100)
console.log(progress.value)
if(progress.value < 100) loading.value = true
else loading.value = false
}
const prevPage = () => {
if (currentPage.value > 1) currentPage.value--
}
const nextPage = () => {
if (currentPage.value < props.pageCount) currentPage.value++
if (currentPage.value < pageCount.value) currentPage.value++
}
const zoomIn = () => {

View File

@ -307,21 +307,21 @@
placeholder="请选择急救证到期日期" style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="12" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="12" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证初领日期">
<el-date-picker v-model="beforeCondition.collectionDate" type="date"
<el-date-picker v-model="beforeConditionInfo.collectionDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择电工证初领日期"
style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="12" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="12" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证复审日期">
<el-date-picker v-model="beforeCondition.reviewDate" type="date"
<el-date-picker v-model="beforeConditionInfo.reviewDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择电工证复审日期"
style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="8" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="8" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证" prop="beforeCondition.certificatePhoto">
<img :src="beforeConditionInfo.certificatePhoto.split('.').pop() == 'pdf' ? pdfIcon : baseUrl + beforeConditionInfo.certificatePhoto"
class="avatar viewFile"

View File

@ -1,7 +1,7 @@
<template>
<div class="pdf-viewer">
<div class="pdf-viewer" v-loading="loading">
<vue-pdf-embed :source="pdfUrl" :page="currentPage" :style="`transform: scale(${scale})`"
class="pdf-document" />
@loaded="handlePdfLoaded" @progress="handleProgress" class="pdf-document" />
<div class="pdf-controls">
<el-button @click="prevPage" :disabled="currentPage <= 1">上一页</el-button>
@ -29,14 +29,31 @@ const props = defineProps({
})
const currentPage = ref(1)
const pageCount = ref(1)
const scale = ref(1)
const progress = ref(0)
const loading = ref(false)
const handlePdfLoaded = (pdf) => {
console.log('PDF 加载完成', pdf)
loading.value = false
pageCount.value = pdf.numPages
}
const handleProgress = (progressData) => {
progress.value = Math.round(progressData.loaded / progressData.total * 100)
console.log(progress.value)
if(progress.value < 100) loading.value = true
else loading.value = false
}
const prevPage = () => {
if (currentPage.value > 1) currentPage.value--
}
const nextPage = () => {
if (currentPage.value < props.pageCount) currentPage.value++
if (currentPage.value < pageCount.value) currentPage.value++
}
const zoomIn = () => {
@ -57,7 +74,7 @@ const zoomOut = () => {
.pdf-document {
flex: 1;
overflow: auto;
overflow: auto;
transform-origin: top left;
}

View File

@ -307,21 +307,21 @@
placeholder="请选择急救证到期日期" style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="12" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="12" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证初领日期">
<el-date-picker v-model="beforeCondition.collectionDate" type="date"
<el-date-picker v-model="beforeConditionInfo.collectionDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择电工证初领日期"
style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="12" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="12" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证复审日期">
<el-date-picker v-model="beforeCondition.reviewDate" type="date"
<el-date-picker v-model="beforeConditionInfo.reviewDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择电工证复审日期"
style="width: 60%;" disabled />
</el-form-item>
</el-col>
<el-col :span="8" v-if="beforeCondition.hasQualified.length > 0">
<el-col :span="8" v-if="beforeConditionInfo.hasQualified.length > 0">
<el-form-item label="电工证" prop="beforeCondition.certificatePhoto">
<img :src="beforeConditionInfo.certificatePhoto.split('.').pop() == 'pdf' ? pdfIcon : baseUrl + beforeConditionInfo.certificatePhoto"
class="avatar viewFile"

View File

@ -1,7 +1,7 @@
<template>
<div class="pdf-viewer">
<div class="pdf-viewer" v-loading="loading">
<vue-pdf-embed :source="pdfUrl" :page="currentPage" :style="`transform: scale(${scale})`"
class="pdf-document" />
@loaded="handlePdfLoaded" @progress="handleProgress" class="pdf-document" />
<div class="pdf-controls">
<el-button @click="prevPage" :disabled="currentPage <= 1">上一页</el-button>
@ -29,14 +29,31 @@ const props = defineProps({
})
const currentPage = ref(1)
const pageCount = ref(1)
const scale = ref(1)
const progress = ref(0)
const loading = ref(false)
const handlePdfLoaded = (pdf) => {
console.log('PDF 加载完成', pdf)
loading.value = false
pageCount.value = pdf.numPages
}
const handleProgress = (progressData) => {
progress.value = Math.round(progressData.loaded / progressData.total * 100)
console.log(progress.value)
if(progress.value < 100) loading.value = true
else loading.value = false
}
const prevPage = () => {
if (currentPage.value > 1) currentPage.value--
}
const nextPage = () => {
if (currentPage.value < props.pageCount) currentPage.value++
if (currentPage.value < pageCount.value) currentPage.value++
}
const zoomIn = () => {

View File

@ -92,6 +92,15 @@
<el-text v-if="scope.row.level == 3" type="danger" class="dangerText">主要偏差</el-text>
<el-text v-if="scope.row.level == 2" type="danger" class="infoinfoText">一般偏差</el-text>
<el-text v-if="scope.row.level == 1" type="success" class="successText">建议项</el-text>
<el-text v-if="scope.row.level == 4" type="success" class="yxText">优秀项</el-text>
</template>
</el-table-column>
<el-table-column prop="correctionFlag" label="是否整改" align="center" width="120">
<template #default="scope">
<el-text v-if="scope.row.correctionFlag == 1" type="danger"
class="dangerText"></el-text>
<el-text v-if="scope.row.correctionFlag == 0" type="danger"
class="successText"></el-text>
</template>
</el-table-column>
<el-table-column prop="chargeUserName" label="整改负责人" width="120" />
@ -135,7 +144,7 @@ const showTableData = ref([])
//
const cachShowTableData = ref([])
//
const ToolOptions = ref(['全部', '主要偏差', '一般偏差', '建议项'])
const ToolOptions = ref(['全部', '主要偏差', '一般偏差', '建议项', '优秀项'])
const activeIndex = ref(0)
const levelList = ref([
{ title: '高压安全审查' },
@ -179,7 +188,7 @@ const getListByDependencyList = (_dependencyId) => {
const handleYearChange = (value) => {
console.log('选中的值:', value)
//
detailForm.value = allSafetyData.value.find(item => item.year === value);
detailForm.value = allSafetyData.value.find(item => item.year === value);
detailForm?.value.reviewProblemList.forEach(item => {
showTableData.value.push(item)
cachShowTableData.value.push(item)
@ -191,6 +200,7 @@ const handleChangeLeve = (index, _level) => {
if (_level == '主要偏差') showTableData.value = cachShowTableData.value.filter(item => item.level == 3)
else if (_level == '一般偏差') showTableData.value = cachShowTableData.value.filter(item => item.level == 2)
else if (_level == '建议项') showTableData.value = cachShowTableData.value.filter(item => item.level == 1)
else if (_level == '优秀项') showTableData.value = cachShowTableData.value.filter(item => item.level == 4)
else showTableData.value = cachShowTableData.value
}
@ -311,6 +321,13 @@ const handleChangeLeve = (index, _level) => {
color: #00B32A;
}
.yxText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #767C81;
}
.dangerText {
font-family: Microsoft YaHei;
font-weight: 400;

View File

@ -67,10 +67,10 @@
</el-table-column>
<el-table-column label="操作" fixed="right" width="130">
<template #default="scope">
<el-button v-if="scope.row.reviewState != 1" type="primary" text class="replayTextBtn"
<el-button type="primary" text class="replayTextBtn"
v-hasPermi="['examinerTasks:edit']" @click="handleEdit(scope.row)">编辑</el-button>
<el-divider v-if="scope.row.reviewState != 1" direction="vertical" class="verticalLine" />
<el-button v-if="scope.row.reviewState != 1" type="primary" text class="deleteTextBtn"
<el-divider direction="vertical" class="verticalLine" />
<el-button type="primary" text class="deleteTextBtn"
v-hasPermi="['examinerTasks:delete']" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>

View File

@ -123,9 +123,10 @@
<el-text v-if="scope.row.correctionFlag == 1 && !scope.row.editFlag" type="danger"
class="dangerText"></el-text>
<el-text v-if="scope.row.correctionFlag == 0 && !scope.row.editFlag" type="danger"
class="successText"></el-text>
<el-select v-show="scope.row.editFlag" v-model="scope.row.correctionFlag" placeholder="请选择"
clearable style="width: 86px">
class="successText"></el-text>
<el-select v-show="scope.row.editFlag" v-model="scope.row.correctionFlag"
placeholder="请选择" clearable style="width: 86px"
@change="handleChangeCorrectionFlag($event, scope.row)">
<el-option v-for="item in correctionFlagList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
@ -359,7 +360,7 @@ const handleAddProblem = () => {
chargeUserId: escUserId.value,
chargeUserName: escUserName.value,
planDoneTime: null,
state: 0,
state: null,
editFlag: true
}
showTableData.value.push(itemProblem)
@ -395,6 +396,12 @@ const handleCancelClick = (row, rowIndex) => {
//
handleCountOpenItemCount()
}
//
const handleChangeCorrectionFlag = (val, row) => {
console.log('sad', val, row)
if (val == 1) row.state = 0
else row.state = null
}
//
const handleChangeLeve = (index, _level) => {
activeIndex.value = index

View File

@ -27,11 +27,11 @@
</li>
<li class="list-group-item">
<svg-icon icon-class="tree" />所属部门
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div>
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept?.deptName }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="peoples" />所属角色
<div class="pull-right">{{ state.roleGroup }}</div>
<div class="pull-right" v-if="state.roleGroup">{{ state.roleGroup.roleName }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="date" />创建日期
@ -66,7 +66,7 @@
import userAvatar from "./userAvatar"
import userInfo from "./userInfo"
import resetPwd from "./resetPwd"
import { getUserProfile } from "@/api/system/user"
import { getUserInfo } from "@/api/system/user"
const route = useRoute()
const selectedTab = ref("userinfo")
@ -77,10 +77,10 @@ const state = reactive({
})
function getUser() {
getUserProfile().then(response => {
state.user = response.data
state.roleGroup = response.roleGroup
state.postGroup = response.postGroup
getUserInfo().then(response => {
state.user = response.data
console.log(state.user)
state.roleGroup = response.data.roles.length > 0 ? response.data.roles[0] : null
})
}