From bdee6fec40993873c7031e8c983cbc561d079157 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 17 七月 2025 16:19:06 +0800
Subject: [PATCH] 点检导出按钮
---
src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue | 347 +++++++++++++++++++++------------------------------------
1 files changed, 127 insertions(+), 220 deletions(-)
diff --git a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
index 07af5c0..c0a5293 100644
--- a/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
@@ -1,105 +1,82 @@
<template>
- <j-modal
- :title="title"
- :width="1200"
- :visible="visible"
- :confirmLoading="confirmLoading"
- switchFullscreen
- :mask-closable="false"
- @ok="handleOk"
- @cancel="handleCancel"
- cancelText="鍏抽棴">
-
+ <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
+ :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="orderNum" label="宸ュ崟鍙�">
<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="璁惧缂栫爜">
- <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
- :maintenanceCategory="maintenanceCategory"
- @autocompleteForm="autocompleteForm"
- :disabled="editable"></maintenance-equipment-select>
+ <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+ <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId"
+ maintenanceCategory="SECOND_MAINTENANCE" :allowClear="false"
+ @autocompleteForm="autocompleteForm" :disabled="!editable"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О">
+ <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
<a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/>
</a-form-model-item>
</a-col>
</a-row>
- <a-row :gutter="24">
+ <a-row>
<a-col :span="8">
<a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡">
- <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
+ <a-date-picker v-model="model.maintenanceDate" value-format="YYYY-MM-DD" :allowClear="false"
style="width: 100%"/>
</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>
- </a-col>
- <a-col :span="8">
- <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
+ <a-form-model-item label="淇濆吇鍛ㄦ湡">
+ <a-input v-model="model.maintenancePeriod" disabled/>
</a-form-model-item>
</a-col>
</a-row>
- <a-row :gutter="24">
+ <a-row>
<a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
<a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/>
</a-form-model-item>
</a-row>
- <a-row :gutter="24">
- <a-spin :spinning="detail.loading">
- <j-vxe-table
- ref="editableDetailTable"
- :rowNumber="true"
- :rowSelection="true"
- :bordered="true"
- :alwaysEdit="true"
- :toolbar="true"
- :toolbarConfig="detail.toolbarConfig"
- keep-source
- :height="300"
- :dataSource="detail.dataSource"
- :columns="detail.columns"
- style="margin-top: 8px;"/>
- </a-spin>
- </a-row>
+
+ <a-tabs default-active-key="1">
+ <a-tab-pane tab="鎿嶄綔宸�" key="1">
+ <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.operatorMaintenanceList"
+ :columns="detail.columns"/>
+ </a-tab-pane>
+ <a-tab-pane tab="缁翠慨宸�" key="2" forceRender>
+ <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.repairerMaintenanceList"
+ :columns="detail.columns"/>
+ </a-tab-pane>
+ </a-tabs>
</a-form-model>
</a-spin>
</j-modal>
</template>
<script>
-import { getAction, httpAction } from '@/api/manage'
-import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
-import { JVXETypes } from '@comp/jeecg/JVxeTable'
+ import { getAction, httpAction } from '@/api/manage'
+ import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
+ import { JVXETypes } from '@comp/jeecg/JVxeTable'
-export default {
- name: "EamSecondMaintenanceOrderModal",
+ export default {
+ name: 'EamSecondMaintenanceOrderModal',
components: { MaintenanceEquipmentSelect },
- data () {
+ data() {
return {
- title:"鎿嶄綔",
+ title: '鎿嶄綔',
visible: false,
- editable: false,
+ editable: true,
model: {},
- maintenanceCategory: 'SECOND_MAINTENANCE',
labelCol: {
xs: { span: 24 },
sm: { span: 6 }
},
wrapperCol: {
xs: { span: 24 },
- sm: { span: 16 }
+ sm: { span: 15 }
},
labelColLong: {
xs: { span: 24 },
@@ -111,24 +88,23 @@
},
confirmLoading: false,
spinning: false,
- validatorRules:{
+ validatorRules: {
equipmentId: [
- { required: true, message: '璇烽�夋嫨璁惧!' }
+ { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储', trigger: 'change' }
],
maintenanceDate: [
- { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
+ { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡', trigger: 'change' }
]
},
url: {
- add: "/eam/secondMaintenanceOrder/add",
- edit: "/eam/secondMaintenanceOrder/edit",
+ add: '/eam/secondMaintenanceOrder/add',
+ edit: '/eam/secondMaintenanceOrder/edit',
standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
- detail: '/eam/secondMaintenanceOrderDetail/queryList',
- userSelect: '/eam/user_select/list'
+ detail: '/eam/secondMaintenanceOrderDetail/queryList'
},
detail: {
- loading: false,
- dataSource: [],
+ operatorMaintenanceList: [],
+ repairerMaintenanceList: [],
columns: [
{
title: 'ID',
@@ -143,199 +119,130 @@
{
title: '搴忓彿',
key: 'itemCode',
- type: JVXETypes.inputNumber,
- width: '10%',
- align: 'center',
- validateRules: [
- { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
- ]
- },
- {
- title: '閮ㄤ綅',
- key: 'itemPart',
- type: JVXETypes.textarea,
- width: '25%',
+ type: JVXETypes.normal,
+ width: 60,
align: 'center'
},
{
title: '淇濆吇椤�',
key: 'itemName',
- type: JVXETypes.textarea,
- width: '20%',
- align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
- ]
- },
- {
- title: '淇濆吇瑕佹眰',
- key: 'itemDemand',
- type: JVXETypes.textarea,
- width: '30%',
- align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
- ]
+ type: JVXETypes.normal,
+ align: 'center'
}
- ],
- toolbarConfig: {
- // prefix 鍓嶇紑锛泂uffix 鍚庣紑
- slot: ['prefix', 'suffix'],
- // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
- btn: ['add', 'remove', 'clearSelection']
- }
+ ]
}
}
- },
- created () {
},
methods: {
add() {
//鍒濆鍖栭粯璁ゅ��
- this.model = {}
- this.visible = true
- this.editable = false
- this.detail.dataSource = []
- },
- edit(record) {
- this.model = Object.assign({}, record)
+ this.model = { maintenancePeriod: 6 }
this.visible = true
this.editable = true
- this.detail.dataSource = []
+ this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
+ },
+
+ edit(record) {
+ this.model = Object.assign({ maintenancePeriod: 6 }, record)
+ this.visible = true
+ this.editable = false
+ this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
this.loadDetail(record.id)
},
- close() {
- this.$emit('close')
- this.visible = false
- this.$refs.form.clearValidate()
+
+ autocompleteForm(selectObj) {
+ this.$set(this.model, 'standardName', selectObj.standardName)
+ this.$set(this.model, 'standardId', selectObj.id)
+ this.$set(this.model, 'equipmentId', selectObj.equipmentId)
+ if (!this.model.id) this.loadStandardDetail(selectObj.id)
},
+
+ /**
+ * 鑾峰彇淇濆吇瑙勮寖鏁版嵁
+ * @param standardId 瑙勮寖Id
+ */
+ loadStandardDetail(standardId) {
+ this.spinning = true
+ getAction(this.url.standardDetail, { standardId })
+ .then(res => {
+ if (res.success) {
+ this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
+ this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
+ }
+ })
+ .finally(() => {
+ this.spinning = false
+ })
+ },
+
+ /**
+ * 鑾峰彇浜屼繚宸ュ崟鏄庣粏
+ * @param orderId 宸ュ崟Id
+ */
+ loadDetail(orderId) {
+ this.spinning = true
+ getAction(this.url.detail, { orderId })
+ .then(res => {
+ if (res.success) {
+ this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
+ this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
+ }
+ })
+ .finally(() => {
+ this.spinning = false
+ })
+ },
+
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 = true
- let httpurl = ''
+ that.confirmLoading = that.spinning = true
+ 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'
}
- httpAction(httpurl, this.model, method).then((res) => {
- if (res.success) {
- that.$message.success(res.message)
- that.$emit('ok')
- that.close()
- } else {
- that.$message.warning(res.message)
- }
- }).finally(() => {
- that.confirmLoading = false
- })
+ httpAction(httpUrl, this.model, method)
+ .then((res) => {
+ if (res.success) {
+ that.$notification.success({
+ message: '娑堟伅',
+ description: res.message
+ })
+ that.$emit('ok')
+ that.close()
+ } else {
+ that.$notification.warning({
+ message: '娑堟伅',
+ description: res.message
+ })
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = that.spinning = false
+ })
} else {
return false
}
})
},
+
handleCancel() {
this.close()
},
- autocompleteForm(selectObj) {
- //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶
- //鍔炴硶涓� validatorRules equipmentId 杩樻槸鏈夐棶棰�
- // const newObj = {
- // standardName: selectObj.standardName,
- // maintenancePeriod: selectObj.maintenancePeriod,
- // standardId : selectObj.id,
- // equipmentId: selectObj.equipmentId,
- // };
- // this.model = Object.assign({}, newObj, this.model)
- //鍔炴硶浜�
- this.$set(this.model, 'standardName', selectObj.standardName)
- this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
- this.$set(this.model, 'standardId', selectObj.id)
- this.$set(this.model, 'equipmentId', selectObj.equipmentId)
- // console.log('model', this.model)
- if (!this.model.equipmentId) delete this.model.operator
- if (!this.model.id) {
- this.loadStandardDetail(selectObj.id)
- }
- this.loadMaintenanceOperatorList(this.model.equipmentId)
- },
- //鍔犺浇璇︽儏鏁版嵁
- loadStandardDetail(standardId) {
- this.detail.dataSource = []
- if (standardId) {
- this.spinning = true
- getAction(this.url.standardDetail, { standardId: standardId })
- .then(res => {
- if (res.success) {
- this.detail.dataSource = res.result.map(item => ({
- itemCode: item.itemCode,
- itemName: item.itemName,
- itemPart: item.itemPart,
- itemDemand: item.itemDemand
- }))
- }
- })
- .finally(() => {
- this.spinning = false
- })
- }
- },
- //鏍囧噯閫夋嫨鍙樺寲
- loadDetail(orderId) {
- if (orderId) {
- getAction(this.url.detail, { orderId: orderId }).then(res => {
- if (res.success) {
- this.detail.dataSource = [...res.result]
- }
- })
- }
- },
- loadMaintenanceOperatorList(equipmentId) {
- this.maintenanceOperatorOptions = []
- let params = { positionCode: 'PCR0001' }
- if (equipmentId) {
- params.equipmentId = equipmentId
- }
- else return
- const that = this
- getAction(this.url.userSelect, params)
- .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
- }
- })
- .catch(err => {
- if (that.model.operator) delete that.model.operator
- })
+
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.$refs.form.clearValidate()
}
}
}
</script>
-
-<style lang="less" scoped>
-
-</style>
\ No newline at end of file
--
Gitblit v1.9.3