From 68155c57dff251d047081c972c3b3e5931a29bfa Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期四, 24 七月 2025 14:08:50 +0800
Subject: [PATCH] 技术鉴定工单页面列表增加自定义展示字段
---
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue | 362 ++++++++++++++++++++++-----------------------------
1 files changed, 159 insertions(+), 203 deletions(-)
diff --git a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
index 61258e3..45fdba0 100644
--- a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -1,92 +1,77 @@
<template>
- <j-modal
- :title="title"
- :width="1200"
- :visible="visible"
- :confirmLoading="confirmLoading"
- switchFullscreen
- centered
- :mask-closable="false"
- @ok="handleOk"
- @cancel="handleCancel"
- cancelText="鍏抽棴">
+ <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen centered
+ :mask-closable="false" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
<a-spin :spinning="spinning">
<a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
- <a-row :gutter="24">
+
+ <a-row>
<a-col :span="8">
<a-form-model-item prop="standardCode" label="宸ュ崟鍙�">
- <a-input placeholder="宸ュ崟鍙疯嚜鍔ㄧ敓鎴�" v-model="model.orderNum" readOnly/>
+ <a-input placeholder="宸ュ崟鍙疯嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item prop="equipmentId" label="璁惧缂栧彿">
- <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
- :maintenanceCategory="maintenanceCategory" :disabled="disabled"
+ <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+ <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" :allow-clear="false"
+ maintenanceCategory="POINT_INSPECTION" :disabled="!editable"
@autocompleteForm="autocompleteForm"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardName"/>
- </a-form-model-item>
- </a-col>
- </a-row>
- <a-row :gutter="24">
- <a-col :span="8">
- <a-form-model-item prop="standardCode" label="鏍囧噯缂栫爜">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardCode"/>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item label="淇濆吇鍛ㄦ湡">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" readOnly/>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item prop="operator" label="鐐规浜�">
- <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨鐐规浜�" :disabled="!model.equipmentId"
- :dictOptions="maintenanceOperatorOptions"/>
+ <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
+ <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardName"/>
</a-form-model-item>
</a-col>
</a-row>
- <a-row :gutter="24">
+ <a-row>
<a-col :span="8">
- <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate">
- <j-date :placeholder="!model.maintenancePeriod?'璇峰~鍐欎繚鍏诲懆鏈�':'璇烽�夋嫨鐐规鏃ユ湡'" v-model="model.inspectionDate"
- :disabled="!model.maintenancePeriod"
- @change="expirationTimeFrom(model.inspectionDate)" style="width: 100%"/>
+ <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜">
+ <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardCode"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item label="鐐规杩囨湡鏃堕棿">
- <j-date placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" v-model="model.expirationTime" disabled style="width: 100%"/>
+ <a-form-model-item label="淇濆吇鍛ㄦ湡">
+ <a-input v-model="model.maintenancePeriod" disabled/>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="8">
+ <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate">
+ <a-date-picker v-model="model.inspectionDate" @change="expirationTimeFrom(model.inspectionDate)"
+ :allow-clear="false" value-format="YYYY-MM-DD" style="width: 100%"/>
</a-form-model-item>
</a-col>
</a-row>
- <a-row :gutter="24">
+
+ <a-row>
+ <a-col :span="8">
+ <a-form-model-item label="鐐规杩囨湡鏃堕棿">
+ <a-date-picker placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" :value="model.expirationTime" disabled style="width: 100%"
+ value-format="YYYY-MM-DD"/>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+
+ <a-row>
<a-col :span="24">
<a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark">
<a-textarea v-model="model.remark" rows="3" placeholder="璇疯緭鍏ュ娉�"/>
</a-form-model-item>
</a-col>
</a-row>
- <a-row :gutter="24">
- <j-vxe-table
- ref="editableDetailTable"
- :rowNumber="true"
- :rowSelection="true"
- :bordered="true"
- :alwaysEdit="true"
- :toolbar="true"
- keep-source
- :height="300"
- :loading="detail.loading"
- :dataSource="detail.dataSource"
- :columns="detail.columns"
- style="margin-top: 8px;"/>
- </a-row>
+
+ <a-tabs default-active-key="1">
+ <a-tab-pane key="1" tab="鏃ョ偣妫�">
+ <j-vxe-table rowNumber bordered keep-source :height="300" always-edit :dataSource="detail.dayInspectionList"
+ :columns="detail.standardInspectionColumns"/>
+ </a-tab-pane>
+ <a-tab-pane key="2" tab="鍛ㄧ偣妫�" v-if="detail.weekInspectionList.length>0" forceRender>
+ <j-vxe-table rowNumber bordered always-edit keep-source :height="300"
+ :dataSource="detail.weekInspectionList"
+ :columns="detail.weekInspectionColumns"/>
+ </a-tab-pane>
+ </a-tabs>
</a-form-model>
</a-spin>
</j-modal>
@@ -97,7 +82,7 @@
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable'
import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
- import moment from 'dayjs'
+ import moment from 'moment'
export default {
name: 'EamMaintenanceStandardModal',
@@ -120,130 +105,138 @@
},
confirmLoading: false,
spinning: false,
- disabled: false,
+ editable: true,
validatorRules: {
- // standardName: [
- // { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�!' }
- // ],
inspectionDate: [
- { required: true, message: '璇烽�夋嫨鐐规鏃ユ湡!' }
+ { required: true, message: '璇烽�夋嫨鐐规鏃ユ湡', trigger: 'change' }
],
- // maintenancePeriod: [
- // { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈燂紝鍗曚綅锛氬ぉ!' }
- // ],
equipmentId: [
- { required: true, message: '璇烽�夋嫨璁惧!' }
+ { required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }
]
},
url: {
add: '/eam/eamInspectionOrder/add',
edit: '/eam/eamInspectionOrder/edit',
detail: '/eam/eamMaintenanceStandardDetail/queryList',
- detailOrder: '/eam/eamInspectionOrderDetail/queryList',
- userSelect: '/eam/user_select/list'
+ weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList'
},
- maintenanceCategory: 'POINT_INSPECTION',
- maintenanceOperatorOptions: [],
standardId: '',
- standardType: false,
detail: {
- loading: false,
- dataSource: [],
- columns: [
+ dayInspectionList: [],
+ weekInspectionList: [],
+ standardInspectionColumns: [
{
title: '搴忓彿',
key: 'itemCode',
- type: JVXETypes.inputNumber,
- width: '10%',
- align: 'center',
- validateRules: [
- { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
- ]
+ type: JVXETypes.normal,
+ width: 100,
+ align: 'center'
},
{
title: '淇濆吇椤�',
key: 'itemName',
- type: JVXETypes.textarea,
- width: '20%',
- align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
- ]
+ type: JVXETypes.normal,
+ align: 'center'
+ },
+ {
+ title: '淇濆吇瑙勮寖鎴栬姹�',
+ key: 'itemDemand',
+ type: JVXETypes.normal,
+ align: 'center'
+ }
+ ],
+ weekInspectionColumns: [],
+ weekInspectionOrderColumns: [
+ {
+ title: '搴忓彿',
+ key: 'itemCode',
+ type: JVXETypes.normal,
+ width: 60,
+ align: 'center'
+ },
+ {
+ title: '淇濆吇椤�',
+ key: 'itemName',
+ type: JVXETypes.normal,
+ align: 'center'
},
{
title: '淇濆吇瑕佹眰',
key: 'itemDemand',
- type: JVXETypes.textarea,
- width: '30%',
+ type: JVXETypes.normal,
+ align: 'center'
+ },
+ {
+ title: '鐐规缁撴灉',
+ key: 'inspectionResult',
+ type: JVXETypes.select,
+ dictCode: 'inspection_project_result',
align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
- ]
+ disabled: true
+ },
+ {
+ title: '寮傚父鎻忚堪',
+ key: 'exceptionDescription',
+ type: JVXETypes.normal,
+ align: 'center'
+ },
+ {
+ title: '寮傚父鏄惁鎶ヤ慨',
+ key: 'reportFlag',
+ type: JVXETypes.select,
+ ditCode: 'yn',
+ align: 'center',
+ disabled: true
}
]
}
}
},
- created() {
- },
methods: {
add() {
- this.model = {}
- this.detail.dataSource = []
+ this.model = { maintenancePeriod: 1 }
this.visible = true
- this.disabled = false
- this.standardType = false
+ this.editable = true
+ this.detail.dayInspectionList = []
+ this.detail.weekInspectionList = []
},
edit(record) {
- this.model = Object.assign({}, record)
- this.standardId = record.standardId
- this.disabled = true
- this.standardType = true
+ this.model = Object.assign({ maintenancePeriod: 1 }, record)
+ this.editable = false
this.visible = true
- this.detail.dataSource = []
- if (record && record.referenceFile) {
- let obj = JSON.parse(record.referenceFile)
- this.model.fileList = [obj]
- } else {
- this.model.fieldList = []
- }
- this.loadDetailOrder(record.id)
+ this.spinning = true
},
async handleOk() {
const that = this
- let errMap = await that.$refs.editableDetailTable.validateTable()
- if (errMap) {
- this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
- return
- }
// 瑙﹀彂琛ㄥ崟楠岃瘉
this.$refs.form.validate(valid => {
if (valid) {
- let tableData = that.$refs.editableDetailTable.getTableData()
- let removeData = that.$refs.editableDetailTable.getDeleteData()
- that.model.tableDetailList = [...tableData]
- that.model.removeDetailList = [...removeData]
-
that.confirmLoading = that.spinning = true
- let httpurl = ''
+ let httpUrl = ''
let method = ''
if (!this.model.id) {
- httpurl += this.url.add
+ httpUrl += this.url.add
method = 'post'
} else {
- httpurl += this.url.edit
+ httpUrl += this.url.edit
method = 'put'
}
this.model.standardId = this.standardId
- httpAction(httpurl, this.model, method).then((res) => {
+ httpAction(httpUrl, this.model, method).then((res) => {
if (res.success) {
- that.$message.success(res.message)
+ that.$notification.success({
+ message: '娑堟伅',
+ description: res.message
+ })
that.$emit('ok')
that.close()
} else {
- that.$message.warning(res.message)
+ that.$notification.warning({
+ message: '娑堟伅',
+ description: res.message
+ })
}
}).finally(() => {
that.confirmLoading = that.spinning = false
@@ -256,94 +249,61 @@
autocompleteForm(selectObj) {
this.model.standardName = selectObj.standardName
- this.model.maintenancePeriod = selectObj.maintenancePeriod
this.model.standardCode = selectObj.standardCode
- // 鑻ュ彇娑堣澶囬�夋嫨鍚庝繚鍏诲懆鏈熶负绌哄垯闇�娓呯┖鐐规鏃ユ湡鍜岀偣妫�杩囨湡鏃堕棿
- if (!this.model.equipmentId) {
- delete this.model.inspectionDate
- delete this.model.expirationTime
- } else {
- // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂�
- if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
- }
- if (!this.standardType) {
- console.log('this.standardType', this.standardType)
- this.standardId = selectObj.id
- this.loadDetail(selectObj.id)
- }
- this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId))
+ this.standardId = selectObj.id
+ this.detail.dayInspectionList = []
+ this.detail.weekInspectionList = []
+ this.loadDetail()
},
expirationTimeFrom(date) {
+ // 閫夋嫨鐐规鏃ユ湡鍚庤幏鍙栫偣妫�宸ュ崟鏄庣粏鍒楄〃
+ if (this.model.equipmentId) this.getWeekInspectionOrderListByApi()
//杩囨湡鏃堕棿鏄垵濮嬫椂闂�+淇濆吇鍛ㄦ湡
if (date && this.model.maintenancePeriod) {
// 杞崲涓烘椂闂存埑瀛楃涓诧紙鎴栨寚瀹氭牸寮忥級
- this.model.expirationTime = moment(date)
- .add(this.model.maintenancePeriod, 'days')
- .format('YYYY-MM-DD')
+ this.model.expirationTime = moment(date).add(this.model.maintenancePeriod, 'days').format('YYYY-MM-DD')
} else {
this.model.expirationTime = null // 娓呯┖鏃犳晥鍊�
}
},
//鍔犺浇璇︽儏鏁版嵁
- loadDetail(standardId) {
- this.detail.dataSource = []
- if (standardId) {
- console.log('standardId', standardId)
- this.spinning = true
- getAction(this.url.detail, { standardId: standardId })
- .then(res => {
- if (res.success) {
- this.detail.dataSource = [...res.result]
- }
- })
- .finally(() => {
- this.spinning = false
- })
- }
- },
+ loadDetail() {
- loadDetailOrder(orderId) {
- if (orderId) {
- this.spinning = true
- getAction(this.url.detailOrder, { orderId: orderId })
- .then(res => {
- if (res.success) {
- this.detail.dataSource = [...res.result]
- }
- })
- .finally(() => {
- this.spinning = false
- })
- }
- },
-
- loadMaintenanceOperatorList(equipmentId) {
- this.maintenanceOperatorOptions = []
- let params = { positionCode: 'PCR0001' }
- if (equipmentId) {
- params.equipmentId = equipmentId
- } else {
- delete this.model.operator
- return
- }
- const that = this
- getAction(this.url.userSelect, params)
+ this.spinning = true
+ getAction(this.url.detail, { standardId: this.standardId })
.then(res => {
if (res.success) {
- that.maintenanceOperatorOptions = res.result.map(item => ({
- key: item.id,
- value: item.username,
- text: item.realname
- }))
- if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator
- } else {
- if (that.model.operator) delete that.model.operator
+ this.detail.dayInspectionList = res.result.filter(item => item.itemCategory == 'DAY_INSPECTION')
+ this.detail.weekInspectionList = res.result.filter(item => item.itemCategory == 'WEEK_INSPECTION')
+ this.detail.weekInspectionColumns = this.detail.standardInspectionColumns
+ // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂�
+ if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
}
})
- .catch(err => {
- if (that.model.operator) delete that.model.operator
+ .finally(() => {
+ if (!this.model.inspectionDate) this.spinning = false
+ })
+ },
+
+ // 鑾峰彇鐐规宸ュ崟涓殑鍛ㄧ偣妫�鏄庣粏
+ getWeekInspectionOrderListByApi() {
+ this.spinning = true
+ getAction(this.url.weekInspectionOrderList, {
+ standardId: this.standardId,
+ inspectionDate: this.model.inspectionDate
+ })
+ .then(res => {
+ if (res.success) {
+ if (res.result.list.length > 0) {
+ this.detail.weekInspectionList = res.result.list
+ this.detail.weekInspectionColumns = this.detail.weekInspectionOrderColumns
+ }
+ }
+ })
+ .finally(() => {
+ this.spinning = false
})
},
@@ -358,8 +318,4 @@
}
}
}
-</script>
-
-<style lang="less" scoped>
-
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file
--
Gitblit v1.9.3