From 1a5ab0d78c55273b173397ebd8ed06b0ba8978cd Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期四, 14 三月 2024 16:44:57 +0800
Subject: [PATCH] xg
---
src/views/eam/modules/maintenancePlan/EquipmentMaintenancePlanForm.vue | 570 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 339 insertions(+), 231 deletions(-)
diff --git a/src/views/eam/modules/maintenancePlan/EquipmentMaintenancePlanForm.vue b/src/views/eam/modules/maintenancePlan/EquipmentMaintenancePlanForm.vue
index 369aae2..fd6eaa7 100644
--- a/src/views/eam/modules/maintenancePlan/EquipmentMaintenancePlanForm.vue
+++ b/src/views/eam/modules/maintenancePlan/EquipmentMaintenancePlanForm.vue
@@ -2,30 +2,94 @@
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<!-- 涓昏〃鍗曞尯鍩� -->
- <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+ <a-form-model
+ ref="form"
+ :model="model"
+ :rules="validatorRules"
+ slot="detail"
+ >
<a-row>
- <a-col :span="12" >
- <a-form-model-item label="璁″垝鍗曞彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num">
- <a-input v-model="model.num" placeholder="璇疯緭鍏ヨ鍒掑崟鍙�" ></a-input>
+ <a-col :span="12">
+ <a-form-model-item
+ label="璁″垝鍗曞彿"
+ :labelCol="labelCol"
+ :wrapperCol="wrapperCol"
+ prop="num"
+ >
+ <a-input
+ v-model="model.num"
+ placeholder="璇疯緭鍏ヨ鍒掑崟鍙�"
+ ></a-input>
</a-form-model-item>
</a-col>
- <a-col :span="12" >
- <a-form-model-item label="璁″垝鍗曠被鍨�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
+ <!-- 閫夋嫨妗嗛�夐」涓�0锛氭墍鏈夎澶� 1锛氶儴鍒嗚澶� -->
+ <a-col :span="12">
+ <a-form-model-item
+ label="淇濆吇璁惧閫夋嫨"
+ :labelCol="labelCol"
+ :wrapperCol="wrapperCol"
+ prop="selectOption"
+ >
+ <a-select
+ v-model="model.selectOption"
+ placeholder="璇烽�夋嫨淇濆吇璁惧"
+ >
+ <a-select-option
+ v-for="item in selectOptions"
+ :key="item.value"
+ :value="item.value"
+ >{{item.label}}</a-select-option>
+ </a-select>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-model-item
+ label="璁″垝鍗曠被鍨�"
+ :labelCol="labelCol"
+ :wrapperCol="wrapperCol"
+ prop="type"
+ >
<j-dict-select-tag
allow-clear
placeholder="璇烽�夋嫨璁″垝鍗曠被鍨�"
:triggerChange="true"
dictCode="maintenance_type"
- v-model="model.type"
+ v-model="model.type"
+ @change="(e)=>handleClearTable(e)"
/>
+ </a-form-model-item>
+ </a-col>
+ <!-- 璁″垝寮�濮嬫椂闂达紝璁″垝缁撴潫鏃堕棿 -->
+ <a-col :span="12">
+ <a-form-model-item
+ label="璁″垝鏃堕棿"
+ :labelCol="labelCol"
+ :wrapperCol="wrapperCol"
+ prop="ranges"
+ >
+ <a-range-picker
+ v-model="model.ranges"
+ style="width:100%"
+ format="YYYY-MM-DD HH:mm:ss"
+ showTime
+ :placeholder="[ '璁″垝寮�濮嬫椂闂�', '璁″垝缁撴潫鏃堕棿']"
+ @change="changeDate"
+ />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
- <!-- 瀛愯〃鍗曞尯鍩� -->
- <a-tabs v-model="activeKey" @change="handleChangeTabs">
- <a-tab-pane tab="淇濆吇璁″垝鏄庣粏" :key="refKeys[0]" :forceRender="true">
+ <!-- 瀛愯〃鍗曞尯鍩� -->
+ <a-tabs
+ v-model="activeKey"
+ @change="handleChangeTabs"
+ >
+ <a-tab-pane
+ tab="淇濆吇璁″垝鏄庣粏"
+ :key="refKeys[0]"
+ :forceRender="true"
+ >
<j-vxe-table
keep-source
:ref="refKeys[0]"
@@ -40,254 +104,276 @@
bordered
:alwaysEdit="true"
:toolbarConfig='toolbarConfig'
- >
+ >
<template slot='toolbarPrefix'>
- <a-button type='primary' @click='standardSelect' :disabled="formDisabled" icon="plus">璁惧-淇濆吇鏍囧噯
+ <a-button
+ type='primary'
+ @click='standardSelect'
+ :disabled="formDisabled||model.type===null||model.type===undefined||model.type===''||model.selectOption!=='1'"
+ icon="plus"
+ >璁惧-淇濆吇鏍囧噯
</a-button>
</template>
</j-vxe-table>
</a-tab-pane>
</a-tabs>
- <standard-select @selectionRows='selectionRows' ref='standardSelectModel' ></standard-select>
+ <standard-select
+ @selectionEquipmentRows='selectionRows'
+ :maintenanceType="model.type"
+ ref='standardSelectModel'
+ ></standard-select>
</a-spin>
</template>
<script>
- import { getAction } from '@/api/manage'
- import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
- import { JVXETypes } from '@/components/jeecg/JVxeTable'
- import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
- import { validateDuplicateValue } from '@/utils/util'
- import JFormContainer from '@/components/jeecg/JFormContainer'
- import StandardSelect from './StandardSelect'
- import { duplicateCheck } from '@/api/api'
- import dayjs from 'dayjs'
+import { getAction } from '@/api/manage'
+import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
+import { JVXETypes } from '@/components/jeecg/JVxeTable'
+import { getRefPromise, VALIDATE_FAILED } from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
+import { validateDuplicateValue } from '@/utils/util'
+import JFormContainer from '@/components/jeecg/JFormContainer'
+import StandardSelect from './StandardSelect'
+import { duplicateCheck } from '@/api/api'
+import dayjs from 'dayjs'
- export default {
- name: 'EquipmentMaintenancePlanForm',
- mixins: [JVxeTableModelMixin],
- components: {
- JFormContainer,
- StandardSelect,
- dayjs
- },
- data() {
- return {
- toolbarConfig: {
+export default {
+ name: 'EquipmentMaintenancePlanForm',
+ mixins: [JVxeTableModelMixin],
+ components: {
+ JFormContainer,
+ StandardSelect,
+ dayjs
+ },
+ data() {
+ return {
+ ranges: [],
+ selectOptions: [
+ { label: '鎵�鏈夎澶�', value: '0' },
+ { label: '閮ㄥ垎璁惧', value: '1' }
+ ],
+ toolbarConfig: {
// prefix 鍓嶇紑锛泂uffix 鍚庣紑
slot: ['prefix', 'suffix'],
// add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
btn: ['remove', 'clearSelection']
- },
- labelCol: {
- xs: { span: 24 },
- sm: { span: 5 },
- },
- wrapperCol: {
- xs: { span: 24 },
- sm: { span: 16 },
- },
- model:{
- },
- // 鏂板鏃跺瓙琛ㄩ粯璁ゆ坊鍔犲嚑琛岀┖鏁版嵁
- addDefaultRowNum: 1,
- validatorRules: {
- num: [
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ model: {
+ },
+ // 鏂板鏃跺瓙琛ㄩ粯璁ゆ坊鍔犲嚑琛岀┖鏁版嵁
+ addDefaultRowNum: 0,
+ validatorRules: {
+ num: [
{ required: true, message: '璇疯緭鍏ョ紪鐮�!' },
{ min: 1, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' },
{ validator: this.validateNum },
],
- type: [
+ type: [
{ required: true, message: '璇烽�夋嫨璁″垝鍗曠被鍨�!' },
],
- },
- refKeys: ['equipmentMaintenancePlanDetail', ],
- tableKeys:['equipmentMaintenancePlanDetail', ],
- activeKey: 'equipmentMaintenancePlanDetail',
- // 淇濆吇璁″垝鏄庣粏
- equipmentMaintenancePlanDetailTable: {
- loading: false,
- dataSource: [
- ],
- columns: [
+ selectOption: [
+ { required: true, message: '璇烽�夋嫨淇濆吇璁惧!' },
+ ],
+ ranges: [
+ { required: true, message: '璇烽�夋嫨璁″垝鏃堕棿!' },
+ ],
+ },
+ refKeys: ['equipmentMaintenancePlanDetail',],
+ tableKeys: ['equipmentMaintenancePlanDetail',],
+ activeKey: 'equipmentMaintenancePlanDetail',
+ // 淇濆吇璁″垝鏄庣粏
+ equipmentMaintenancePlanDetailTable: {
+ loading: false,
+ dataSource: [
+ ],
+ columns: [
{
- title: '淇濆吇鏍囧噯id',
- key: 'standardId',
- type: JVXETypes.hidden,
- placeholder: '璇疯緭鍏�${title}',
- defaultValue: '',
- align:'center',
- width:"230px",
- },
- {
- title: '淇濆吇鏍囧噯',
- key: 'standardNum',
- type: JVXETypes.normal,
- placeholder: '璇疯緭鍏�${title}',
- defaultValue: '',
- align:'center',
- width:"230px",
- },
- {
- title: '璁惧缁熶竴缂栫爜',
- key: 'equipmentNum',
- type: JVXETypes.normal,
- placeholder: '璇疯緭鍏�${title}',
- defaultValue: '',
- align:'center',
- width:"230px",
- },
- {
- title: '璁惧鍚嶇О',
- key: 'equipmentName',
- type: JVXETypes.normal,
- placeholder: '璇疯緭鍏�${title}',
- defaultValue: '',
- align:'center',
- width:"230px",
- },
- {
- title: '璁惧鍨嬪彿',
- key: 'model',
- type: JVXETypes.normal,
- placeholder: '璇疯緭鍏�${title}',
- defaultValue: '',
- align:'center',
- width:"230px",
- },
- {
- title: '璁″垝寮�濮嬫椂闂�',
- key: 'planStartTime',
- type: JVXETypes.datetime,
- placeholder: '璇疯緭鍏�${title}',
- align:'center',
- width:"250px",
- validateRules: [
- {
- required: true, // 蹇呭~
- message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
- },
- {
- handler({ cellValue, row, column }, callback, target) {
- var start = dayjs(cellValue);
- var end = dayjs(row.planEndTime);
- if (!start.isBefore(end)) {
- callback(false, '缁撴潫鏃堕棿闇�婊炲悗浜庡紑濮嬫椂闂�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
- } else {
- callback(true) // true = 閫氳繃楠岃瘉
- }
- },
- message: '${title}榛樿鎻愮ず'
- }
- ]
- },
- {
- title: '璁″垝缁撴潫鏃堕棿',
- key: 'planEndTime',
- type: JVXETypes.datetime,
- placeholder: '璇疯緭鍏�${title}',
- align:'center',
- width:"250px",
- validateRules: [
- {
- required: true, // 蹇呭~
- message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
- },
- {
- handler({ cellValue, row, column }, callback, target) {
- var start = dayjs(row.planStartTime);
- var end = dayjs(cellValue);
- if (!start.isBefore(end)) {
- callback(false, '缁撴潫鏃堕棿闇�婊炲悗浜庡紑濮嬫椂闂�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
- } else {
- callback(true) // true = 閫氳繃楠岃瘉
- }
- },
- message: '${title}榛樿鎻愮ず'
- }
- ]
- },
- ]
- },
- url: {
- add: "/eam/equipmentMaintenancePlan/add",
- edit: "/eam/equipmentMaintenancePlan/edit",
- queryById: "/eam/equipmentMaintenancePlan/queryById",
- equipmentMaintenancePlanDetail: {
- list: '/eam/equipmentMaintenancePlan/listEquipmentMaintenancePlanDetailByMainId'
+ title: '淇濆吇鏍囧噯id',
+ key: 'standardId',
+ type: JVXETypes.hidden,
+ placeholder: '璇疯緭鍏�${title}',
+ defaultValue: '',
+ align: 'center',
+ width: "230px",
},
- }
- }
- },
- props: {
- //琛ㄥ崟绂佺敤
- disabled: {
- type: Boolean,
- default: false,
- required: false
- }
- },
- computed: {
- formDisabled(){
- return this.disabled
+ {
+ title: '淇濆吇鏍囧噯',
+ key: 'standardNum',
+ type: JVXETypes.normal,
+ placeholder: '璇疯緭鍏�${title}',
+ defaultValue: '',
+ align: 'center',
+ width: "230px",
+ },
+ {
+ title: '璁惧缁熶竴缂栫爜',
+ key: 'equipmentNum',
+ type: JVXETypes.normal,
+ placeholder: '璇疯緭鍏�${title}',
+ defaultValue: '',
+ align: 'center',
+ width: "230px",
+ },
+ {
+ title: '璁惧鍚嶇О',
+ key: 'equipmentName',
+ type: JVXETypes.normal,
+ placeholder: '璇疯緭鍏�${title}',
+ defaultValue: '',
+ align: 'center',
+ width: "230px",
+ },
+ {
+ title: '璁惧鍨嬪彿',
+ key: 'model',
+ type: JVXETypes.normal,
+ placeholder: '璇疯緭鍏�${title}',
+ defaultValue: '',
+ align: 'center',
+ width: "230px",
+ },
+ {
+ title: '璁″垝寮�濮嬫椂闂�',
+ key: 'planStartTime',
+ type: JVXETypes.datetime,
+ placeholder: '璇疯緭鍏�${title}',
+ align: 'center',
+ width: "250px",
+ validateRules: [
+ {
+ required: true, // 蹇呭~
+ message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+ },
+ {
+ handler({ cellValue, row, column }, callback, target) {
+ var start = dayjs(cellValue);
+ var end = dayjs(row.planEndTime);
+ if (!start.isBefore(end)) {
+ callback(false, '缁撴潫鏃堕棿闇�婊炲悗浜庡紑濮嬫椂闂�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+ } else {
+ callback(true) // true = 閫氳繃楠岃瘉
+ }
+ },
+ message: '${title}榛樿鎻愮ず'
+ }
+ ]
+ },
+ {
+ title: '璁″垝缁撴潫鏃堕棿',
+ key: 'planEndTime',
+ type: JVXETypes.datetime,
+ placeholder: '璇疯緭鍏�${title}',
+ align: 'center',
+ width: "250px",
+ validateRules: [
+ {
+ required: true, // 蹇呭~
+ message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+ },
+ {
+ handler({ cellValue, row, column }, callback, target) {
+ var start = dayjs(row.planStartTime);
+ var end = dayjs(cellValue);
+ if (!start.isBefore(end)) {
+ callback(false, '缁撴潫鏃堕棿闇�婊炲悗浜庡紑濮嬫椂闂�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+ } else {
+ callback(true) // true = 閫氳繃楠岃瘉
+ }
+ },
+ message: '${title}榛樿鎻愮ず'
+ }
+ ]
+ },
+ ]
},
- },
- created () {
- },
- methods: {
- addBefore(){
- this.equipmentMaintenancePlanDetailTable.dataSource=[]
- },
- getAllTable() {
- let values = this.tableKeys.map(key => getRefPromise(this, key))
- return Promise.all(values)
- },
- /** 璋冪敤瀹宔dit()鏂规硶涔嬪悗浼氳嚜鍔ㄨ皟鐢ㄦ鏂规硶 */
- editAfter() {
- this.$nextTick(() => {
- })
- // 鍔犺浇瀛愯〃鏁版嵁
- if (this.model.id) {
- let params = { planId: this.model.id }
- this.requestSubTableData(this.url.equipmentMaintenancePlanDetail.list, params, this.equipmentMaintenancePlanDetailTable)
- }
- },
- //鏍¢獙鎵�鏈変竴瀵逛竴瀛愯〃琛ㄥ崟
- validateSubForm(allValues){
- return new Promise((resolve,reject)=>{
- Promise.all([
- ]).then(() => {
- resolve(allValues)
- }).catch(e => {
- if (e.error === VALIDATE_FAILED) {
- // 濡傛灉鏈夋湭閫氳繃琛ㄥ崟楠岃瘉鐨勫瓙琛紝灏辫嚜鍔ㄨ烦杞埌瀹冩墍鍦ㄧ殑tab
- this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
- } else {
- console.error(e)
- }
- })
- })
+ url: {
+ add: "/eam/equipmentMaintenancePlan/add",
+ edit: "/eam/equipmentMaintenancePlan/edit",
+ queryById: "/eam/equipmentMaintenancePlan/queryById",
+ equipmentMaintenancePlanDetail: {
+ list: '/eam/equipmentMaintenancePlan/listEquipmentMaintenancePlanDetailByMainId'
},
- /** 鏁寸悊鎴恌ormData */
- classifyIntoFormData(allValues) {
- let main = Object.assign(this.model, allValues.formValue)
- return {
- ...main, // 灞曞紑
- equipmentMaintenancePlanDetailList: allValues.tablesValue[0].tableData,
- }
- },
- validateError(msg){
- this.$message.error(msg)
- },
- standardSelect() {
+ getNum: '/eam/sysIdentity/getNumNew'
+ }
+ }
+ },
+ props: {
+ //琛ㄥ崟绂佺敤
+ disabled: {
+ type: Boolean,
+ default: false,
+ required: false
+ }
+ },
+ computed: {
+ formDisabled() {
+ return this.disabled
+ },
+ },
+ created() {
+ },
+ methods: {
+ addBefore() {
+ this.equipmentMaintenancePlanDetailTable.dataSource = []
+ this.getSeq()
+ },
+ getAllTable() {
+ let values = this.tableKeys.map(key => getRefPromise(this, key))
+ return Promise.all(values)
+ },
+ /** 璋冪敤瀹宔dit()鏂规硶涔嬪悗浼氳嚜鍔ㄨ皟鐢ㄦ鏂规硶 */
+ editAfter() {
+ this.$nextTick(() => {
+ })
+ // 鍔犺浇瀛愯〃鏁版嵁
+ if (this.model.id) {
+ let params = { planId: this.model.id }
+ this.requestSubTableData(this.url.equipmentMaintenancePlanDetail.list, params, this.equipmentMaintenancePlanDetailTable)
+ }
+ },
+ //鏍¢獙鎵�鏈変竴瀵逛竴瀛愯〃琛ㄥ崟
+ validateSubForm(allValues) {
+ return new Promise((resolve, reject) => {
+ Promise.all([
+ ]).then(() => {
+ resolve(allValues)
+ }).catch(e => {
+ if (e.error === VALIDATE_FAILED) {
+ // 濡傛灉鏈夋湭閫氳繃琛ㄥ崟楠岃瘉鐨勫瓙琛紝灏辫嚜鍔ㄨ烦杞埌瀹冩墍鍦ㄧ殑tab
+ this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
+ } else {
+ console.error(e)
+ }
+ })
+ })
+ },
+ /** 鏁寸悊鎴恌ormData */
+ classifyIntoFormData(allValues) {
+ let main = Object.assign(this.model, allValues.formValue)
+ return {
+ ...main, // 灞曞紑
+ equipmentMaintenancePlanDetailList: allValues.tablesValue[0].tableData,
+ }
+ },
+ validateError(msg) {
+ this.$message.error(msg)
+ },
+ standardSelect() {
let ids = []
let tableData = this.$refs.equipmentMaintenancePlanDetail.getTableData()
for (let i = 0; i < tableData.length; i++) {
ids.push(tableData[i].standardId)
}
this.$refs.standardSelectModel.showModal(ids)
- this.$refs.standardSelectModel.title = '閫夋嫨绮惧害鍙傛暟'
+ this.$refs.standardSelectModel.title = '閫夋嫨璁惧'
this.$refs.standardSelectModel.disableSubmit = false
},
addSelected(data) {
@@ -298,12 +384,13 @@
var equipmentMaintenancePlanDetail = {}
if (tableStr.indexOf(data[i].id) == -1) {
equipmentMaintenancePlanDetail = {
- standardId:data[i].id,
+ id: data[i].id,
+ standardId: data[i].id,
standardNum: data[i].num,
- equipmentNum:data[i].equipmentNum,
- equipmentName:data[i].equipmentName,
- model:data[i].equipmentModel,
- planId:this.model.id,
+ equipmentNum: data[i].equipmentNum,
+ equipmentName: data[i].equipmentName,
+ model: data[i].equipmentModel,
+ planId: this.model.id,
}
}
addRows.push(equipmentMaintenancePlanDetail)
@@ -332,9 +419,30 @@
})
},
+ getSeq() {
+ getAction(this.url.getNum, { type: 'MaintenancePlan', length: 4 }).then(res => {
+ if (res.success) {
+ this.model.num = res.result
+ }
+ })
+ },
+ //涓昏〃璁″垝寮�濮嬫椂闂村拰璁″垝缁撴潫鏃堕棿鍙橈紝瀛愯〃璁″垝寮�濮嬫椂闂村拰璁″垝缁撴潫鏃堕棿涔熷彉
+ changeDate(date, dateString) {
+ this.model.beginTime = dateString[0];
+ this.model.endTime = dateString[1];
+ let tableData = this.$refs.equipmentMaintenancePlanDetail.getTableData()
+ for (let i = 0; i < tableData.length; i++) {
+ let row = this.$refs.equipmentMaintenancePlanDetail.getRowById(tableData[i].standardId);
+ row.planStartTime = dateString[0]
+ row.planEndTime = dateString[1]
+ }
+ },
+ handleClearTable(e) {
+ this.equipmentMaintenancePlanDetailTable.dataSource = []
}
}
+}
</script>
<style scoped>
--
Gitblit v1.9.3