5/17 保养计划 优化

演示数据2.0
wangwei 11 months ago
parent 2987836967
commit e18aaf4220

@ -28,3 +28,15 @@ export function deviceCheckDetailFinish(query) {
}
)
}
//查询巡检记录
export function filterDeviceCheck(query) {
return axios(
{
url: `/udi/device/check/detail/record`,
method: "POST",
data: query
}
)
}

@ -9,6 +9,17 @@ export function deviceCheckGenByPlanId(planId) {
)
}
export function deviceUpkeepByUserPage(query) {
return axios(
{
url: "/udi/device/upkeep/byUser/page",
method: "POST",
data: query
}
)
}
export function deviceUpkeepPage(query) {
return axios(
{
@ -19,10 +30,10 @@ export function deviceUpkeepPage(query) {
)
}
export function deviceCheckPageByDept(query) {
export function deviceUpkeepPageByDept(query) {
return axios(
{
url: `/udi/device/check/pageByDept`,
url: `/udi/device/upkeep/pageByDept`,
method: "POST",
data: query
}
@ -32,7 +43,7 @@ export function deviceCheckPageByDept(query) {
export function deviceCheckPrint(taskId) {
return axios(
{
url: `/udi/device/check/info/print/${taskId}`,
url: `/udi/device/upkeep/info/print/${taskId}`,
method: "GET"
}
)
@ -41,7 +52,7 @@ export function deviceCheckPrint(taskId) {
export function deviceCheckPrintByDeviceCode(taskId, deviceCode) {
return axios(
{
url: `/udi/device/check/info/print/${taskId}/${deviceCode}`,
url: `/udi/device/upkeep/info/print/${taskId}/${deviceCode}`,
method: "GET"
}
)

@ -9,22 +9,22 @@ export function deviceUpkeepDetailPage(query) {
)
}
// export function deviceCheckDetailRepair(query) {
// return axios(
// {
// url: `/udi/device/check/detail/repair`,
// method: "POST",
// data: query
// }
// )
// }
//
// export function deviceCheckDetailFinish(query) {
// return axios(
// {
// url: `/udi/device/check/detail/finish`,
// method: "POST",
// data: query
// }
// )
// }
export function deviceCheckDetailRepair(query) {
return axios(
{
url: `/udi/device/upkeep/detail/repair`,
method: "POST",
data: query
}
)
}
export function deviceCheckDetailFinish(query) {
return axios(
{
url: `/udi/device/upkeep/detail/finish`,
method: "POST",
data: query
}
)
}

@ -0,0 +1,20 @@
import axios from "@/utils/request";
export function deviceUpkeepDetailItemPage(query) {
return axios(
{
url: `/udi/device/upkeep/detail/item/page`,
method: "POST",
data: query
}
)
}
export function deviceCheckDetailItemFinish(query) {
return axios(
{
url: `/udi/device/upkeep/detail/item/finish`,
method: "POST",
data: query
}
)
}

@ -47,10 +47,10 @@
</el-tab-pane>
<el-tab-pane label="维修记录" v-if="this.visible " >
<invDeviceInspectEditDialog v-if="viewCheckVisible "
<invDeviceRepairEditDialog v-if="viewCheckVisible "
:idQuery="filterQuery"
:rowData="this.rowData">
</invDeviceInspectEditDialog>
</invDeviceRepairEditDialog>
</el-tab-pane>
<el-tab-pane label="巡检记录" v-if="this.visible" >
<invDeviceCheckEditDialog v-if="viewCheckVisible "
@ -59,10 +59,10 @@
</invDeviceCheckEditDialog>
</el-tab-pane>
<el-tab-pane label="保养记录" v-if="this.visible" >
<invDeviceUsageEditDialog v-if="viewCheckVisible "
<invDeviceUpkeepEditDialog v-if="viewCheckVisible "
:idQuery="filterQuery"
:rowData="this.rowData">
</invDeviceUsageEditDialog>
</invDeviceUpkeepEditDialog>
</el-tab-pane>
<!-- <el-tab-pane label="采购合同" v-if="this.visibleFull">-->
@ -153,6 +153,8 @@ import invDevicePurOrderDialog from "@/views/dev/invDevicePurOrderDialog.vue";
import invDevicePurApplyDialog from "@/views/dev/invDevicePurApplyDialog.vue";
import invDeviceInspectEditDialog from "@/views/dev/invDeviceInspectEditDialog.vue";
import invDeviceCheckEditDialog from "@/views/dev/invDeviceCheckEditDialog.vue";
import invDeviceRepairEditDialog from "@/views/dev/invDeviceRepairEditDialog.vue";
import invDeviceUpkeepEditDialog from "@/views/dev/invDeviceUpkeepEditDialog.vue";
import {getBasicUnitMaintains, getCorpList} from "@/api/basic/basicUnitMaintain";
export default {
@ -490,7 +492,9 @@ export default {
deviceSubModifyDialog,
invDevicePurContractDialog,
invDevicePurOrderDialog,
invDevicePurApplyDialog
invDevicePurApplyDialog,
invDeviceRepairEditDialog,
invDeviceUpkeepEditDialog
},
created() {
this.filterQuery = this.rowData

@ -0,0 +1,470 @@
<template>
<div>
<div slot="header" class="clearfix">
<div class="fr">
<el-button>取消</el-button>
<el-button type="primary" >提交</el-button>
</div>
</div>
<el-form :model="filterQuery" size="mini" label-width="100px" >
<el-row>
<el-col :span="18">
<el-form-item class="query-form-item" label="设备编码:">
<el-input v-model="filterQuery.deviceCode"
style="width: 30%"
placeholder="输入设备编码"
clearable="true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item class="query-form-item" label="巡检建议:">
<el-input v-model="filterQuery.suggestion" placeholder="巡检建议"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="巡检项目名称:">
<el-input v-model="filterQuery.itemName" placeholder="巡检项目名称" clearable="true"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="产品名称:">
<el-input v-model="filterQuery.productName" placeholder="产品名称" clearable="true"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!--<el-table v-loading="certLoading" :data="certList" style=" width: 100%;margin-top: 20px" border-->
<!-- highlight-current-row-->
<!--&gt;-->
<!-- <el-table-column type="index" label="序号" width="50"></el-table-column>-->
<!-- <el-table-column label="设备编码" prop="deviceCode"></el-table-column>-->
<!-- <el-table-column label="异常次数" prop="exceptionCount"></el-table-column>-->
<!-- <el-table-column label="完成次数" prop="finishCount"></el-table-column>-->
<!-- <el-table-column label="巡检项目" prop="itemCount"></el-table-column>-->
<!-- <el-table-column label="巡检项目名称" prop="itemName"></el-table-column>-->
<!-- <el-table-column label="巡检建议" prop="suggestion"></el-table-column>-->
<!-- <el-table-column label="产品名称" prop="productName"></el-table-column>-->
<!-- <el-table-column label="操作" width="140">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="addCheck(scope.row)"-->
<!-- >编辑-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="deleteDeviceCert(scope.row)"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!--</el-table>-->
<!--<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"-->
<!-- :url-list="imgList"-->
<!--/>-->
<!--<pagination-->
<!-- v-show="certTotal>0"-->
<!-- :total="certTotal"-->
<!-- :page.sync="certQuery.page"-->
<!-- :limit.sync="certQuery.limit"-->
<!-- @pagination="certHandleCurrentChange"-->
<!--&gt;</pagination>-->
</div>
</template>
<script>
import { modifyCompany, addCompany, bindCorp, previewImage } from '@/api/purchase/supCompany'
import store from '@/store'
import { regionDataPlus, CodeToText } from 'element-china-area-data'
// import { filterDeviceUser,insertCompanyUser,deleteDeviceUser,updateDeviceUser } from '@/api/dev/deviceUser'
import { filterDeviceCheck,insertCompanyUser,deleteDeviceUser,updateDeviceUser } from '@/api/dev/deviceCheckDetailApi'
import corpMaintainSelect from '@/views/basic/corpMaintain/corpMaintainSelect'
import depUserAddDialog from '@/views/inventory/user/depUserAddDialog.vue'
import draggable from 'vuedraggable'
import { getUUID, isBlank } from '@/utils/strUtil'
import supCertSetSelectDialog from '@/views/purchase/cert/supCertSetSelectDialog'
import { getBasicUnitMaintains, getCorpList } from '@/api/basic/basicUnitMaintain'
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
name: 'DeviceCheckEditDialog',
// dicts: ['device_user_type'],
props: {
closeDialog: {
type: Function,
required: true,
},
deviceUserType: {
type: Array,
required: true,
},
inputQuery: {
type: Object,
required: true,
},
editTye: {
type: Object,//1:2
required: true,
},
addType: {
type: Object,
required: true,
},
},
watch: {
rowData: function(newVal, oldVal) {
this.searchData(newVal)
}
}
,
data() {
return {
formName: null,
formMap: {
"add": "添加巡检记录",
"edit": "编辑巡检记录"
},
BASE_URL: process.env.VUE_APP_BASE_API,
headers: {},
classesDisplay: false,
selectedOptions: [],
imgViewerVisible: false,
imgList: [],
options: regionDataPlus,
inputQuery: {
// customerId: null,
devCodeFk: null,
companyName: null,
contacts: null,
mobile: null,
detailAddr: null
},
rules: {
companyName: [
{
required: true,
message: '请输入企业名称',
trigger: 'blur'
}
],
creditNum: [
{
required: true,
message: '请输入统一社会信用代码',
trigger: 'blur'
}
],
classes: [
{
required: true,
message: '请选择企业类别',
trigger: 'change'
}
],
area: [
{
required: true,
message: '请选择所属地区',
trigger: 'change'
}
],
detailAddr: [
{
required: true,
message: '请输入详细地址',
trigger: 'change'
}
],
contacts: [
{
required: true,
message: '请输入联系人',
trigger: 'change'
}
],
mobile: [
{
required: true,
message: '请输入联系电话',
trigger: 'change'
}
],
email: [
{
required: true,
message: '请输入邮箱',
trigger: 'change'
}
],
updateCause: [
{
required: true,
message: '请输入变更原因',
trigger: 'change'
}
]
},
uploadUrl: '',
fileUrl: '',
certFileUrl: '',
url: 'http://127.0.0.1:9996/udiwms/image/register/file/getImage?type=image1&name=t11111.jpg',
certQuery: {
devCodeFk: '',
page: 1,
limit: 20,
type: 1
},
expire: {
0: '有效',
1: '失效'
},
certList: [],
certTotal: 0,
certLoading: false,
addCertVisible: false,
salesmanQuery: {
name: '',
page: 1,
limit: 20
},
salesmanList: [],
salesmanTotal: 0,
salesmanLoading: false,
addSalesmanVisible: false,
certTypeMap: {
1: '身份证'
},
selectLocalVisible: false,
productQuery: {
ylqxzcrbarmc: '',
cpmctymc: '',
ggxh: '',
page: 1,
limit: 20
},
maintainsList: [],
productList: [],
productTotal: 0,
productLoading: false,
uuid: null,
companyApplyUpdateVisible: false,
companyEditDisabled: true,
companyEditButtonStr: '编辑',
addType: '1', //12
filterQuery:{},
checkFlag: {
0: '草稿',
1: '已通过',
2: '已拒绝',
3: '变更未审核',
6: '未审核'
},
editTye: 1,
selectCorpVisible: false,
selectCertVisible: false,
certType: 1,
customerId: null
}
}
,
methods: {
searchData(query) {
console.log('完成!')
console.log(query)
this.idQuery = { ...query }
this.getDeviceCertList()
},
//
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + '/udiwms/image/register/file/getImage?type=image2&name='
this.imgList = []
previewImage({ imageUrl: row.filePath, certFileUrl: this.certFileUrl }).then(response => {
if (response.code === 20000) {
this.imgList = response.data
}
})
this.imgViewerVisible = true
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'hidden'
document.addEventListener('touchmove', m, false) //
},
closeImgViewer() {
this.imgViewerVisible = false
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'auto'
document.removeEventListener('touchmove', m, true)
},
selectBasicCorp() {
this.selectCorpVisible = true
},
cancelDialog() {
this.closeDialog()
},
//
closeLocalDialog() {
this.addCertVisible = false
this.selectCertVisible = false
// this.getCompanyCertList();
this.getDeviceCertList()
}
,
//
addCheck(row) {
// console.log("this.inputQuery.devCodeFk",this.inputQuery.devCodeFk)
if (isBlank(this.inputQuery.deviceCode)) {
return this.$message.error('请先选择设备')
}
// console.log(this.inputQuery.devCodeFk)
// console.log("dangqian hansg hsujv",row)
if (this.$isNotBlank(row) && this.$isNotBlank(row.deviceCode)) {
this.formName = "edit"
this.inputQuery.formData = row
this.editTye = 2
} else {
this.formName = "add"
this.inputQuery.formData = {}
this.inputQuery.formData.addType = 1
this.editTye = 1
}
this.addCertVisible = true
}
,
//
certHandleCurrentChange(val) {
this.certQuery.page = val.page
// this.getCompanyCertList();
this.getDeviceCertList()
},
getDeviceCertList() {
this.certLoading = true
// let certRuery = {}
// this.certQuery.customerId = this.inputEdit.customerId;
// console.log('idQuery')
// console.log(this.idQuery)
this.certQuery.deviceCode = this.idQuery.deviceCode
this.certQuery.type = 1
this.inputQuery = { ...this.idQuery }
this.inputQuery.devCode = this.idQuery.devCode
// console.log(this.inputQuery)
// console.log('this.certQuery:')
// console.log(this.certQuery)
///udi/device/checkRcord/filter
filterDeviceCheck(this.certQuery)
.then((response) => {
this.certLoading = false
this.certList = response.data.list || []
this.certTotal = response.data.total
})
.catch(() => {
this.certLoading = false
this.certList = []
})
},
deleteDeviceCert(row) {
this.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.certLoading = true
let tquery = {
id: row.id,
filePath: row.filePath
}
deleteDeviceUser(tquery)
.then((response) => {
this.certLoading = false
if (response.code === 20000) {
this.getDeviceCertList()
this.$message({
type: 'success',
message: '删除成功!'
})
} else {
this.$message.error(response.message)
}
})
.catch(() => {
this.certLoading = false
})
}).catch(() => {
})
}
}
,
created() {
// console.log(" idQuery",this.idQuery)
// if (this.rowData.editType == 1) {
// this.getDeviceCertList()
// }
// this.getBasicUnitMaintainsList();
console.log("diidididiidiidid,",this.inputQuery)
this.headers = {
ADMINID: store.getters.adminId,
ADMINTOKEN: store.getters.token
}
this.filterQuery = this.inputQuery
console.log("fuzh fduzhi ",this.filterQuery)
},
components: {
draggable, depUserAddDialog, corpMaintainSelect, supCertSetSelectDialog, ElImageViewer
}
}
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 120px;
}
.text {
width: 100%;
font-size: 13px;
font-family: "Microsoft YaHei";
}
.el-card {
margin-right: 20px;
margin-top: 15px;
/*transition: all .5s;*/
}
.el-row {
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
</style>

@ -0,0 +1,762 @@
<template>
<div>
<el-card>
<el-form :model="query" v-if="showSearch" label-width="auto">
<el-row :gutter="20">
<!-- <el-col :span="6">-->
<!-- <el-form-item label="负责部门">-->
<!-- <deptSelect :value.sync="query.chargeDeptCode"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="showSearch = !showSearch">显示/隐藏搜索栏</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="search"
>查询
</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table :data="list" @row-click="rowClick" v-loading="loading" click-row-light>
<el-table-column label="序号" width="50" type="index"/>
<!-- <el-table-column label="任务id" width="150" prop="taskId"/>-->
<el-table-column label="任务名称" width="150" prop="name"/>
<el-table-column label="计划名称" width="150" prop="planName"/>
<el-table-column label="系统生成" width="80" prop="sysFlag">
<template slot-scope="scope">
{{ scope.row.sysFlag ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column label="完成情况" width="80" prop="finishFlag">
<template slot-scope="scope">
<el-tag v-if="scope.row.finishFlag==true" type="success"></el-tag>
<el-tag v-if="scope.row.finishFlag==false" type="warning"></el-tag>
</template>
</el-table-column>
<el-table-column label="负责部门" width="160" prop="chargeDeptName"/>
<!-- <el-table-column label="负责人" width="160" prop="checkUserName"/>-->
<!-- <el-table-column label="负责人联系方式" width="160" prop="checkUserPhone"/>-->
<el-table-column label="设备数量" width="80" prop="deviceCount"/>
<el-table-column label="完成数量" width="80" prop="finishCount"/>
<el-table-column label="异常数量" class-name="color-red" width="80" prop="exceptionCount"/>
<el-table-column label="创建时间" width="160" prop="createTime"/>
<el-table-column label="创建人" width="160" prop="createUserName"/>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="getList"
/>
</el-card>
<el-card>
<div slot="header" class="clearfix">
<div class="fl">{{
`任务详情 ${clickRow ? '——' + clickRow.name : ''}`
}}
</div>
<div v-if="clickRow" class="fr">
<el-button @click="getDetailList"></el-button>
</div>
</div>
<el-form v-if="clickRow" :model="detailQuery" inline label-width="auto">
<el-row :gutter="20">
<el-col>
<el-form-item label="设备编码">
<el-input v-model.trim="detailQuery.deviceCode" clearable/>
</el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getDetailList"
>查询
</el-button>
</el-col>
</el-row>
</el-form>
<el-table :data="detailList" v-loading="detailLoading">
<el-table-column label="序号" width="50" type="index"/>
<el-table-column label="科室" width="150" prop="deptName"/>
<el-table-column label="设备编码" width="150" prop="deviceCode"/>
<el-table-column label="完成情况" width="80" prop="finishFlag">
<template slot-scope="scope">
<el-tag v-if="scope.row.finishFlag==true" type="success"></el-tag>
<el-tag v-if="scope.row.finishFlag==false" type="warning"></el-tag>
</template>
</el-table-column>
<el-table-column label="完成时间" width="160" prop="finishTime"/>
<el-table-column label="最小销售标识" width="150" prop="nameCode"/>
<el-table-column label="名称" width="150" prop="productName"/>
<el-table-column label="项目数量" width="80" prop="itemCount"/>
<el-table-column label="完成数量" width="80" prop="finishCount"/>
<el-table-column label="异常数量" class-name="color-red" width="80" prop="exceptionCount"/>
<el-table-column label="规格型号" width="160" prop="ggxh"/>
<!-- <el-table-column label="状态" width="120" prop="statusName">-->
<!-- <template scope="scope">-->
<!-- <el-tag :type="deviceStatus[scope.row.status].tagType">{{ scope.row.statusName }}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="计量单位" width="100" prop="measname"/>
<el-table-column label="生产企业" width="180" prop="manufactory"/>
<el-table-column label="批次号" width="100" prop="batchNo"/>
<el-table-column label="序列号" width="100" prop="serialNo"/>
<el-table-column label="生产日期" width="140" prop="productionDate"/>
<el-table-column label="过期时间" width="140" prop="expireDate"/>
<el-table-column label="供应商" width="100" prop="supName"/>
<el-table-column label="UDI码" width="150" prop="udi"/>
<el-table-column label="注册/备案号" width="150" prop="zczbhhzbapzbh"/>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<!-- <el-button type="text" @click="openItem(scope.row)"-->
<!-- >开始巡检-->
<!-- </el-button>-->
<el-button type="text" @click="startUpkeep(scope.row)" v-if="!scope.row.finishFlag"
>开始保养
</el-button>
<el-button type="text" @click="startUpkeep(scope.row)" v-if="scope.row.finishFlag"
>保养详情
</el-button>
<el-button v-if="(scope.row.finishFlag && scope.row.exceptionCount>0 && !(scope.row.repairId || scope.row.applyId) )" type="text"
@click="createRepair(scope.row)"
>报修
</el-button>
<el-button v-if="scope.row.applyId" type="text"
@click="applyIdSelect(scope.row)"
>报修单
</el-button>
<el-button v-if="scope.row.repairId" type="text"
@click="repairId = scope.row.repairId"
>维修单
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="detailTotal>0"
:total="detailTotal"
:page.sync="detailQuery.page"
:limit.sync="detailQuery.limit"
@pagination="getDetailList"
/>
</el-card>
<el-dialog
:visible="true"
v-if="itemDialogFlag"
width="80%"
:title="`保养项目${itemQuery.title?'--'+itemQuery.title:''}`"
@close="itemDialogFlag = false"
>
<el-card>
<div slot="header" class="clearfix">
<div class="fr">
<el-button type="" @click="getDetailItemList"></el-button>
</div>
</div>
<el-table :data="itemList" v-loading="itemLoading">
<el-table-column label="序号" width="50" type="index"/>
<el-table-column label="项目编码" width="150" prop="itemCode"/>
<el-table-column label="完成情况" width="80" prop="finishFlag">
<template slot-scope="scope">
<el-tag v-if="scope.row.finishFlag==true" type="success"></el-tag>
<el-tag v-if="scope.row.finishFlag==false" type="warning"></el-tag>
</template>
</el-table-column>
<el-table-column label="完成时间" width="160" prop="finishTime"/>
<el-table-column label="保养部门" width="100" prop="upkeepDeptName"/>
<el-table-column label="保养人" width="100" prop="upkeepUserName"/>
<el-table-column label="异常情况" width="80" prop="finishFlag">
<template slot-scope="scope">
<el-tag v-if="scope.row.normalFlag==true" type="success"></el-tag>
<el-tag v-if="scope.row.normalFlag==false" type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column label="项目名称" width="150" prop="itemName"/>
<el-table-column label="项目内容" width="450" prop="itemContent"/>
<el-table-column label="保养意见" width="450" prop="suggestion"/>
<el-table-column label="操作" width="100" fixed="right">
<template slot-scope="scope">
<el-button v-if="scope.row.finishFlag ===false" type="text"
@click="itemRow = {...scope.row,normalFlag:true}">完成
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="itemTotal>0"
:total="itemTotal"
:page.sync="itemQuery.page"
:limit.sync="itemQuery.limit"
@pagination="getDetailItemList"
/>
</el-card>
</el-dialog>
<el-dialog
:visible="true"
v-if="itemRow"
width="80%"
@close="itemRow = null"
>
<el-card>
<div slot="header" class="clearfix">
<div class="fl">
{{ `保养项目--${itemRow.itemName}[${itemRow.itemCode}]` }}
</div>
<div class="fr">
<el-button @click="itemRow = null">取消</el-button>
<el-button type="primary" @click="commitItemCheck"></el-button>
</div>
</div>
<el-form :model="itemRow" :rules="itemRules" ref="itemForm" label-width="auto">
<el-descriptions border :column="2" label-style="width:100px">
<el-descriptions-item label="设备信息" :span="2">
{{ itemQuery.title }}
</el-descriptions-item>
<el-descriptions-item label="项目编码">
{{ itemRow.itemCode }}
</el-descriptions-item>
<el-descriptions-item label="项目名称">
{{ itemRow.itemName }}
</el-descriptions-item>
<el-descriptions-item label="项目内容" label-style="height:150px;" :span="2">
{{ itemRow.itemContent }}
</el-descriptions-item>
<el-descriptions-item label="异常情况" :span="2">
<el-form-item label=" " prop="normalFlag" style="margin-bottom: 0px">
<el-radio-group v-model="itemRow.normalFlag">
<el-radio :label="true">正常</el-radio>
<el-radio :label="false">异常</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="保养意见" :span="2">
<el-form-item label=" " prop="suggestion" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="itemRow.suggestion"/>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
</el-dialog>
<el-dialog
:visible="true"
title="创建报修单"
v-if="repairRow"
width="80%"
@close="repairRow = null"
>
<el-card>
<div slot="header" class="clearfix">
<div class="fl">
{{ `保养设备--${repairRow.deviceCode}--${repairRow.productName}(${repairRow.ggxh})` }}
</div>
<div class="fr">
<el-button @click="repairRow = null">取消</el-button>
<el-button type="primary" @click="commitRepair"></el-button>
</div>
</div>
<el-form :model="repairRow" :rules="repairRules" ref="repairForm" label-width="auto">
<el-descriptions border label-style="width:90px" :column="3">
<el-descriptions-item label="名称">{{ repairRow.productName }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ repairRow.ggxh }}</el-descriptions-item>
<el-descriptions-item label="销售标识">{{ repairRow.nameCode }}</el-descriptions-item>
<el-descriptions-item label="注册/备案号">{{ repairRow.zczbhhzbapzbh }}</el-descriptions-item>
<el-descriptions-item label="生产企业">{{ repairRow.manufactory }}</el-descriptions-item>
<el-descriptions-item label="供应商">{{ repairRow.supName }}</el-descriptions-item>
<el-descriptions-item label="批次号">{{ repairRow.batchNo }}</el-descriptions-item>
<el-descriptions-item label="序列号">{{ repairRow.serialNo }}</el-descriptions-item>
<el-descriptions-item label="udi码">{{ repairRow.udi }}</el-descriptions-item>
<el-descriptions-item label="生产日期">{{ repairRow.productionDate }}</el-descriptions-item>
<el-descriptions-item label="过期时间">{{ repairRow.expireDate }}</el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label="问题描述" :label-style="{'height': '100px'}" :span="3">
<el-form-item label=" " prop="description" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="repairRow.description"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="报修现场图片" :span="3" label-style="height:100px">
<localImageUpload
:fileType="['image/jpeg','image/png','image/gif']"
:maxFiles= "this.maxFiles"
:fileSizeLimit="this.fileSizeLimit"
:type="deptDeviceCheck"
:uploadedFileNames="uploadedFileNames"
:isShowTip="false"
@changeComponent1Data="component1DataChange"
></localImageUpload>
</el-descriptions-item>
<!-- <el-descriptions-item label="维修方式" :span="3">-->
<!-- <el-form-item label=" " prop="innerFlag" style="margin-bottom: 0">-->
<!-- <el-radio-group v-model="repairRow.innerFlag">-->
<!-- <el-radio :label="true">内部维修</el-radio>-->
<!-- <el-radio :label="false">外部维修</el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="维修部门" :span="3">-->
<!-- <el-form-item label=" " prop="repairDeptCode" style="margin-bottom: 10px">-->
<!-- <deptSelect :value.sync="repairRow.repairDeptCode" :maintenance="true" placeholder="请选择报修部门" />-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="维修人姓名" :span="3">-->
<!-- <el-form-item label=" " prop="repairUserName" style="margin-bottom: 10px">-->
<!-- <el-select-->
<!-- v-model="repairRow.repairUserName"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in userlist"-->
<!-- :key="index"-->
<!-- :label="item.employeeName"-->
<!-- :value="item.employeeName"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
<el-descriptions-item label="报修人电话" :span="3">
<el-form-item label=" " prop="repairUserPhone" style="margin-bottom: 10px">
<el-input v-model.trim="repairRow.repairUserPhone" placeholder="请输入报修人电话"/>
</el-form-item>
</el-descriptions-item>
<!-- <el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="3">-->
<!-- <el-form-item label=" " prop="diagnosisInfo" style="margin-bottom: 10px">-->
<!-- <el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable-->
<!-- show-word-limit-->
<!-- maxlength="300" v-model.trim="repairRow.diagnosisInfo"/>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
</el-descriptions>
</el-form>
</el-card>
</el-dialog>
<el-dialog
visible
v-if="repairId"
@close="repairId=null"
title="维修单信息"
width="80%"
>
<deviceRepairDialog :repairId="repairId"/>
</el-dialog>
<el-dialog
visible
v-if="applyId"
@close="applyId=null"
title="报修单信息"
width="80%"
>
<el-card>
<div slot="header" class="clearfix">
<div class="fl">
{{ `保养设备--${selectRepairRow.deviceCode}--${selectRepairRow.productName}(${selectRepairRow.ggxh})` }}
</div>
</div>
<el-form :model="selectRepairRow" label-width="auto" disabled>
<el-descriptions border label-style="width:90px" :column="3">
<el-descriptions-item label="名称">{{ selectRepairRow.productName }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ selectRepairRow.ggxh }}</el-descriptions-item>
<el-descriptions-item label="销售标识">{{ selectRepairRow.nameCode }}</el-descriptions-item>
<el-descriptions-item label="注册/备案号">{{ selectRepairRow.zczbhhzbapzbh }}</el-descriptions-item>
<el-descriptions-item label="生产企业">{{ selectRepairRow.manufactory }}</el-descriptions-item>
<el-descriptions-item label="供应商">{{ selectRepairRow.supName }}</el-descriptions-item>
<el-descriptions-item label="批次号">{{ selectRepairRow.batchNo }}</el-descriptions-item>
<el-descriptions-item label="序列号">{{ selectRepairRow.serialNo }}</el-descriptions-item>
<el-descriptions-item label="udi码">{{ selectRepairRow.udi }}</el-descriptions-item>
<el-descriptions-item label="生产日期">{{ selectRepairRow.productionDate }}</el-descriptions-item>
<el-descriptions-item label="过期时间">{{ selectRepairRow.expireDate }}</el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label="问题描述" :label-style="{'height': '100px'}" :span="3">
<el-form-item label=" " prop="description" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="selectRepairRow.description"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="报修现场图片" :span="3" label-style="height:100px">
<localImageUpload
:fileType="['image/jpeg','image/png','image/gif']"
:maxFiles= "this.maxFiles"
:fileSizeLimit="this.fileSizeLimit"
:type="deptDeviceCheck"
:uploadedFileNames="selectRepairRow.livePath"
:isShowTip="false"
@changeComponent1Data="component1DataChange"
></localImageUpload>
</el-descriptions-item>
<el-descriptions-item label="报修人电话" :span="3">
<el-form-item label=" " prop="repairUserPhone" style="margin-bottom: 10px">
<el-input v-model.trim="selectRepairRow.repairUserPhone" placeholder="请输入报修人电话"/>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
</el-dialog>
<el-dialog
:title="`保养项目${itemQuery.title?'--'+itemQuery.title:''}`"
:visible="true"
v-if="checkTipDialogVisible"
@close="checkTipDialogVisible = false"
width="80%"
>
<deptDeviceUpkeepDetail
:originData="curDeviceData"
:closeCheckDialog="closeCheckDialog"
/>
</el-dialog>
</div>
</template>
<script>
import {
deviceUpkeepPageByDept,
} from "@/api/dev/deviceUpkeepApi";
import {deviceUpkeepDetailPage, deviceCheckDetailRepair} from "@/api/dev/deviceUpkeepDetailApi";
import {deviceCheckDetailItemFinish, deviceUpkeepDetailItemPage} from "@/api/dev/deviceUpkeepDetailItemApi";
import {copyProperties, getLoading} from "@/utils";
import deptDeviceUpkeepDetail from "@/views/dev/deptDeviceUpkeepDetail";
import {filterListByDeptCode} from "@/api/system/deptUser";
import {deviceRepairApplyAdd} from "@/api/dev/deviceRepairApplyApi";
import {listByIdAndCode} from "@/api/dev/deviceRepairApplyDetailApi.js";
let query = {
page: 1,
limit: 10,
chargeDeptCode: null,
finishFlag: null,
}
let detailQuery = {
page: 1,
limit: 10,
taskId: null,
deviceCode: null,
}
let itemQuery = {
page: 1,
limit: 10,
taskId: null,
deviceCode: null,
}
let repairData = {
taskId: null,
deviceCode: null,
description: null,
diagnosisInfo: null,
innerFlag: true,
repairUserName: null,
repairUserPhone: null,
repairDeptCode: null,
}
export default {
name: "deptDeviceUpkeep",
computed: {},
components: {
deptDeviceUpkeepDetail
},
data() {
return {
clickRow: null,
showSearch: true,
loading: false,
userlist:[],
total: .0,
list: [],
query: {...query},
//=============================================
detailLoading: false,
detailQuery: {...detailQuery},
detailList: [],
detailTotal: 0,
showLog: false,
//===================================================
itemDialogFlag: false,
itemQuery: {...itemQuery},
itemList: [],
itemTotal: 0,
itemLoading: false,
checkPrintData: null,
itemRow: null,
livePath:null,
itemRules: {
normalFlag: [{required: true, message: "请选择异常情况", trigger: ["change", "blur"]}],
suggestion: [{required: true, message: "巡检意见不能为空", trigger: ["change", "blur"]}],
},
repairRow: null,
selectRepairRow: null,
repairRules: {
innerFlag: [{
required: true,
message: "请选择维修方式",
trigger: ["change", "blur"]
}],
repairUserName: [{
required: true,
message: "维修人姓名不能为空",
trigger: ["change", "blur"]
}],
repairUserPhone: [{
required: true,
message: "维修人电话不能为空",
trigger: ["change", "blur"]
}],
repairDeptCode: [{
required: true,
message: "维修部门不能为空",
trigger: ["change", "blur"]
}],
description: [{required: true, message: "问题描述不能为空", trigger: ["change", "blur"]}],
diagnosisInfo: [{required: true, message: "诊断信息不能为空", trigger: ["change", "blur"]}],
},
repairId: null,
applyId: null,
//
checkTipDialogVisible: false,
curDeviceData: null,
maxFiles: 3,
fileSizeLimit: 5,
uploadedFileNames: '',
}
},
created() {
this.getList()
},
watch: {
'repairRow.repairDeptCode': {
handler (newV, oldV) {
this.getUerList()
},
// deep: true,
// immediate: true,
}
},
methods: {
applyIdSelect(row){
this.applyId = row.applyId;
//
let load = getLoading(this)
listByIdAndCode({applyId:row.applyId,deviceCode:row.deviceCode}).then(res => {
load.close()
if (res.code != 20000) {
// this.$message.error(res.message)
return
}
// this.$message.success(res.message)
this.selectRepairRow = res.data
}).catch(() => {
load.close()
})
},
component1DataChange(params) {
this.uploadedFileNames = params;
},
commitRepair() {
this.$refs.repairForm.validate(b => {
if (!b) {
return
}
let load = getLoading(this)
let pData = {
applyUserPhone:"",
taskId:"",
details: []
}
pData.details.push({
deviceCode: this.repairRow.deviceCode,
description: this.repairRow.description,
livePath: this.uploadedFileNames
})
pData.applyUserPhone = this.repairRow.repairUserPhone
pData.taskId = this.repairRow.taskId
deviceRepairApplyAdd(pData).then(res => {
load.close()
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.$message.success(res.message)
this.getDetailList()
this.getList()
this.repairRow = null
}).catch(() => {
load.close()
})
})
},
createRepair(row) {
console.log("hhhhhhhhhh")
let data = copyProperties(row, {...repairData});
this.uploadedFileNames = ""
this.repairRow = _.extend({}, row, data)
},
commitItemCheck() {
this.$refs.itemForm.validate(b => {
if (!b) {
return
}
let load = getLoading(this)
deviceCheckDetailItemFinish(this.itemRow).then(res => {
load.close()
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.$message.success(res.message)
this.getDetailItemList()
this.getDetailList()
this.getList()
this.itemRow = null
}).catch(() => {
load.close()
})
})
},
openItem(row) {
this.itemQuery = {
...itemQuery,
taskId: row.taskId,
deviceCode: row.deviceCode,
title: `[${row.deviceCode}]--${row.productName}(${row.nameCode})`
}
this.itemDialogFlag = true
this.getDetailItemList()
},
startUpkeep(row) {
this.itemQuery = {
...itemQuery,
taskId: row.taskId,
deviceCode: row.deviceCode,
title: `[${row.deviceCode}]--${row.productName}(${row.nameCode})`
}
this.curDeviceData = row
this.checkTipDialogVisible = true
},
closeCheckDialog() {
this.checkTipDialogVisible = false
this.getList()
this.getDetailItemList()
},
getDetailItemList() {
this.itemLoading = true
deviceUpkeepDetailItemPage(this.itemQuery).then(res => {
this.itemLoading = false
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.itemList = res.data.list || []
this.itemTotal = res.data.total || 0
}).catch(e => {
this.itemLoading = false
this.itemList = []
this.itemTotal = 0
})
},
rowClick(row) {
if (this.clickRow && row.taskId == this.clickRow.taskId) {
return false
}
this.clickRow = row
this.detailQuery = {...detailQuery, taskId: row.taskId}
this.getDetailList()
},
getDetailList() {
this.detailLoading = true
deviceUpkeepDetailPage(this.detailQuery).then(res => {
console.log("chakan jihua xiangsxi")
this.detailLoading = false
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.detailList = res.data.list || []
this.detailTotal = res.data.total || 0
}).catch(e => {
this.detailLoading = false
})
},
search() {
this.query.page = 1
this.getList()
},
onReset() {
this.query = {...query}
this.getList()
},
getList() {
this.loading = true
deviceUpkeepPageByDept(this.query).then(res => {
this.loading = false
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(e => {
this.list = []
this.total = 0
this.loading = false
})
},
getUerList() {
if (this.repairRow.repairDeptCode != null){
let userQuery = {
deptCode: this.repairRow.repairDeptCode,
}
filterListByDeptCode(userQuery).then((response) => {
// this.loading = false;
this.userlist = response.data.list || [];
// this.userTotal = response.data.total;
})
.catch(() => {
// this.loading = false;
this.userlist = [];
// this.userTotal = 0;
});
}
}
}
}
</script>
<style scoped>
/deep/ .el-dialog__body {
padding: 0 0 20px 0;
}
</style>

@ -0,0 +1,205 @@
<template>
<div>
<el-card>
<div slot="header" class="clearfix">
<!-- <div class="fl">-->
<!-- {{ `巡检记录表&#45;&#45;${itemRow.itemName}[${itemRow.itemCode}]` }}-->
<!-- </div>-->
<div class="fr">
<el-button @click="itemRow = null" v-if="!itemRow.finishFlag" >取消</el-button>
<el-button type="primary" @click="commitItemCheck" v-if="!itemRow.finishFlag" >提交</el-button>
</div>
</div>
<el-form :model="itemRow" :rules="itemRules" ref="itemForm" label-width="auto" :disabled="itemRow.finishFlag">
<el-descriptions border :column="2" label-style="width:100px">
<el-descriptions-item label="所属部门">
{{ itemRow.deptName }}
</el-descriptions-item>
<el-descriptions-item label="设备名称">
{{ itemRow.productName }}
</el-descriptions-item>
<el-descriptions-item label="设备编码">
{{ itemRow.deviceCode }}
</el-descriptions-item>
<el-descriptions-item label="规格型号">
{{ itemRow.ggxh }}
</el-descriptions-item>
<el-descriptions-item label="保养项目内容" :span="2">
<el-table :data="itemList" v-loading="itemLoading" :border="false"
:row-style="{height:'35px'}"
:cell-style="{padding:'10px'}"
:show-header="false"
style="width: 100%;margin-top: 20px;margin-bottom: 20px">
<el-table-column label="序号" width="50" type="index"/>
<el-table-column label="项目编码" width="120" prop="itemCode"/>
<el-table-column label="项目名称" width="140" prop="itemName"/>
<el-table-column label="项目内容" width="220" prop="itemContent"/>
<el-table-column label="完成情况" width="180" prop="finishFlag">
<template slot-scope="scope">
<div>
<el-radio-group v-model="scope.row.normalFlag" size="mini">
<el-radio :label="true" border>正常</el-radio>
<el-radio :label="false" border style="margin-left: -15px">异常</el-radio>
</el-radio-group>
</div>
</template>
</el-table-column>
</el-table>
</el-descriptions-item>
<el-descriptions-item label="补充说明" :span="2">
<el-form-item label=" " prop="suggestion" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="itemRow.suggestion"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="现场图片" :span="2" label-style="height:100px">
<localImageUpload
:fileType="['image/jpeg','image/png','image/gif']"
:maxFiles= "this.maxFiles"
:fileSizeLimit="this.fileSizeLimit"
:type="deptDeviceCheck"
:uploadedFileNames="this.uploadedFileNames"
:isShowTip="false"
@changeComponent1Data="component1DataChange"
></localImageUpload>
</el-descriptions-item>
<el-descriptions-item label="保养结果" :span="2">
<el-form-item label=" " prop="normalFlag" style="margin-bottom: 0px">
<el-radio-group v-model="itemRow.normalFlag">
<el-radio :label="true">正常</el-radio>
<el-radio :label="false">异常</el-radio>
</el-radio-group>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
</div>
</template>
<script>
import {getLoading} from "@/utils";
import {deviceCheckDetailItemFinish, deviceUpkeepDetailItemPage} from "@/api/dev/deviceUpkeepDetailItemApi";
import {deviceCheckDetailFinish} from "@/api/dev/deviceUpkeepDetailApi";
let itemQuery = {
page: 1,
limit: 10,
taskId: null,
deviceCode: null,
}
export default {
name: "deptDeviceUpkeepDetail",
computed: {
iRowStyle: function ({row, rowIndex}) {
return 'height:50px';
},
iHeaderRowStyle: function ({row, rowIndex}) {
return 'height:50px';
},
iCellStyle: function ({row, column, rowIndex, columnIndex}) {
return 'padding:0px'
},
},
props: {
originData: {
type: Object,
required: true
},
closeCheckDialog: {required: false, type: Function}
},
data() {
return {
maxFiles: 3,
fileSizeLimit: 5,
uploadedFileNames: '',
itemRow: {},
itemLoading: false,
itemList: [],
itemTotal: 0,
itemQuery: {...itemQuery},
itemRules: {
normalFlag: [{required: true, message: "请选择异常情况", trigger: ["change", "blur"]}],
suggestion: [{required: true, message: "保养意见不能为空", trigger: ["change", "blur"]}],
},
}
},
methods: {
commitItemCheck() {
this.$refs.itemForm.validate(b => {
if (!b) {
return
}
for (let item of this.itemList) {
if (item.normalFlag == null) {
this.$message.error(item.itemName + "未勾选,请检查后提交");
return
}
}
let load = getLoading(this)
let itemParam = {
taskId: this.itemRow.taskId,
deviceCode: this.itemRow.deviceCode,
suggestion: this.itemRow.suggestion,
normalFlag: this.itemRow.normalFlag,
detailItemEntities: this.itemList,
livePath: this.uploadedFileNames
}
deviceCheckDetailFinish(itemParam).then(res => {
load.close()
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.$message.success(res.message)
console.log("zoudao zheli l ,e")
this.closeCheckDialog();
}).catch(() => {
load.close()
})
})
},
component1DataChange(params) {
this.uploadedFileNames = params;
},
//
getDetailItemList() {
this.itemLoading = true
deviceUpkeepDetailItemPage(this.itemQuery).then(res => {
this.itemLoading = false
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.itemList = res.data.list || []
this.itemTotal = res.data.total || 0
}).catch(e => {
this.itemLoading = false
this.itemList = []
this.itemTotal = 0
})
},
},
created() {
this.itemRow = this.originData
this.itemQuery = {...itemQuery, deviceCode: this.itemRow.deviceCode, taskId: this.itemRow.taskId}
this.getDetailItemList()
this.uploadedFileNames = this.itemRow.livePath
},
}
</script>
<style scoped>
/* 假设你想要更改表格的字体大小 */
.custom-table .el-table__row {
height: 100px;
}
</style>

@ -65,14 +65,14 @@
<!-- <el-table-column label="供应商" width="100" prop="supName"/>-->
<!-- <el-table-column label="udi码" width="150" prop="udi"/>-->
<!-- <el-table-column label="注册/备案号" width="150" prop="zczbhhzbapzbh"/>-->
<!-- <el-table-column label="操作" width="120" fixed="right">-->
<!-- <template scope="scope">-->
<!--<el-table-column label="操作" width="120" fixed="right">-->
<!--<template scope="scope">-->
<!-- <el-button type="text" @click="print(scope.row.taskId)"-->
<!-- >打印-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-button type="text" @click="print(scope.row.taskId)"-->
<!-- >开始巡检-->
<!-- </el-button>-->
<!--</template>-->
<!--</el-table-column>-->
</el-table>
<pagination
v-show="total>0"

@ -183,6 +183,7 @@ let query = {
limit: 10,
name: null,
chargeDeptCode: null,
type:1,
}
let detailQuery = {
@ -670,6 +671,7 @@ export default {
},
getList() {
this.loading = true
// console.log("yuepe",this.query)
devicePlanPage(this.query).then(res => {
this.loading = false
if (res.code != 20000) {

@ -172,6 +172,7 @@ import DevicePlanProject from "@/views/dev/devicePlanProject";
import {devicePlanSave} from "@/api/dev/devicePlanApi";
import {deviceUpkeepPlanSave} from "@/api/dev/deviceUpkeepPlanApi";
import deviceProjectAdd from "@/views/dev/deviceProjectAdd";
import { isBlank } from '@/utils/strUtil'
export default {
name: "devicePlanEdit",
@ -313,8 +314,13 @@ export default {
this.originData = {
type:1
}
}
if(isBlank(this.planData.planId)){
this.$message.error("请先添加设备")
}else {
this.chooseDetailItemFlag = true;
}
},
closeBatchSetProject() {
this.chooseDetailItemFlag = false;

@ -65,6 +65,7 @@ import {
import {devicePlanDetailItemAdd, devicePlanDetailItemBatchAdd} from "@/api/dev/devicePlanDetailItemApi";
import {getLoading} from "@/utils";
import {devicePlanDetailDelByDeviceCode} from "@/api/dev/devicePlanDetailApi";
import { isBlank } from '@/utils/strUtil'
let query = {
page: 1,
@ -159,7 +160,7 @@ export default {
confirmButtonText: "继续",
cancelButtonText: "取消"
}).then(() => {
this.addProject()
this.addProject()
})
} else {
this.addProject()

@ -108,7 +108,7 @@
<el-table-column label="状态" width="160" prop="statusName">
<template slot-scope="scope">
<el-tag :type="deviceRepairApplyDetailStatus[scope.row.status].tagType">{{
scope.row.statusName
deviceRepairApplyDetailStatus[scope.row.status].desc
}}
</el-tag>
</template>

@ -65,11 +65,12 @@
<el-table-column label="受理时间" width="140" prop="confirmTime"/>
<el-table-column label="设备数量" width="100" prop="deviceCount"/>
<el-table-column label="已完成数量" width="100" prop="finishCount"/>
<!-- <el-table-column v-if="tabActive==1" label="操作" fixed="right" width="80">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button type="text" @click="confirm(scope.row)"></el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
v-if="tabActive==1"
<el-table-column label="操作" fixed="right" width="80">
<template slot-scope="scope">
<el-button v-if="scope.row.status !== 'FINISH' " type="text" @click="confirm(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
@ -99,7 +100,7 @@
<el-table-column label="状态" width="160" prop="statusName">
<template slot-scope="scope">
<el-tag :type="deviceRepairApplyDetailStatus[scope.row.status].tagType">{{
scope.row.statusName
deviceRepairApplyDetailStatus[scope.row.status].desc
}}
</el-tag>
</template>
@ -125,9 +126,9 @@
<el-table-column label="生产企业" width="180" prop="manufactory"/>
<el-table-column v-if="tabActive==2" label="操作" fixed="right" width="100">
<template slot-scope="scope">
<!-- <el-button type="text" v-if="scope.row.status==deviceRepairApplyDetailStatus.WAIT_DIAGNOSIS.key"-->
<!-- @click="openDiagnosisDialog(scope.row)">诊断-->
<!-- </el-button>-->
<!--<el-button type="text" v-if="scope.row.status==deviceRepairApplyDetailStatus.WAIT_DIAGNOSIS.key"-->
<!-- @click="openDiagnosisDialog(scope.row)">诊断-->
<!--</el-button>-->
<el-button type="text" v-if="scope.row.repairId" @click="repairId = scope.row.repairId"></el-button>
</template>
</el-table-column>

@ -27,7 +27,7 @@
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table :data="list" @row-click="rowClick" v-loading="loading" click-row-light>
<el-table :data="list" @row-click="rowClick" v-loading="loading" click-row-light width="100%">
<el-table-column label="序号" width="50" type="index"/>
<el-table-column label="保养任务id" width="150" prop="taskId"/>
<el-table-column label="任务名称" width="150" prop="name"/>
@ -50,6 +50,16 @@
<el-table-column label="完成数量" width="50" prop="finishCount"/>
<el-table-column label="创建时间" width="160" prop="createTime"/>
<el-table-column label="创建人" width="160" prop="createUserName"/>
<!--<el-table-column label="操作" width="120" fixed="right">-->
<!--<template slot-scope="scope">-->
<!-- <el-button type="text" @click="startUpkeep(scope.row)" v-if="!scope.row.finishFlag"-->
<!-- >开始保养-->
<!-- </el-button>-->
<!-- <el-button type="text" @click="startUpkeep(scope.row)" v-if="scope.row.finishFlag"-->
<!-- >保养详情-->
<!-- </el-button>-->
<!--</template>-->
<!--</el-table-column>-->
</el-table>
<pagination
v-show="total>0"
@ -135,6 +145,19 @@
/>
</el-card>
<el-dialog
:title="`保养项目${itemQuery.title?'--'+itemQuery.title:''}`"
:visible="true"
v-if="checkTipDialogVisible"
@close="checkTipDialogVisible = false"
width="80%"
>
<deptDeviceUpkeepDetail
:originData="curDeviceData"
:closeCheckDialog="closeCheckDialog"
/>
</el-dialog>
<el-dialog
:visible="true"
v-if="itemDialogFlag"

@ -5,41 +5,45 @@
text-align: right;
margin-bottom: 8px;"
>
<el-button type="primary" size="mini" icon="search" @click="addCert"
style="text-align:right"
>添加相关人员
</el-button>
<!--//@click="addCert"-->
<!--<el-button type="primary" size="mini" icon="search" @click="addCheck"-->
<!-- style="text-align:right"-->
<!--&gt;手动增加巡检记录-->
<!--</el-button>-->
</div>
<el-table v-loading="certLoading" :data="certList" style=" width: 100%;margin-top: 20px" border
highlight-current-row
>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="人员类别" prop="userType">
<template slot-scope="scope">
<span>{{ dict.type.device_user_type[scope.row.userType].label }}</span>
</template>
</el-table-column>
<el-table-column label="人员名称" prop="userName"></el-table-column>
<el-table-column label="联系电话" prop="contact1"></el-table-column>
<el-table-column label="其他联系方式" prop="contact2"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="140">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native="addCert(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.native="deleteDeviceCert(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
<!--<el-table-column label="设备编码" prop="userType">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ dict.type.device_user_type[scope.row.userType].label }}</span>-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column label="设备编码" prop="deviceCode"></el-table-column>
<el-table-column label="异常次数" prop="exceptionCount"></el-table-column>
<el-table-column label="完成次数" prop="finishCount"></el-table-column>
<el-table-column label="巡检项目" prop="itemCount"></el-table-column>
<el-table-column label="巡检项目名称" prop="itemName"></el-table-column>
<el-table-column label="巡检建议" prop="suggestion"></el-table-column>
<el-table-column label="产品名称" prop="productName"></el-table-column>
<!--<el-table-column label="操作" width="140">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="addCheck(scope.row)"-->
<!-- >编辑-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="deleteDeviceCert(scope.row)"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!--</el-table-column>-->
</el-table>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"
:url-list="imgList"
@ -63,13 +67,12 @@
append-to-body
@close="closeLocalDialog"
>
<depUserAddDialog
<DeviceCheckEditDialog
:closeDialog="closeLocalDialog"
:inputQuery="inputQuery"
:addType="addType"
:editTye="editTye"
:deviceUserType="dict.type.device_user_type"
></depUserAddDialog>
></DeviceCheckEditDialog>
</el-dialog>
@ -81,7 +84,8 @@
import { modifyCompany, addCompany, bindCorp, previewImage } from '@/api/purchase/supCompany'
import store from '@/store'
import { regionDataPlus, CodeToText } from 'element-china-area-data'
import { filterDeviceUser,insertCompanyUser,deleteDeviceUser,updateDeviceUser } from '@/api/dev/deviceUser'
// import { filterDeviceUser,insertCompanyUser,deleteDeviceUser,updateDeviceUser } from '@/api/dev/deviceUser'
import { filterDeviceCheck,insertCompanyUser,deleteDeviceUser,updateDeviceUser } from '@/api/dev/deviceCheckDetailApi'
import corpMaintainSelect from '@/views/basic/corpMaintain/corpMaintainSelect'
import depUserAddDialog from '@/views/inventory/user/depUserAddDialog.vue'
import draggable from 'vuedraggable'
@ -89,7 +93,7 @@ import { getUUID, isBlank } from '@/utils/strUtil'
import supCertSetSelectDialog from '@/views/purchase/cert/supCertSetSelectDialog'
import { getBasicUnitMaintains, getCorpList } from '@/api/basic/basicUnitMaintain'
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
import DeviceCheckEditDialog from '@/views/dev/DeviceCheckEditDialog'
export default {
name: 'invDeviceCheckEditDialog',
@ -128,8 +132,8 @@ export default {
return {
formName: null,
formMap: {
"add": "添加相关人员",
"edit": "编辑相关人员"
"add": "添加巡检记录",
"edit": "编辑巡检记录"
},
BASE_URL: process.env.VUE_APP_BASE_API,
headers: {},
@ -324,20 +328,20 @@ export default {
}
,
//
addCert(row) {
addCheck(row) {
// console.log("this.inputQuery.devCodeFk",this.inputQuery.devCodeFk)
if (isBlank(this.inputQuery.devCodeFk)) {
if (isBlank(this.inputQuery.deviceCode)) {
return this.$message.error('请先选择设备')
}
// console.log(this.inputQuery.devCodeFk)
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
// console.log("dangqian hansg hsujv",row)
if (this.$isNotBlank(row) && this.$isNotBlank(row.deviceCode)) {
this.formName = "edit"
this.inputQuery.formData = row
this.inputQuery = row
this.editTye = 2
} else {
this.formName = "add"
this.inputQuery.formData = {}
this.inputQuery.formData.addType = 1
this.inputQuery = {}
this.editTye = 1
}
this.addCertVisible = true
@ -356,15 +360,17 @@ export default {
// this.certQuery.customerId = this.inputEdit.customerId;
// console.log('idQuery')
// console.log(this.idQuery)
this.certQuery.devCodeFk = this.idQuery.devCodeFk
this.certQuery.deviceCode = this.rowData.deviceCode
this.certQuery.type = 1
this.inputQuery = { ...this.idQuery }
this.inputQuery.devCodeFk = this.idQuery.devCodeFk
this.inputQuery.devCode = this.idQuery.devCode
// console.log(this.inputQuery)
// console.log('this.certQuery:')
// console.log(this.certQuery)
filterDeviceUser(this.certQuery)
///udi/device/checkRcord/filter
filterDeviceCheck(this.certQuery)
.then((response) => {
console.log("巡检返回数据,",response.data.list)
this.certLoading = false
this.certList = response.data.list || []
this.certTotal = response.data.total
@ -408,18 +414,20 @@ export default {
}
,
created() {
// // console.log(" idQuery",this.idQuery)
// // if (this.rowData.editType == 1) {
// this.getDeviceCertList()
// // }
// // this.getBasicUnitMaintainsList();
// this.headers = {
// ADMINID: store.getters.adminId,
// ADMINTOKEN: store.getters.token
console.log("巡检接受父组件的deviceCode",this.rowData)
// console.log(" idQuery",this.idQuery)
// if (this.rowData.editType == 1) {
this.getDeviceCertList()
// }
// this.getBasicUnitMaintainsList();
this.headers = {
ADMINID: store.getters.adminId,
ADMINTOKEN: store.getters.token
}
},
components: {
draggable, depUserAddDialog, corpMaintainSelect, supCertSetSelectDialog, ElImageViewer
draggable, depUserAddDialog, corpMaintainSelect, supCertSetSelectDialog, ElImageViewer,DeviceCheckEditDialog
}
}

@ -0,0 +1,447 @@
<template>
<div>
<el-form :model="inputQuery" :rules="rules" ref="inputQuery" label-width="100px">
<div style=" float: right;
text-align: right;
margin-bottom: 8px;">
<!--<el-button type="primary" size="mini" icon="search" @click="addCert"-->
<!-- style="text-align:right"-->
<!--&gt;添加技术资料-->
<!--</el-button>-->
</div>
<el-table v-loading="certLoading" :data="certList" style=" width: 100%;margin-top: 20px" border
highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="维修单编号" prop="id"></el-table-column>
<el-table-column label="设备码" prop="deviceCode"></el-table-column>
<el-table-column label="更新日期" prop="updateTime"></el-table-column>
<el-table-column label="证书维修状态">
<template slot-scope="scope">
<!--<el-tag type="warning">{{ expire[scope.row.finishFlag] }}</el-tag>-->
<el-tag :type="deviceRepair[scope.row.finishFlag].tagType">{{ expire[scope.row.finishFlag] }}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="审核状态" prop="auditStatus" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="(scope.row.auditStatus) | statusFilterType">-->
<!-- {{ checkFlag[scope.row.auditStatus] }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="140">
<!--<template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="addCert(scope.row)"-->
<!-- >编辑-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button type="text" size="mini" @click.native="showImgViewer(scope.row)">-->
<!-- 预览-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="deleteDeviceCert(scope.row)"-->
<!-- >删除-->
<!-- </el-button>-->
<!--</template>-->
</el-table-column>
</el-table>
<!--<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"-->
<!-- :url-list="imgList"/>-->
<pagination
v-show="certTotal>0"
:total="certTotal"
:page.sync="certQuery.page"
:limit.sync="certQuery.limit"
@pagination="certHandleCurrentChange"
></pagination>
<el-dialog
:title="formMap[formName]"
:visible.sync="addCertVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="70%"
v-if="addCertVisible"
append-to-body
@close='closeLocalDialog'
>
<deviceAddCert
:closeDialog="closeLocalDialog"
:inputQuery="inputQuery"
:addType="addType"
:editTye="editTye"
></deviceAddCert>
</el-dialog>
</el-form>
</div>
</template>
<script>
import {modifyCompany, addCompany, bindCorp, previewImage} from "@/api/purchase/supCompany";
import store from "@/store";
import {regionDataPlus, CodeToText} from "element-china-area-data";
import {deleteDeviceCert, updateDeviceCert} from "@/api/dev/deviceCert";
import {deviceRepairByUserPage} from "@/api/dev/deviceRepairApi";
import corpMaintainSelect from "@/views/basic/corpMaintain/corpMaintainSelect"
import deviceAddCert from "@/views/inventory/cert/depCertAddDialog.vue";
import draggable from "vuedraggable";
import {getUUID, isBlank} from "@/utils/strUtil";
import supCertSetSelectDialog from "@/views/purchase/cert/supCertSetSelectDialog";
import {getBasicUnitMaintains, getCorpList} from "@/api/basic/basicUnitMaintain";
import ElImageViewer from "element-ui/packages/image/src/image-viewer"
export default {
name: "invDeviceRepairEditDialog",
props: {
// closeDialog: {
// type: Function,
// required: true,
// },
// inputEdit: {
// type: Object,
// required: true,
// },
// editType: {
// type: Number,
// required: true,
// }
idQuery: {
type: Object,
required: true,
},
rowData: {
type: Object,
required: true,
},
},
watch: {
rowData: function (newVal, oldVal) {
console.log("ggggg")
this.searchData(newVal);
}
}
,
data() {
return {
formName: null,
formMap: {
"add": "添加技术资料",
"edit": "编辑技术资料"
},
BASE_URL: process.env.VUE_APP_BASE_API,
headers: {},
classesDisplay: false,
selectedOptions: [],
imgViewerVisible: false,
imgList: [],
options: regionDataPlus,
inputQuery: {
// customerId: null,
devCodeFk: null,
companyName: null,
contacts: null,
mobile: null,
detailAddr: null,
},
rules: {
companyName: [
{
required: true,
message: "请输入企业名称",
trigger: "blur"
}
],
creditNum: [
{
required: true,
message: "请输入统一社会信用代码",
trigger: "blur"
}
],
classes: [
{
required: true,
message: "请选择企业类别",
trigger: "change"
}
],
area: [
{
required: true,
message: "请选择所属地区",
trigger: "change"
}
],
detailAddr: [
{
required: true,
message: "请输入详细地址",
trigger: "change"
}
],
contacts: [
{
required: true,
message: "请输入联系人",
trigger: "change"
}
],
mobile: [
{
required: true,
message: "请输入联系电话",
trigger: "change"
}
],
email: [
{
required: true,
message: "请输入邮箱",
trigger: "change"
}
],
updateCause: [
{
required: true,
message: "请输入变更原因",
trigger: "change"
}
],
},
uploadUrl: "",
fileUrl: "",
certFileUrl: "",
url: 'http://127.0.0.1:9996/udiwms/image/register/file/getImage?type=image1&name=t11111.jpg',
certQuery: {
devCodeFk: "",
deviceCode:"",
page: 1,
limit: 20,
},
deviceRepair : {
false: {key: "NORMAL", tagType: "warning", desc: "未完成"},
true: {key: "NORMAL", tagType: "success", desc: "已完成"},
},
expire: {
true: "已完成",
false: "未完成"
},
certList: [],
certTotal: 0,
certLoading: false,
addCertVisible: false,
salesmanQuery: {
name: "",
page: 1,
limit: 20
},
salesmanList: [],
salesmanTotal: 0,
salesmanLoading: false,
addSalesmanVisible: false,
certTypeMap: {
1: '身份证'
},
selectLocalVisible: false,
productQuery: {
ylqxzcrbarmc: "",
cpmctymc: "",
ggxh: "",
page: 1,
limit: 20
},
maintainsList: [],
productList: [],
productTotal: 0,
productLoading: false,
uuid: null,
companyApplyUpdateVisible: false,
companyEditDisabled: true,
companyEditButtonStr: "编辑",
addType: "2", //12
checkFlag: {
0: "草稿",
1: "已通过",
2: "已拒绝",
3: "变更未审核",
6: "未审核",
},
editTye: 1,
selectCorpVisible: false,
selectCertVisible: false,
certType: 1,
customerId: null,
};
}
,
methods: {
searchData(query) {
console.log("完成!")
console.log(query)
this.idQuery = {...query}
this.getDeviceCertList();
},
//
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
});
this.imgViewerVisible = true;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
selectBasicCorp() {
this.selectCorpVisible = true;
},
cancelDialog() {
this.closeDialog();
},
//
closeLocalDialog() {
this.addCertVisible = false;
this.selectCertVisible = false;
// this.getCompanyCertList();
this.getDeviceCertList();
}
,
//
addCert(row) {
if (isBlank(this.inputQuery.devCodeFk)) {
return this.$message.error("请先选择设备");
}
console.log(this.inputQuery.devCodeFk)
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.formName = "edit"
this.inputQuery.formData = row;
this.editTye = 2;
} else {
this.formName = "add"
this.inputQuery.formData = {};
this.inputQuery.formData.addType = 2;
this.editTye = 1;
}
this.addCertVisible = true;
}
,
//
certHandleCurrentChange(val) {
this.certQuery.page = val.page;
// this.getCompanyCertList();
this.getDeviceCertList();
},
getBasicUnitMaintainsList() {
getCorpList()
.then((response) => {
this.maintainsList = response.data || [];
})
.catch(() => {
this.maintainsList = [];
});
},
getDeviceCertList() {
this.certLoading = true;
// let certRuery = {}
// this.certQuery.customerId = this.inputEdit.customerId;
// console.log("idQuery")
// console.log(this.idQuery)
this.certQuery.deviceCode = this.rowData.deviceCode
this.inputQuery={...this.idQuery};
this.inputQuery.devCodeFk=this.idQuery.devCodeFk;
// console.log(this.inputQuery);
// console.log("this.certQuery:")
// console.log(this.certQuery)
deviceRepairByUserPage(this.certQuery)
.then((response) => {
this.certLoading = false;
this.certList = response.data.list || [];
this.certTotal = response.data.total;
})
.catch(() => {
this.certLoading = false;
this.certList = [];
});
},
deleteDeviceCert(row) {
this.$confirm("是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
let tquery = {
id: row.id,
filePath: row.filePath,
};
deleteDeviceCert(tquery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getDeviceCertList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
},
created() {
console.log("dangqian jieshou de shangyihang shujv 0",this.rowData.deviceCode)
this.getDeviceCertList();
this.headers = {
ADMINID: store.getters.adminId,
ADMINTOKEN: store.getters.token,
};
},
components: {
draggable, deviceAddCert, corpMaintainSelect, supCertSetSelectDialog, ElImageViewer
}
}
;
</script>
<style scoped>
</style>

@ -0,0 +1,478 @@
<template>
<div>
<el-form :model="inputQuery" :rules="rules" ref="inputQuery" label-width="100px">
<div style=" float: right;
text-align: right;
margin-bottom: 8px;">
<!--<el-button type="primary" size="mini" icon="search" @click="addCert"-->
<!-- style="text-align:right"-->
<!--&gt;添加技术资料-->
<!--creatUserName-->
<!--:-->
<!--null-->
<!--deptName-->
<!--:-->
<!--"手术室"-->
<!--deviceCode-->
<!--:-->
<!--"S0790586160"-->
<!--deviceCount-->
<!--:-->
<!--1-->
<!--exceptionCount-->
<!--:-->
<!--0-->
<!--finishCount-->
<!--:-->
<!--0-->
<!--finishFlag-->
<!--:-->
<!--false-->
<!--itemCount-->
<!--:-->
<!--2-->
<!--manufactory-->
<!--:-->
<!--"大博医疗科技股份有限公司"-->
<!--</el-button>-->
</div>
<el-table v-loading="certLoading" :data="upkeepList" style=" width: 100%;margin-top: 20px" border
highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="保养人" prop="createUserName"></el-table-column>
<el-table-column label="设备编码" prop="deviceCode"></el-table-column>
<el-table-column label="科室" prop="deptName"></el-table-column>
<el-table-column label="设备数量" prop="deviceCount"></el-table-column>
<el-table-column label="异常次数" prop="exceptionCount"></el-table-column>
<el-table-column label="完成次数" prop="finishCount"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<!--<el-table-column label="证书维修状态">-->
<!-- <template slot-scope="scope">-->
<!-- &lt;!&ndash;<el-tag type="warning">{{ expire[scope.row.finishFlag] }}</el-tag>&ndash;&gt;-->
<!-- <el-tag :type="deviceRepair[scope.row.finishFlag].tagType">{{ expire[scope.row.finishFlag] }}</el-tag>-->
<!-- </template>-->
<!--</el-table-column>-->
<!-- <el-table-column label="审核状态" prop="auditStatus" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="(scope.row.auditStatus) | statusFilterType">-->
<!-- {{ checkFlag[scope.row.auditStatus] }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!--<el-table-column label="备注" prop="remark"></el-table-column>-->
<!--<el-table-column label="操作" width="140">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="addCert(scope.row)"-->
<!-- >编辑-->
<!-- </el-button-->
<!-- >-->
<!-- &lt;!&ndash;<el-button type="text" size="mini" @click.native="showImgViewer(scope.row)">&ndash;&gt;-->
<!-- &lt;!&ndash; 预览&ndash;&gt;-->
<!-- &lt;!&ndash;</el-button>&ndash;&gt;-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="deleteDeviceCert(scope.row)"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!--</el-table-column>-->
</el-table>
<!--<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"-->
<!-- :url-list="imgList"/>-->
<pagination
v-show="certTotal>0"
:total="certTotal"
:page.sync="certQuery.page"
:limit.sync="certQuery.limit"
@pagination="certHandleCurrentChange"
></pagination>
<el-dialog
:title="formMap[formName]"
:visible.sync="addCertVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="70%"
v-if="addCertVisible"
append-to-body
@close='closeLocalDialog'
>
<deviceAddCert
:closeDialog="closeLocalDialog"
:inputQuery="inputQuery"
:addType="addType"
:editTye="editTye"
></deviceAddCert>
</el-dialog>
</el-form>
</div>
</template>
<script>
import {modifyCompany, addCompany, bindCorp, previewImage} from "@/api/purchase/supCompany";
import store from "@/store";
import {regionDataPlus, CodeToText} from "element-china-area-data";
import {deleteDeviceCert, updateDeviceCert} from "@/api/dev/deviceCert";
import {deviceRepairByUserPage} from "@/api/dev/deviceRepairApi";
import {deviceUpkeepByUserPage} from "@/api/dev/deviceUpkeepApi";
import corpMaintainSelect from "@/views/basic/corpMaintain/corpMaintainSelect"
import deviceAddCert from "@/views/inventory/cert/depCertAddDialog.vue";
import draggable from "vuedraggable";
import {getUUID, isBlank} from "@/utils/strUtil";
import supCertSetSelectDialog from "@/views/purchase/cert/supCertSetSelectDialog";
import {getBasicUnitMaintains, getCorpList} from "@/api/basic/basicUnitMaintain";
import ElImageViewer from "element-ui/packages/image/src/image-viewer"
export default {
name: "invDeviceUpkeepEditDialog",
props: {
// closeDialog: {
// type: Function,
// required: true,
// },
// inputEdit: {
// type: Object,
// required: true,
// },
// editType: {
// type: Number,
// required: true,
// }
idQuery: {
type: Object,
required: true,
},
rowData: {
type: Object,
required: true,
},
},
watch: {
rowData: function (newVal, oldVal) {
console.log("ggggg")
this.searchData(newVal);
}
}
,
data() {
return {
formName: null,
formMap: {
"add": "添加技术资料",
"edit": "编辑技术资料"
},
BASE_URL: process.env.VUE_APP_BASE_API,
headers: {},
classesDisplay: false,
selectedOptions: [],
imgViewerVisible: false,
imgList: [],
options: regionDataPlus,
inputQuery: {
// customerId: null,
devCodeFk: null,
companyName: null,
contacts: null,
mobile: null,
detailAddr: null,
},
rules: {
companyName: [
{
required: true,
message: "请输入企业名称",
trigger: "blur"
}
],
creditNum: [
{
required: true,
message: "请输入统一社会信用代码",
trigger: "blur"
}
],
classes: [
{
required: true,
message: "请选择企业类别",
trigger: "change"
}
],
area: [
{
required: true,
message: "请选择所属地区",
trigger: "change"
}
],
detailAddr: [
{
required: true,
message: "请输入详细地址",
trigger: "change"
}
],
contacts: [
{
required: true,
message: "请输入联系人",
trigger: "change"
}
],
mobile: [
{
required: true,
message: "请输入联系电话",
trigger: "change"
}
],
email: [
{
required: true,
message: "请输入邮箱",
trigger: "change"
}
],
updateCause: [
{
required: true,
message: "请输入变更原因",
trigger: "change"
}
],
},
uploadUrl: "",
fileUrl: "",
certFileUrl: "",
url: 'http://127.0.0.1:9996/udiwms/image/register/file/getImage?type=image1&name=t11111.jpg',
certQuery: {
deviceCode:"",
page: 1,
limit: 20,
},
deviceRepair : {
false: {key: "NORMAL", tagType: "warning", desc: "未完成"},
true: {key: "NORMAL", tagType: "success", desc: "已完成"},
},
expire: {
true: "已完成",
false: "未完成"
},
upkeepList: [],
certTotal: 0,
certLoading: false,
addCertVisible: false,
salesmanQuery: {
name: "",
page: 1,
limit: 20
},
salesmanList: [],
salesmanTotal: 0,
salesmanLoading: false,
addSalesmanVisible: false,
certTypeMap: {
1: '身份证'
},
selectLocalVisible: false,
productQuery: {
ylqxzcrbarmc: "",
cpmctymc: "",
ggxh: "",
page: 1,
limit: 20
},
maintainsList: [],
productList: [],
productTotal: 0,
productLoading: false,
uuid: null,
companyApplyUpdateVisible: false,
companyEditDisabled: true,
companyEditButtonStr: "编辑",
addType: "2", //12
checkFlag: {
0: "草稿",
1: "已通过",
2: "已拒绝",
3: "变更未审核",
6: "未审核",
},
editTye: 1,
selectCorpVisible: false,
selectCertVisible: false,
certType: 1,
customerId: null,
};
}
,
methods: {
searchData(query) {
console.log("完成!")
console.log(query)
this.idQuery = {...query}
this.getDeviceCertList();
},
//
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList = response.data;
}
});
this.imgViewerVisible = true;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
selectBasicCorp() {
this.selectCorpVisible = true;
},
cancelDialog() {
this.closeDialog();
},
//
closeLocalDialog() {
this.addCertVisible = false;
this.selectCertVisible = false;
// this.getCompanyCertList();
this.getDeviceCertList();
}
,
//
addCert(row) {
if (isBlank(this.inputQuery.devCodeFk)) {
return this.$message.error("请先选择设备");
}
console.log(this.inputQuery.devCodeFk)
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.formName = "edit"
this.inputQuery.formData = row;
this.editTye = 2;
} else {
this.formName = "add"
this.inputQuery.formData = {};
this.inputQuery.formData.addType = 2;
this.editTye = 1;
}
this.addCertVisible = true;
}
,
//
certHandleCurrentChange(val) {
this.certQuery.page = val.page;
// this.getCompanyCertList();
this.getDeviceCertList();
},
getBasicUnitMaintainsList() {
getCorpList()
.then((response) => {
this.maintainsList = response.data || [];
})
.catch(() => {
this.maintainsList = [];
});
},
getDeviceCertList() {
this.certLoading = true;
// let certRuery = {}
// this.certQuery.customerId = this.inputEdit.customerId;
// console.log("idQuery")
// console.log(this.idQuery)
this.certQuery.deviceCode = this.rowData.deviceCode
this.inputQuery={...this.idQuery};
this.inputQuery.devCodeFk=this.idQuery.devCodeFk;
// console.log(this.inputQuery);
// console.log("this.certQuery:")
// console.log(this.certQuery)
deviceUpkeepByUserPage(this.certQuery)
.then((response) => {
this.certLoading = false;
this.upkeepList = response.data.list || [];
this.certTotal = response.data.total;
console.log("获取到的保养记录的数据",this.upkeepList)
})
.catch(() => {
this.certLoading = false;
this.certList = [];
});
},
deleteDeviceCert(row) {
this.$confirm("是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
let tquery = {
id: row.id,
filePath: row.filePath,
};
deleteDeviceCert(tquery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getDeviceCertList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
},
created() {
console.log("dangqian jieshou de shangyihang shujv 0",this.rowData)
this.getDeviceCertList();
this.headers = {
ADMINID: store.getters.adminId,
ADMINTOKEN: store.getters.token,
};
},
components: {
draggable, deviceAddCert, corpMaintainSelect, supCertSetSelectDialog, ElImageViewer
}
}
;
</script>
<style scoped>
</style>

@ -3,8 +3,9 @@
// import {deviceCheckDetailItemPage} from "@/api/dev/deviceCheckDetailItemApi";
import {getLoading} from "@/utils";
import { deviceUpkeepPage, deviceCheckPrint, deviceCheckPrintByDeviceCode } from '@/api/dev/deviceUpkeepApi'
import { deviceCheckDetailItemPage } from '@/api/dev/deviceCheckDetailItemApi'
import { deviceUpkeepDetailItemPage } from '@/api/dev/deviceUpkeepDetailItemApi'
import { deviceUpkeepDetailPage } from '@/api/dev/deviceUpkeepDetailApi'
import deptDeviceUpkeepDetail from "@/views/dev/deptDeviceUpkeepDetail";
@ -34,6 +35,9 @@ let itemQuery = {
export default {
name: "deviceUpkeep",
computed: {},
components: {
deptDeviceUpkeepDetail
},
data() {
return {
loading: false,
@ -53,6 +57,8 @@ export default {
itemTotal:0,
itemList:[],
itemLoading:false,
checkTipDialogVisible:false,
curDeviceData: null,
//===================================================
}
},
@ -100,8 +106,22 @@ export default {
// })
// }
// },
closeCheckDialog() {
this.checkTipDialogVisible = false
this.getDetailItemList()
},
startUpkeep(row) {
this.itemQuery = {
...itemQuery,
taskId: row.taskId,
deviceCode: row.deviceCode,
title: `[${row.deviceCode}]--${row.productName}(${row.nameCode})`
}
this.curDeviceData = row
this.checkTipDialogVisible = true
},
openItem(row) {
console.log("wobuzhidao sehns ")
// console.log("wobuzhidao sehns ")
this.itemQuery = {
...itemQuery,
taskId: row.taskId,
@ -113,7 +133,7 @@ export default {
},
getDetailItemList() {
this.itemLoading = true
deviceCheckDetailItemPage(this.itemQuery).then(res => {
deviceUpkeepDetailItemPage(this.itemQuery).then(res => {
this.itemLoading = false
if (res.code != 20000) {
this.$message.error(res.message)
@ -133,7 +153,7 @@ export default {
}
this.clickRow = row
this.detailQuery = {...detailQuery, taskId: row.taskId}
console.log("什么意思????")
// console.log("什么意思????")
this.getDetailList()
},
getDetailList() {

@ -486,14 +486,14 @@ export default {
}
this.createFlag = true;
},
// search() {
// this.query.page = 1
// this.getList()
// },
// onReset() {
// this.query = {...query}
// this.getList()
// },
search() {
this.query.page = 1
this.getList()
},
onReset() {
this.query = {...query}
this.getList()
},
getList() {
this.loading = true
deviceUpkeepPlanPage(this.query).then(res => {

Loading…
Cancel
Save