This commit is contained in:
bb_pan 2025-03-11 18:05:37 +08:00
parent c366149c2f
commit 4b594ea37d
8 changed files with 214 additions and 363 deletions

View File

@ -136,4 +136,13 @@ export function getCostByPidAndNumApi(query) {
method: 'get',
params: query
})
}
// 设备维修保养记录表
export function getMaintenanceRecordsApi(query) {
return request({
url: '/material/details/getMaintenanceRecords',
method: 'get',
params: query
})
}

View File

@ -20,115 +20,43 @@
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="projectLot"
border
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="projectLot" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column
align="center"
label="序号"
type="index"
:index="
indexContinuation(queryParams.pageNum, queryParams.pageSize)
"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column
label="标段工程名称"
align="center"
prop="lotName"
show-overflow-tooltip
/>
<el-table-column
label="工程类型"
align="center"
prop="typeName"
show-overflow-tooltip
/>
<el-table-column
label="费用指标(元)"
align="center"
show-overflow-tooltip
>
<el-table-column label="标段工程名称" align="center" prop="lotName" show-overflow-tooltip />
<el-table-column label="工程类型" align="center" prop="typeName" show-overflow-tooltip />
<el-table-column label="费用指标(元)" align="center" show-overflow-tooltip>
<template slot-scope="{ row }">
{{ formatCurrency(row.costIndicators || '') }}
</template>
</el-table-column>
<!-- <el-table-column
label="所属工程项目"
align="center"
prop="ownPro"
show-overflow-tooltip
/> -->
<el-table-column
label="所属上级"
align="center"
prop="deptName"
show-overflow-tooltip
/>
<el-table-column
label="联系人"
align="center"
prop="linkMan"
show-overflow-tooltip
/>
<el-table-column
label="联系电话"
align="center"
prop="telphone"
show-overflow-tooltip
/>
<el-table-column
label="状态"
align="center"
prop="status"
width="140"
>
<el-table-column label="所属工程" align="center" prop="proName" show-overflow-tooltip />
<el-table-column label="所属上级" align="center" prop="deptName" show-overflow-tooltip />
<el-table-column label="联系人" align="center" prop="linkMan" show-overflow-tooltip />
<el-table-column label="联系电话" align="center" prop="telphone" show-overflow-tooltip />
<el-table-column label="状态" align="center" prop="status" width="140">
<template slot-scope="scope">
<el-switch
active-value="0"
@ -140,18 +68,10 @@
</el-table-column>
<el-table-column label="操作" align="center" width="140">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
>编辑</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
>删除</el-button
>
</template>
@ -167,21 +87,9 @@
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="600px"
append-to-body
:close-on-click-modal="false"
>
<!-- 内层对话框 选择地图 -->
<el-dialog
width="70%"
title="选择地图"
:visible.sync="innerVisible"
v-if="innerVisible"
append-to-body
>
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :close-on-click-modal="false">
<!-- 内层对话框 选择地图 -->
<el-dialog width="70%" title="选择地图" :visible.sync="innerVisible" v-if="innerVisible" append-to-body>
<el-row class="search-container">
<el-input
clearable
@ -189,49 +97,26 @@
v-model="searchAddress"
@keyup.enter.native="onSearchAddress"
/>
<el-button
type="primary"
style="width: 120px"
@click="onSearchAddress"
>搜索</el-button
>
<el-button type="primary" style="width: 120px" @click="onSearchAddress">搜索</el-button>
</el-row>
<div
id="map-container"
style="height: 550px; background-color: #bfc"
>
</div>
<div id="map-container" style="height: 550px; background-color: #bfc"> </div>
</el-dialog>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="标段工程名称" prop="lotName">
<el-input
v-model="form.lotName"
placeholder="请输入标段工程名称"
maxlength="50"
/>
<el-input v-model="form.lotName" placeholder="请输入标段工程名称" maxlength="50" />
</el-form-item>
<el-form-item label="所属工程" prop="proId">
<el-select v-model="form.proId" filterable placeholder="请选择所属工程" style="width: 100%">
<el-option
v-for="item in ProjectSelect"
:key="item.proId"
:label="item.proName"
:value="item.proId"
v-show="item.status != '1'"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="所属工程项目" prop="ownPro">
<el-select
v-model="form.ownPro" filterable
placeholder="请选择所属工程项目"
style="width: 100%"
>
<el-option
v-for="item in ProjectSelect"
:key="item.proName"
:label="item.proName"
:value="item.proName"
v-if="item.status != '1'"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="工程类型" prop="typeId">
<!-- <el-input v-model="form.typeId" placeholder="请选择工程类型" /> -->
<el-select
v-model="form.typeId"
filterable
@ -260,17 +145,10 @@
/>
</el-form-item>
<el-form-item label="费用指标(元)" prop="costIndicators">
<el-input
v-model="form.costIndicators"
placeholder="请输入费用指标"
/>
<el-input v-model="form.costIndicators" placeholder="请输入费用指标" />
</el-form-item>
<el-form-item label="联系人" prop="linkMan">
<el-input
v-model="form.linkMan"
placeholder="请输入联系人"
maxlength="20"
/>
<el-input v-model="form.linkMan" placeholder="请输入联系人" maxlength="20" />
</el-form-item>
<el-form-item label="联系电话" prop="telphone">
<el-input
@ -280,7 +158,7 @@
onkeyup="this.value = this.value.replace(/[^\d]/g,'');"
/>
</el-form-item>
<el-form-item label="开工日期" prop="startDate">
<el-form-item label="开工日期" prop="startDate">
<el-date-picker
v-model="form.startDate"
type="date"
@ -300,9 +178,7 @@
:picker-options="{
//
disabledDate: (time) => {
const currentDate = new Date(
form.startDate || new Date(),
)
const currentDate = new Date(form.startDate || new Date())
currentDate.setDate(currentDate.getDate())
return time.getTime() < currentDate.getTime()
},
@ -310,9 +186,7 @@
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleProjectAddress"
>选择工程地址</el-button
>
<el-button type="primary" @click="handleProjectAddress">选择工程地址</el-button>
</el-form-item>
<el-form-item label="经度" prop="longitude">
<el-input disabled v-model="form.longitude" />
@ -321,29 +195,13 @@
<el-input disabled v-model="form.latitude" />
</el-form-item>
<el-form-item
label="工程地址"
prop="detailsAddress"
class="address-ipt"
>
<el-input
v-model="form.province"
disabled
style="width: 40%"
/>
<el-input
v-model="form.detailsAddress"
style="width: 60%"
/>
<el-form-item label="工程地址" prop="detailsAddress" class="address-ipt">
<el-input v-model="form.province" disabled style="width: 40%" />
<el-input v-model="form.detailsAddress" style="width: 60%" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
:loading="isLoading"
@click="submitForm"
> </el-button
>
<el-button type="primary" :loading="isLoading" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@ -351,13 +209,7 @@
</template>
<script>
import {
addProjectLot,
delProjectLot,
ProjectLotList,
updateProjectLot,
getProjectSelect,
} from '@/api/base/base'
import { addProjectLot, delProjectLot, ProjectLotList, updateProjectLot, getProjectSelect } from '@/api/base/base'
import { unitTypeList } from '@/api/base/base'
import { deptTreeSelect } from '@/api/system/user'
import Treeselect from '@riophae/vue-treeselect'
@ -423,7 +275,7 @@ export default {
trigger: 'blur',
},
],
// ownPro: [
// proId: [
// { required: true, message: "", trigger: "blur" }
// ],
// typeId: [
@ -441,26 +293,26 @@ export default {
},
],
costIndicators: [
{
required: true,
message: '费用指标不能为空',
trigger: 'blur',
},
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
{
pattern: /^(?:[1-9][0-9]{0,7}|100000000)$/,
message: '请输入大于0且不能以0开头并小于一亿的正整数',
},
],
// ownPro: [
// proId: [
// { required: true, message: "", trigger: "blur" }
// ]
startDate: [
{
required: true,
message: '请选择开工日期',
trigger: 'change',
},
],
// startDate: [
// {
// required: true,
// message: '',
// trigger: 'change',
// },
// ],
// completionDate: [
// {
// required: true,
@ -606,8 +458,7 @@ export default {
this.$refs['form'].validate((valid) => {
if (valid) {
this.isLoading = true
this.form.address =
this.form.province + this.form.detailsAddress
this.form.address = this.form.province + this.form.detailsAddress
if (this.form.lotId != undefined) {
updateProjectLot(this.form)
.then((response) => {
@ -685,7 +536,7 @@ export default {
/** 选择工程地址 */
handleProjectAddress() {
const this_ = this
this.searchAddress = '';
this.searchAddress = ''
this.innerVisible = true
this.$nextTick(() => {
@ -737,26 +588,23 @@ export default {
}),
)
//
myGeo.getLocation(
new BMapGL.Point(lng, lat),
function (result) {
if (result) {
// console.log('result-----', result)
let addComp = result.addressComponents
// let addressDetails = result.content
_this.form.detailsAddress = `${addComp.city}${addComp.district}${addComp.street}${addComp.streetNumber}`
// _this.form.detailsAddress = `${addressDetails.address.replace(
// addComp.province,
// '',
// )}${addressDetails.business}${
// addressDetails.poi_desc
// }`
_this.form.province = `${addComp.province}`
_this.form.longitude = lng
_this.form.latitude = lat
}
},
)
myGeo.getLocation(new BMapGL.Point(lng, lat), function (result) {
if (result) {
// console.log('result-----', result)
let addComp = result.addressComponents
// let addressDetails = result.content
_this.form.detailsAddress = `${addComp.city}${addComp.district}${addComp.street}${addComp.streetNumber}`
// _this.form.detailsAddress = `${addressDetails.address.replace(
// addComp.province,
// '',
// )}${addressDetails.business}${
// addressDetails.poi_desc
// }`
_this.form.province = `${addComp.province}`
_this.form.longitude = lng
_this.form.latitude = lat
}
})
} else {
this.$message.error('您输入的地址有误,请重新输入')
}

View File

@ -813,10 +813,10 @@ export default {
this.queryParams.leaseApplyDetails = this.leaseApplyDetails
try {
this.queryParams.leaseApplyDetails.forEach((item) => {
if (item.num == 0) {
this.$message.error('机具类型库存量为零无法领料')
throw new Error()
}
// if (item.num == 0) {
// this.$message.error('')
// throw new Error()
// }
if (item.preNum == '') {
this.$message.error('请填写预领数量')
throw new Error()

View File

@ -214,7 +214,9 @@
:value="item.maTypeUserId"
/>
</el-select>
<span v-show="!showSelect" @click="showSelect = true" style="cursor: pointer">{{ maTypeUserName }}</span>
<span v-show="!showSelect" @click="showSelect = true" style="cursor: pointer">{{
maTypeUserName
}}</span>
</div>
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
<div class="item" style="width: 50%; flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
@ -241,7 +243,17 @@
<el-table-column label="规格型号" align="center" prop="typeModelName" />
<el-table-column label="计量单位" align="center" prop="unitName" />
<el-table-column label="预领数量" align="center" prop="preNum" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="备注" align="center" prop="remark">
<template slot-scope="scope">
<span>{{
scope.row.remark && scope.row.maModel
? scope.row.remark + ', 以大代小'
: scope.row.maModel
? '以大代小'
: scope.row.remark
}}</span>
</template>
</el-table-column>
<el-table-column label="出库方式" align="center" prop="manageTypeName" />
</el-table>
@ -375,7 +387,6 @@ export default {
watch: {
maTypeUserId: function (newVal, oldVal) {
console.log('🚀 ~ newVal:', newVal)
},
},
created() {

View File

@ -148,10 +148,10 @@
v-if="
!isView &&
scope.row.manageType == '0' &&
scope.row.maxBackNum > 0 &&
(userId == scope.row.userId || userId == 1)
"
scope.row.maxBackNum > 0
"
>
<!-- (userId == scope.row.userId || userId == 1) -->
编码退料
</el-button>
<el-button
@ -161,17 +161,17 @@
v-if="
!isView &&
(scope.row.manageType == '1' || scope.row.manageType == '2') &&
scope.row.maxBackNum > 0 &&
(userId == scope.row.userId || userId == 1)
"
scope.row.maxBackNum > 0
"
>
<!-- (userId == scope.row.userId || userId == 1) -->
数量退料
</el-button>
<el-button
size="mini"
icon="el-icon-zoom-in"
@click="handleBackup(scope.row)"
v-if="!isView && scope.row.inCompletedBackNum > 0 && (userId == scope.row.userId || userId == 1)"
v-if="!isView && scope.row.inCompletedBackNum > 0"
>
撤回
</el-button>

View File

@ -46,7 +46,7 @@
v-if="settleTableData_03.length > 0"
@handelSaveSuccess="handelSaveSuccess"
/>
<FinishTable
<!-- <FinishTable
:listType="3"
:isRepair="true"
:tableTitle="`设备维修清单`"
@ -56,7 +56,7 @@
:totalPrice="repairTotalPrice"
:tableColumns="repairTableColumns"
@onChangeRepairPrice="onChangeRepairPrice"
/>
/> -->
<FinishTable
:listType="4"
@handleExport="handleExport"
@ -73,13 +73,13 @@
:tableTitle="`工机具报废赔偿清单`"
:tableColumns="scrapTableColumns"
/>
<FinishTable
<!-- <FinishTable
:listType="6"
@handleExport="handleExport"
:tableTitle="`工机具待报废清单`"
:tableData="stayScrapTableData"
:tableColumns="stayScrapTableColumns"
/>
/> -->
<OtherCost
ref="otherCostRef"

View File

@ -11,12 +11,7 @@
label-width="80px"
>
<el-form-item label="结算单位" prop="unitId">
<el-select
v-model="queryParams.unitId"
placeholder="请选择往来单位"
clearable
filterable
>
<el-select v-model="queryParams.unitId" placeholder="请选择往来单位" clearable filterable>
<el-option
v-for="item in unitList"
:key="item.unitId"
@ -25,8 +20,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectId">
<el-select
<el-form-item label="结算工程" prop="projectIds">
<!-- <el-select
v-model="queryParams.projectId"
placeholder="请选择工程名称"
clearable
@ -38,42 +33,24 @@
:label="item.projectName"
:value="item.projectId"
/>
</el-select>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select
v-model="queryParams.sltStatus"
placeholder="请选择结算状态"
</el-select> -->
<el-cascader
v-model="queryParams.projectIds"
:options="projectList"
:props="{ checkStrictly: true, multiple: true, label: 'projectName', value: 'projectId' }"
clearable
filterable
>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
></el-cascader>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
<el-button
type="primary"
plain
size="mini"
@click="handleBatchExport"
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="primary" plain size="mini" @click="handleBatchExport"
>批量导出月结明细表</el-button
>
</el-form-item>
@ -91,49 +68,20 @@
align="center"
label="序号"
type="index"
:index="
indexContinuation(
queryParams.pageNum,
queryParams.pageSize,
)
"
/>
<el-table-column
label="协议编号"
align="center"
prop="agreementCode"
show-overflow-tooltipp
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="协议编号" align="center" prop="agreementCode" show-overflow-tooltipp />
<el-table-column
label="结算单位"
align="center"
prop="unitName"
show-overflow-tooltip
/>
<el-table-column
label="结算工程"
align="center"
prop="projectName"
show-overflow-tooltip
/>
<el-table-column
label="累计结算费用"
align="center"
prop="cost"
show-overflow-tooltip
/>
<el-table-column label="结算单位" align="center" prop="unitName" show-overflow-tooltip />
<el-table-column label="结算工程" align="center" prop="projectName" show-overflow-tooltip />
<el-table-column label="累计结算费用" align="center" prop="cost" show-overflow-tooltip />
<el-table-column label="结算状态" align="center">
<template slot-scope="{ row }">
<!-- <span v-if="scope.row.sltStatus == '1'">未结算</span>
<span v-if="scope.row.sltStatus == '2'">已结算</span>
<span v-if="scope.row.sltStatus == '3'">待审核</span> -->
<el-tag type="warning" size="mini" v-if="row.isSlt == 0"
>结算中</el-tag
>
<el-tag type="success" size="mini" v-if="row.isSlt == 1"
>已结算</el-tag
>
<el-tag type="warning" size="mini" v-if="row.isSlt == 0">结算中</el-tag>
<el-tag type="success" size="mini" v-if="row.isSlt == 1">已结算</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
@ -152,9 +100,7 @@
style="padding: 5px 10px"
@click="handleFinishCostAndDetails(row, row.isSlt)"
v-hasPermi="['finis:record:details']"
>{{
row.isSlt == 1 ? '结算明细' : '完工结算'
}}</el-button
>{{ row.isSlt == 1 ? '结算明细' : '完工结算' }}</el-button
>
</template>
</el-table-column>
@ -184,11 +130,7 @@
/>
</template>
<template v-else>
<FinishAndDetails
:currRowInfo="currRowInfo"
:pageContent="pageContent"
@closeCurrPage="closeCurrPage"
/>
<FinishAndDetails :currRowInfo="currRowInfo" :pageContent="pageContent" @closeCurrPage="closeCurrPage" />
</template>
</div>
</template>
@ -284,11 +226,15 @@ export default {
/** 查询字典类型列表 */
getList() {
console.log('🚀 ~ getList ~ :', this.queryParams)
this.loading = true
getSltAgreementInfo(this.queryParams).then((response) => {
this.agreementList = response.rows
this.total = response.total
this.loading = false
}).catch((error) => {
console.log('🚀 ~ getList ~ error:', error)
this.loading = false
})
},
@ -381,9 +327,7 @@ export default {
handleFinishCostAndDetails(row, isSlt) {
this.currRowInfo = row
// this.pageContent = ''
isSlt == 1
? (this.pageContent = '结算明细')
: (this.pageContent = '完工结算')
isSlt == 1 ? (this.pageContent = '结算明细') : (this.pageContent = '完工结算')
this.isHome = false
},
/** 关闭月结记录弹框 */

View File

@ -289,14 +289,13 @@
<span v-if="scope.row.status == '2'">驳回</span>
</template>
</el-table-column>
<el-table-column label="附件" align="center" prop="fileList" :show-overflow-tooltip="true">
<el-table-column label="附件" align="center" prop="fileList">
<template slot-scope="scope">
<el-upload
class="upload-demo"
:action="uploadUrl"
:headers="headers"
accept="image/*,application/pdf,.doc,.docx"
multiple
:limit="5"
:on-preview="handlePreview"
:before-remove="beforeRemove"
@ -306,7 +305,9 @@
:file-list="scope.row.fileList"
:on-success="(res, file, fileList) => handleSuccess(res, file, fileList, scope.row)"
>
<el-button size="small" type="text">点击上传</el-button>
<el-button v-if="type == 'update' && dialogList.length !== 0" size="small" type="text"
>点击上传</el-button
>
</el-upload>
</template>
</el-table-column>
@ -537,7 +538,7 @@
<div
style="
border: 1px solid #000;
min-height: 800px;
min-height: 820px;
line-height: 1.9;
font-size: 20px;
position: relative;
@ -548,21 +549,21 @@
<!-- 第一行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="text-align: center; border-right: 1px solid #000; width: 25%">设备名称</div>
<div style="text-align: center; border-right: 1px solid #000; width: 25%">型号厂家</div>
<div style="text-align: center; border-right: 1px solid #000; width: 18%">编号</div>
<div style="text-align: center; border-right: 1px solid #000; width: 12%">数量</div>
<div style="text-align: center; border-right: 1px solid #000; width: 20%">主修人</div>
<div style="text-align: center; width: 20%">验收人</div>
<div style="text-align: center; border-right: 1px solid #000; width: 29%">型号/厂家</div>
<!-- <div style="text-align: center; border-right: 1px solid #000; width: 18%">编号</div> -->
<div style="text-align: center; border-right: 1px solid #000; width: 10%">数量</div>
<div style="text-align: center; border-right: 1px solid #000; width: 18%">主修人</div>
<div style="text-align: center; width: 18%">验收人</div>
</div>
<!-- 第二行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="text-align: center; border-right: 1px solid #000; width: 25%">{{
upkeepObj.type
}}</div>
<div style="text-align: center; border-right: 1px solid #000; width: 29%">{{
upkeepObj.typeName
}}</div>
<div style="text-align: center; border-right: 1px solid #000; width: 25%">{{
upkeepObj.itemType
}}</div>
<div
<!-- <div
style="
text-align: center;
border-right: 1px solid #000;
@ -570,31 +571,39 @@
white-space: pre-wrap;
word-break: break-word;
"
><span style="margin: 0 5px">{{ upkeepObj.repairNum }}</span></div
>
<div style="text-align: center; border-right: 1px solid #000; width: 12%">{{
upkeepObj.num
><span style="margin: 0 5px; font-size: 15px">{{ upkeepObj.maCode }}</span></div
> -->
<div style="text-align: center; border-right: 1px solid #000; width: 10%">{{
upkeepObj.repairedNum
}}</div>
<div style="text-align: center; border-right: 1px solid #000; width: 20%">{{
<div style="text-align: center; border-right: 1px solid #000; width: 18%">{{
upkeepObj.createBy
}}</div>
<div style="text-align: center; width: 20%">{{ upkeepObj.createBy }}</div>
<div style="text-align: center; width: 18%">{{ upkeepObj.checkMan }}</div>
</div>
<!-- 第三行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="padding-left: 10px; border-right: 1px solid #000; width: 20.85%">设备名称</div>
<div style="padding-left: 10px">{{ upkeepObj.unitName }} {{ upkeepObj.projectName }}</div>
<div style="padding-left: 10px; border-right: 1px solid #000; width: 25%">使用单位</div>
<div style="padding-left: 10px">{{ upkeepObj.unitName }}-{{ upkeepObj.projectName }}</div>
</div>
<!-- 第四行 -->
<div style="width: 100%; min-height: 200px; border-bottom: 1px solid #000; padding-left: 10px"
>设备维修前情况:
>设备维修前情况: <span>{{ upkeepObj.repairRemark }}</span>
</div>
<!-- 第五行 -->
<div style="width: 100%; min-height: 200px; border-bottom: 1px solid #000; padding-left: 10px"
>技术鉴定情况:
<span v-for="item in upkeepObj.records" :key="item.repairRemark"
>{{ item.repairRemark ? item.repairRemark + ', ' : '' }}
</span>
</div>
<!-- 第六行 -->
<div style="width: 100%; min-height: 200px; padding-left: 10px">维修处理情况: </div>
<div style="width: 100%; min-height: 200px; padding-left: 10px"
>维修处理情况:
<span v-for="item in upkeepObj.records" :key="item.repairContent"
>{{ item.repairContent ? item.repairContent + ', ' : '' }}
</span>
</div>
<div
style="
width: 100%;
@ -604,13 +613,11 @@
bottom: 20px;
left: 0;
"
>验收情况:
>验收情况: {{ upkeepObj.taskStatus }}
</div>
</div>
<div style="text-align: end; font-size: 20px; margin-top: 20px">
<span>{{ '2025' }} </span>
<span>{{ '3' }} </span>
<span>{{ '10' }} </span>
<div style="text-align: end; font-size: 20px; margin: 20px 50px 50px 0">
<span>{{ getTime(upkeepObj.auditTime) }}</span>
</div>
</div>
</vue-easy-print>
@ -637,6 +644,7 @@ import {
getDicSelectApi,
listPartTypeApi,
getMaTypeSelectApi,
getMaintenanceRecordsApi,
} from '@/api/repairTest/repair'
import selectTree from '../repair/selectTree.vue'
import Tree from '@/views/repairTest/repair/tree.vue'
@ -1107,7 +1115,23 @@ export default {
openUpkeep(row) {
console.log('🚀 ~ openUpkeep ~ row:', row)
this.upkeepVisible = true
this.upkeepObj = row
if (row.taskStatus == 47) {
this.upkeepObj.taskStatus = '合格'
} else {
this.upkeepObj.taskStatus = ''
}
this.getUpkeepList(row.taskId)
},
//
async getUpkeepList(taskId) {
try {
const res = await getMaintenanceRecordsApi({ taskId })
console.log('🚀 ~ getUpkeepList ~ res:', res)
this.upkeepObj = { ...res.data, ...this.upkeepObj }
} catch (error) {
console.log('🚀 ~ getUpkeepList ~ error:', error)
this.upkeepObj = {}
}
},
handlePreview(file) {
console.log('🚀 ~ handlePreview ~ file:', file)
@ -1132,6 +1156,8 @@ export default {
return isLtMB
},
beforeRemove(file, fileList) {
if (this.type == 'update') return false
return this.$confirm(`确定移除 ${file.name} `)
},
handleSuccess(res, file, fileList, row) {
@ -1146,12 +1172,25 @@ export default {
}
row.fileList.push({
typeId: row.typeId,
maId: row.maId,
fileName: res.data.fileName,
fileUrl: res.data.fileUrl,
})
}
console.log('🚀 ~ row.fileList=fileList.map ~ row.fileList:', row.fileList)
},
// 2025-02-11 14:52:27 --> 2025 2 11
getTime(time) {
if (!time) return ''
let date = new Date(time)
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let hour = date.getHours()
let minute = date.getMinutes()
let second = date.getSeconds()
return `${year}${month}${day}`
},
},
}
</script>