From a5a80af9017fdb8d378eb6f682e24dae99d19977 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期五, 15 八月 2025 10:12:09 +0800
Subject: [PATCH] 孔加工工具增加字段
---
src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue | 529 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 284 insertions(+), 245 deletions(-)
diff --git a/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
index 8c5b9f0..4a77dba 100644
--- a/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
@@ -5,70 +5,72 @@
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
+ :mask-closable="false"
@ok="handleOk"
@cancel="handleCancel"
cancelText="鍏抽棴">
-
- <a-spin :spinning="confirmLoading">
- <a-form-model ref="form" :model="model" :rules="validatorRules">
+ <a-spin :spinning="spinning">
+ <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row :gutter="24">
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderNum" label="宸ュ崟鍙�">
- <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled />
+ <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 :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栫爜">
+ <a-form-model-item prop="equipmentId" label="璁惧缂栫爜">
<maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
:maintenanceCategory="maintenanceCategory"
- @autocompleteForm="autocompleteForm"></maintenance-equipment-select>
+ @autocompleteForm="autocompleteForm"
+ :disabled="editable"></maintenance-equipment-select>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardName" label="鏍囧噯鍚嶇О">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled />
+ <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-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenanceDate" label="淇濆吇鏃ユ湡">
+ <a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡">
<a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
- style="width: 100%" />
+ style="width: 100%"/>
</a-form-model-item>
</a-col>
<a-col :span="8">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator" label="淇濆吇浜�">
- <j-dict-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�"
- dictCode="sys_user,realname,username,username!='admin' order by create_time" />
+ <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 :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
- <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled />
+ <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
+ <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
- <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" />
+ <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/>
</a-form-model-item>
</a-row>
<a-row :gutter="24">
- <j-vxe-table
- ref="editableDetailTable"
- :rowNumber="true"
- :rowSelection="true"
- :bordered="true"
- :alwaysEdit="true"
- :toolbar="true"
- :toolbarConfig="detail.toolbarConfig"
- keep-source
- :height="300"
- :loading="detail.loading"
- :dataSource="detail.dataSource"
- :columns="detail.columns"
- style="margin-top: 8px;" />
+ <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-form-model>
</a-spin>
@@ -76,229 +78,266 @@
</template>
<script>
-import { getAction, httpAction } from '@/api/manage'
-import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
-import { JVXETypes } from '@comp/jeecg/JVxeTable'
-import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
+ import { getAction, httpAction } from '@/api/manage'
+ import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
+ import { JVXETypes } from '@comp/jeecg/JVxeTable'
+ import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
-export default {
- name: 'EamWeekMaintenanceOrderModal',
- mixins: [JVxeTableModelMixin],
- components: {
- MaintenanceEquipmentSelect
- },
- data() {
- return {
- title: '鎿嶄綔',
- visible: false,
- editable: false,
- model: {},
- maintenanceCategory: 'WEEK_MAINTENANCE',
- labelCol: {
- xs: { span: 24 },
- sm: { span: 6 }
- },
- wrapperCol: {
- xs: { span: 24 },
- sm: { span: 16 }
- },
- labelColLong: {
- xs: { span: 24 },
- sm: { span: 2 }
- },
- wrapperColLong: {
- xs: { span: 24 },
- sm: { span: 21 }
- },
- confirmLoading: false,
- validatorRules: {
- equipmentId: [
- { required: true, message: '璇烽�夋嫨璁惧!' }
- ],
- maintenanceDate: [
- { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
- ]
- },
- url: {
- add: '/eam/weekMaintenanceOrder/add',
- edit: '/eam/weekMaintenanceOrder/edit',
- standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
- detail: '/eam/weekMaintenanceOrderDetail/queryList'
- },
- detail: {
- loading: false,
- dataSource: [],
- columns: [
- {
- title: 'ID',
- key: 'id',
- type: JVXETypes.hidden
- },
- {
- title: 'orderId',
- key: 'orderId',
- type: JVXETypes.hidden
- },
- {
- title: '搴忓彿',
- key: 'itemCode',
- type: JVXETypes.inputNumber,
- width: '10%',
- align: 'center',
- validateRules: [
- { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
- ]
- },
- {
- title: '淇濆吇椤�',
- key: 'itemName',
- type: JVXETypes.textarea,
- width: '20%',
- align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
- ]
- },
- {
- title: '瀛愪繚鍏婚」',
- key: 'subItemName',
- type: JVXETypes.textarea,
- width: '25%',
- align: 'center'
- },
- {
- title: '淇濆吇瑕佹眰',
- key: 'itemDemand',
- type: JVXETypes.textarea,
- width: '30%',
- align: 'center',
- validateRules: [
- { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
- ]
- }
- ],
- 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 = []
+ export default {
+ name: 'EamWeekMaintenanceOrderModal',
+ mixins: [JVxeTableModelMixin],
+ components: {
+ MaintenanceEquipmentSelect
},
- edit(record) {
- // debugger
- this.model = Object.assign({}, record)
- this.visible = true
- this.editable = true
- this.detail.dataSource = []
- this.loadDetail(record.id)
- },
- close() {
- this.$emit('close')
- this.visible = false
- this.$refs.form.clearValidate()
- },
- 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 = ''
- let method = ''
- if (!this.model.id) {
- httpurl += this.url.add
- method = 'post'
- } else {
- 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)
+ data() {
+ return {
+ title: '鎿嶄綔',
+ visible: false,
+ editable: false,
+ model: {},
+ maintenanceCategory: 'WEEK_MAINTENANCE',
+ maintenanceOperatorOptions: [],
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 6 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 }
+ },
+ labelColLong: {
+ xs: { span: 24 },
+ sm: { span: 2 }
+ },
+ wrapperColLong: {
+ xs: { span: 24 },
+ sm: { span: 21 }
+ },
+ confirmLoading: false,
+ spinning: false,
+ validatorRules: {
+ equipmentId: [
+ { required: true, message: '璇烽�夋嫨璁惧!' }
+ ],
+ maintenanceDate: [
+ { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
+ ]
+ },
+ url: {
+ add: '/eam/weekMaintenanceOrder/add',
+ edit: '/eam/weekMaintenanceOrder/edit',
+ standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
+ detail: '/eam/weekMaintenanceOrderDetail/queryList',
+ userSelect: '/eam/user_select/list'
+ },
+ detail: {
+ loading: false,
+ dataSource: [],
+ columns: [
+ {
+ title: 'ID',
+ key: 'id',
+ type: JVXETypes.hidden
+ },
+ {
+ title: 'orderId',
+ key: 'orderId',
+ type: JVXETypes.hidden
+ },
+ {
+ title: '搴忓彿',
+ key: 'itemCode',
+ type: JVXETypes.inputNumber,
+ width: '10%',
+ align: 'center',
+ validateRules: [
+ { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
+ ]
+ },
+ {
+ title: '淇濆吇椤�',
+ key: 'itemName',
+ type: JVXETypes.textarea,
+ width: '20%',
+ align: 'center',
+ validateRules: [
+ { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
+ ]
+ },
+ {
+ title: '瀛愪繚鍏婚」',
+ key: 'subItemName',
+ type: JVXETypes.textarea,
+ width: '25%',
+ align: 'center'
+ },
+ {
+ title: '淇濆吇瑕佹眰',
+ key: 'itemDemand',
+ type: JVXETypes.textarea,
+ width: '30%',
+ align: 'center',
+ validateRules: [
+ { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
+ ]
}
- }).finally(() => {
- that.confirmLoading = false
- })
- } else {
- return false
+ ],
+ toolbarConfig: {
+ // prefix 鍓嶇紑锛泂uffix 鍚庣紑
+ slot: ['prefix', 'suffix'],
+ // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
+ btn: ['add', 'remove', 'clearSelection']
+ }
}
- })
- },
- handleCancel() {
- this.close()
- },
- autocompleteForm(selectObj) {
- //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶
- //鍔炴硶涓�
- const newObj = {
- standardName: selectObj.standardName,
- maintenancePeriod: selectObj.maintenancePeriod,
- standardId : selectObj.id,
- };
- 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)
- // console.log('model', this.model)
- if (!this.model.id) {
- this.loadStandardDetail(selectObj.id)
}
},
- //鍔犺浇璇︽儏鏁版嵁
- loadStandardDetail(standardId) {
- if (standardId) {
- getAction(this.url.standardDetail, { standardId: standardId }).then(res => {
- if (res.success) {
- this.detail.dataSource = res.result.map(item => ({
- itemCode: item.itemCode,
- itemName: item.itemName,
- subItemName: item.subItemName,
- itemDemand: item.itemDemand
- }))
- }
- })
- }
+ created() {
},
- //鏍囧噯閫夋嫨鍙樺寲
- loadDetail(orderId) {
- if (orderId) {
- getAction(this.url.detail, { orderId: orderId }).then(res => {
- if (res.success) {
- this.detail.dataSource = [...res.result]
- }
- })
- }
- }
+ methods: {
+ add() {
+ //鍒濆鍖栭粯璁ゅ��
+ this.model = {}
+ this.visible = true
+ this.editable = false
+ this.detail.dataSource = []
+ },
+ edit(record) {
+ this.model = Object.assign({}, record)
+ this.visible = true
+ this.editable = true
+ this.detail.dataSource = []
+ this.loadDetail(record.id)
+ },
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.$refs.form.clearValidate()
+ },
+ 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 = ''
+ let method = ''
+ if (!this.model.id) {
+ httpurl += this.url.add
+ method = 'post'
+ } else {
+ 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
+ })
+ } 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,
+ subItemName: item.subItemName,
+ 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
+ })
+ }
+
+ }
}
-}
</script>
<style lang="less" scoped>
--
Gitblit v1.9.3