From 3dd1c81c84d78a30fff6468ccb05f979f2d50966 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期三, 22 十一月 2023 17:48:45 +0800
Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/vue_mdc_430
---
src/views/eam/modules/predictiveWorkOrder/ActualMaterialEditTable.vue | 281 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 199 insertions(+), 82 deletions(-)
diff --git a/src/views/eam/modules/predictiveWorkOrder/ActualMaterialEditTable.vue b/src/views/eam/modules/predictiveWorkOrder/ActualMaterialEditTable.vue
index 448d049..4ca11f0 100644
--- a/src/views/eam/modules/predictiveWorkOrder/ActualMaterialEditTable.vue
+++ b/src/views/eam/modules/predictiveWorkOrder/ActualMaterialEditTable.vue
@@ -11,6 +11,7 @@
:dataSource="dataSource"
:pagination="ipagination"
@change="handleTableChange"
+ :loading="loading"
>
<template
@@ -29,20 +30,50 @@
/>
<a-input-number
:value="text"
- v-if="col.dataIndex == 'actualQuantity'"
+ v-if="col.dataIndex == 'quantity'"
:min="1"
:max="99999"
@change="(e)=>handleChange(e, record.key, col, index)"
- :disabled="record.disabled"
+ :disabled="record.isLock == 'yes'||orderStatus!='4'"
/>
</div>
</template>
<span
slot='action'
- slot-scope='text, record,index'
+ slot-scope='text, record'
>
- <a @click="handleDeleteFake(index)">鍒犻櫎</a>
+ <a-popconfirm
+ title="纭閿佹枡鍚�?"
+ @confirm="() => handleLock(record)"
+ >
+ <a
+ v-has="'specialtyMaintenanceOrder:actualMaterialLock'"
+ v-if="record.isLock=='no'&&orderStatus=='4'"
+ >閿佹枡</a>
+ </a-popconfirm>
+ <a-divider
+ v-if="record.isLock=='no'"
+ type="vertical"
+ />
+ <a-popconfirm
+ title="瑙i攣鍚庝細鑷姩閲婃斁搴撳瓨锛岀‘璁よВ閿佸悧?"
+ @confirm="() => handleUnLock(record)"
+ >
+ <a
+ v-has="'specialtyMaintenanceOrder:actualMaterialLock'"
+ v-if="record.isLock=='yes'&&orderStatus=='4'"
+ >瑙i攣</a>
+ </a-popconfirm>
+ <a-popconfirm
+ title="纭畾鍒犻櫎鍚�?"
+ @confirm="() => handleDelete(record.id)"
+ >
+ <a
+ v-has="'specialtyMaintenanceOrder:actualMaterialDelete'"
+ v-if="record.isLock=='no'&&orderStatus=='4'"
+ >鍒犻櫎</a>
+ </a-popconfirm>
</span>
</a-table>
<a-button
@@ -50,37 +81,35 @@
type="dashed"
icon="plus"
@click="addMaterial"
- :disabled="repairOrderStatus!='3'"
- >娣诲姞瀹為檯鐢ㄦ枡
-
- </a-button>
+ :disabled="orderStatus!='4'"
+ v-has="'specialtyMaintenanceOrder:actualMaterialAdd'"
+ >娣诲姞瀹為檯鐢ㄦ枡</a-button>
<div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
<a-row :style="{textAlign:'right'}">
- <a-button
+ <!-- <a-button
:style="{marginRight: '8px'}"
@click="handleCancel"
- :disabled="repairOrderStatus!='3'"
>
- 娓呯┖
- </a-button>
- <a-button
+ 鍙栨秷
+ </a-button> -->
+ <!-- <a-button
@click="handleOk(1)"
type="primary"
:style="{marginRight: '8px'}"
- :disabled="repairOrderStatus!='3'"
+ :disabled="orderStatus!='4'"
>鏆傚瓨</a-button>
<a-button
@click="handleOk(0)"
type="primary"
- :disabled="repairOrderStatus!='3'"
- >淇濆瓨</a-button>
+ :disabled="orderStatus!='4'"
+ >淇濆瓨</a-button> -->
</a-row>
<!-- :disabled="false" -->
</div>
- <actual-material-select
- ref="actualMaterialSelect"
- @sendMaterialRecord="sendMaterialRecord"
- >
+ <actual-material-select
+ @getSelectRows="getSelectRows"
+ ref='JSelectSparePartModal'>
+ <!-- @sendMaterialRecord="sendMaterialRecord" -->
</actual-material-select>
</a-card>
</template>
@@ -95,29 +124,34 @@
mixins: [JeecgListMixin],
components: {
JEllipsis,
- ActualMaterialSelect
+ ActualMaterialSelect,
},
props: {
- repairOrderId: {
- type: String,
- required: false,
- default: '-1'
- },
- repairOrderStatus: {
+ orderId: {
type: String,
required: false,
default: ''
- }
+ },
+ orderStatus: {
+ type: String,
+ required: false,
+ default: ''
+ },
+ equipmentId: {
+ type: String,
+ required: false,
+ default: ''
+ },
},
data() {
return {
- title: "宸ヨ壓纭",
- flag: false,//涓婚〉闈㈢殑鏍囪浣� 鐢ㄤ簬鍖哄垎鏄惁纭杩囧伐鍗曞伐鑹� 鏉ュ尯鍒唗able椤靛睍绀� 宸ュ崟宸ュ簭 杩樻槸浜у搧宸ュ簭
+ disableMixiCreated:true,
+ title: "瀹為檯鐢ㄦ枡",
visible: false,
model: {},
- obj: {},
maskClosable: true,
confirmLoading: false,
+ // specialyMaintenanceOrderStatus: '',
form: this.$form.createForm(this),
/* 鍒嗛〉鍙傛暟 */
ipagination: {
@@ -137,7 +171,7 @@
{ required: true, message: '璇烽�夋嫨鐗╂枡!' },
]
},
- actualQuantity: {
+ quantity: {
rules: [
{ required: false, message: '璇峰~鍐欐暟閲�!' },
]
@@ -158,8 +192,8 @@
loading: false,
dataSource: [],
columns: [
- {
- title: '棰嗘枡鍑哄簱鍗曞彿',
+ {
+ title: '棰嗘枡鍑哄簱鍗�',
dataIndex: 'num',
align: "center",
width: 150,
@@ -224,23 +258,45 @@
}
],
url: {
- list: "/eam/repairOrder/listRepairOrderActualMaterialByMainId",
- confirmMaterial: "/eam/repairOrder/addRepairOrderActualMaterial"
+ list: "/eam/maintenanceOrderActualMaterial/getMaintenanceOrderActualMaterialList",
+ confirmMaterial: "/eam/maintenanceOrderActualMaterial/add",
+ delete: "/eam/maintenanceOrderActualMaterial/delete",
+ addInit: "/eam/maintenanceOrderActualMaterial/addInit",
+ lock: "/eam/maintenanceOrderActualMaterial/lock",
+ unLock: "/eam/maintenanceOrderActualMaterial/unLock"
},
- changeIndex: 0
+ changeIndex: 0,
+ loading:false
}
},
-
- created() {
- this.queryParam['repairOrderId'] = this.repairOrderId;
- this.loadData(1);
+ watch: {
+ orderId: {
+ immediate: true,
+ handler(val) {
+ if(this.orderId){
+ alert
+ this.queryParam['maintenanceOrderId'] = val
+ this.queryParam['equipmentId'] = this.equipmentId
+ this.queryParam['delFlag'] = 0
+ this.loadData(1);
+ }else{
+ this.clearList();
+ }
+ }
+ },
},
methods: {
addMaterial() {
- this.dataSource.push({ materialId: '', repairOrderId: this.repairOrderId, actualQuantity: 1, materialNum: '', materialName: '', materialModel: '', materialSpecification: '', unitId_dictText: '' })
+ let ids = [];
+ for (let i = 0; i < this.dataSource.length; i++) {
+ ids.push(this.dataSource[i].outboundOrderDetailId);
+ }
+ this.$refs.JSelectSparePartModal.showModals(ids);
+ this.$refs.JSelectSparePartModal.title = '閫夋嫨澶囦欢淇℃伅'
+ this.$refs.JSelectSparePartModal.disableSubmit = false
},
handleCancel() {
- this.close()
+ this.$bus.$emit('closeDrawer');
},
close() {
this.$emit('close');
@@ -261,18 +317,23 @@
that.$message.warning("璇烽�夋嫨绗�" + (i + 1) + "琛岀墿鏂欙紒");
return false;
}
- if (materialDataSource[i].actualQuantity == undefined || materialDataSource[i].actualQuantity == null || materialDataSource[i].actualQuantity == '') {
+ if (materialDataSource[i].quantity == undefined || materialDataSource[i].quantity == null || materialDataSource[i].quantity == '') {
that.$message.warning("璇峰~鍐欑" + (i + 1) + "琛岀敤鏂欐暟锛�");
return false;
}
}
}
+ if (that.dataSource.length === 0) {
+ that.$message.warning("璇锋坊鍔犵墿鏂欙紒")
+ return
+ }
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let formData = {}
- formData.repairOrderId = that.repairOrderId;
- formData.actualMaterialList = that.dataSource;
+ formData.maintenanceOrderId = that.specialyMaintenanceOrderId;
+ formData.maintenanceOrderActualMaterials = that.dataSource;
+ formData.equipmentId = that.equipmentId;
let obj = obj = postAction(this.url.confirmMaterial, formData)
obj.then((res) => {
if (res.success) {
@@ -290,18 +351,17 @@
})
},
handleChange(value, key, column, index) {
- let that = this;
- const temp = [...that.dataSource];
- const target = temp[index];
+ console.log(column)
+ const temp = [...this.dataSource]
+ const target = temp[index]
+ let availableQuantity = target['availableQuantity']
if (target) {
- target[column.dataIndex] = value;
- if ('materialId' == column.dataIndex) {
- target['materialId'] = value;
+ if (value != undefined && value != null && value != '' && availableQuantity < value) {
+ this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!')
+ } else {
}
- if ('actualQuantity' == column.dataIndex) {
- target['actualQuantity'] = value;
- }
- that.dataSource = temp;
+ target[column.dataIndex] = value
+ this.dataSource = temp
}
},
onSearchMaterial(index) {
@@ -309,37 +369,94 @@
this.$refs.actualMaterialSelect.list()
this.$refs.actualMaterialSelect.title = '鐗╂枡閫夋嫨'
},
- sendMaterialRecord(data, val) {
- let record = data.record
- const temp = [...this.dataSource]
- const target = temp[this.recordIndex]
- if (target) {
- console.log(target)
- target.materialId = record.id;
- target.materialName = record.name;
- target.materialNum = record.num;
- target.materialModel = record.model;
- target.materialSpecification = record.specification;
- target.unitId_dictText = record.unitId_dictText;
- this.dataSource = temp
- }
- },
clearList() {
this.dataSource = [];
this.ipagination.current = 1
+ },
+ // getUuiD(randomLength) {
+ // return Number(
+ // Math.random()
+ // .toString()
+ // .substr(2, randomLength) + Date.now()
+ // ).toString(36)
+ // },
+ handleLock(record) {
+ let that = this;
+ if (record.quantity == null || record.quantity == undefined || record.quantity == '') {
+ this.$message.error('璇峰厛濉啓鏁伴噺!');
+ return false
+ }
+ if (record.availableQuantity < record.quantity) {
+ this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!');
+ return false;
+ }
+ this.loading = true;
+ postAction(this.url.lock, record).then(res => {
+ if (res.success) {
+ this.$message.success("搴撳瓨閿佸畾鎴愬姛锛�")
+ } else {
+ this.$message.error(res.message)
+ }
+ }).finally(res => {
+ that.loading = false
+ that.loadData();
+ })
+
+ },
+ handleUnLock(record) {
+ let that = this;
+ this.loading = true;
+ postAction(this.url.unLock, record).then(res => {
+ if (res.success) {
+ this.$message.success("搴撳瓨瑙i攣鎴愬姛锛�")
+ } else {
+ this.$message.error(res.message)
+ }
+ }).finally(res => {
+ that.loading = false
+ that.loadData();
+ })
+ },
+ getSelectRows(data){
+ let newActualMaterials = [];
+ for (let i = 0; i < data.length; i++) {
+ newActualMaterials.push({
+ // id: this.getUuiD(16),
+ // num: data[i].num,
+ outboundOrderDetailId: data[i].id,
+ sparePartId: data[i].sparePartId,
+ // sparePartNum: data[i].spareNum,
+ // sparePartName: data[i].spareName,
+ // specification: data[i].specification,
+ // model: data[i].model,
+ // constructorName: data[i].constructorName,
+ // constructorId: data[i].constructorId,
+ // mainUnitName: data[i].mainUnitName,
+ // mainUnitId: data[i].mainUnitId,
+ mainQuantity: data[i].mainQuantity,
+ useQuantity: data[i].useQuantity,
+ availableQuantity: data[i].availableQuantity,
+ maintenanceOrderId: this.orderId,
+ equipmentId: this.equipmentId,
+ isLock: 'no'
+ })
+ }
+ let that = this
+ postAction(this.url.addInit, newActualMaterials).then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok')
+ } else {
+ that.$message.warning(res.message)
+ }
+ }).finally(res => {
+ newActualMaterials = []
+ that.loadData();
+
+ })
+
}
},
-
- watch: {
- repairOrderId: {
- immediate: true,
- handler(val) {
- this.clearList();
- this.queryParam['repairOrderId'] = val
- this.loadData(1);
- }
- }
- }
}
</script>
--
Gitblit v1.9.3