From 1eafd96fcd5d4bea8eb47bb6b5f888ff4af1a088 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期四, 11 一月 2024 18:11:35 +0800
Subject: [PATCH] 维修添加实际用料

---
 src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue |  319 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 208 insertions(+), 111 deletions(-)

diff --git a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue
index 406d5a4..dc2e7d1 100644
--- a/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue
+++ b/src/views/eam/modules/repairorder/moudles/RepairOrderActualMaterialReport.vue
@@ -19,6 +19,29 @@
         slot-scope='text, record, index'
       >
         <div :key="col.dataIndex">
+          <a-input
+               :value="text"
+               v-if="col.dataIndex == 'sparePartId'"
+               auto-size
+               placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"
+               @change="(e)=>handleChange(e, record.key, col, index)"
+               :disabled="record.disabled"
+          />
+          <a-input
+               :value="text"
+               v-if="col.dataIndex == 'repairOrderAmUda1'"
+               auto-size
+               placeholder="璇疯緭鍏ュ崟浣�"
+               @change="(e)=>handleChange(e, record.key, col, index)"
+               :disabled="record.disabled"
+          />
+          <j-dict-select-tag 
+                :value='text'
+                v-if="col.dataIndex == 'outboundOrderId'"
+                dictCode="material_type"
+                :disabled="true"
+                style="width: 100%;"
+                @change='(e)=>handleChange(e, record.key, col, index)'/>
           <a-input-number
             :value="text"
             v-if="col.dataIndex == 'actualQuantity'"
@@ -31,6 +54,15 @@
         </div>
       </template>
       <span
+        slot='action'
+        slot-scope='text, record,index'
+      >
+        <a
+          :disabled="mainId.status=='4'"
+          @click='handleDelete(index)'
+        >鍒犻櫎</a>
+      </span>
+      <!-- <span
         slot='action'
         slot-scope='text, record'
       >
@@ -56,34 +88,36 @@
         >
           <a v-if="record.isLock=='no'&&mainId.status=='3'">鍒犻櫎</a>
         </a-popconfirm>
-      </span>
+      </span> -->
     </a-table>
     <a-button
       style="width: 100%; margin-top: 16px; margin-bottom: 8px"
       type="dashed"
       icon="plus"
       @click="addMaterial"
-      :disabled="mainId.status=='4' || mainId.status=='2'"
+      :disabled="mainId.status!='3'||( mainId.repairOrderUda1!='needPart'&&mainId.repairOrderUda1!='needSpare')"
     >娣诲姞瀹為檯鐢ㄦ枡</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"
+          @click='handleCancel'
         >
           鍙栨秷
-        </a-button> -->
+        </a-button>
         <!-- <a-button
-          @click="handleOk(1)"
-          type="primary"
+          @click='handleOk(1)'
+          type='primary'
           :style="{marginRight: '8px'}"
-          :disabled="specialyMaintenanceOrderStatus!='4'"
-        >鏆傚瓨</a-button>
+          :disabled="this.repairOrderStatus=='4' || this.repairOrderStatus=='2'"
+        >鏆傚瓨
+        </a-button> -->
         <a-button
-          @click="handleOk(0)"
-          type="primary"
-          :disabled="specialyMaintenanceOrderStatus!='4'"
-        >淇濆瓨</a-button> -->
+          @click='handleOk(0)'
+          type='primary'
+          :disabled="this.mainId.status=='4' || this.mainId.status=='2'"
+        >淇濆瓨
+        </a-button>
       </a-row>
       <!-- :disabled="false" -->
     </div>
@@ -96,14 +130,13 @@
 import pick from 'lodash.pick'
 import JEllipsis from '@/components/jeecg/JEllipsis'
 import JSelectSparePartModal from './select/JSelectSparePartModal'
-import RepairOrderActualMaterialReportModel from './RepairOrderActualMaterialReportModel.vue'
+// import RepairOrderActualMaterialReportModel from './RepairOrderActualMaterialReportModel.vue'
 export default {
   name: 'RepairOrderActualMaterialReport',
   mixins: [JeecgListMixin],
   components: {
     JEllipsis,
     JSelectSparePartModal,
-    RepairOrderActualMaterialReportModel
   },
   props: {
     mainId: {
@@ -168,62 +201,68 @@
             return parseInt(index) + 1;
           }
         },
-        {
-          title: '棰嗘枡鍑哄簱鍗�',
-          dataIndex: 'num',
-          align: "center",
-          width: 150,
-        },
-        {
-          title: '澶囦欢缂栫爜',
-          dataIndex: 'sparePartNum',
-          align: "center",
+        // {
+        //   title: '棰嗘枡鍑哄簱鍗�',
+        //   dataIndex: 'num',
+        //   align: "center",
+        //   width: 150,
+        // },
+        // {
+        //   title: '澶囦欢缂栫爜',
+        //   dataIndex: 'sparePartNum',
+        //   align: "center",
 
-        },
+        // },
         {
-          title: '澶囦欢鍚嶇О',
-          dataIndex: 'sparePartName',
+          title: '鐗╂枡鍚嶇О',
+          dataIndex: 'sparePartId',
+          scopedSlots: { customRender: 'sparePartId' },
           align: "center",
-
+           className: 'red',
+          width: 250,
         },
         {
-          title: '瑙勬牸',
-          dataIndex: 'sparePartSpecification',
+          title: '鐗╂枡绉嶇被',
+          dataIndex: 'outboundOrderId',
+          scopedSlots: { customRender: 'outboundOrderId' },
           align: "center",
+          width: 250,
         },
+        // {
+        //   title: '鍨嬪彿',
+        //   dataIndex: 'sparePartModel',
+        //   align: "center",
+        // },
+        // {
+        //   title: '鍒堕�犲晢',
+        //   dataIndex: 'constructorName',
+        //   align: "center",
+        // },
         {
-          title: '鍨嬪彿',
-          dataIndex: 'sparePartModel',
+          title: '鍗曚綅',
+          dataIndex: 'repairOrderAmUda1',
+          scopedSlots: { customRender: 'repairOrderAmUda1' },
           align: "center",
+          className: 'red',
+          width: 250,
         },
-        {
-          title: '鍒堕�犲晢',
-          dataIndex: 'constructorName',
-          align: "center",
-        },
-        {
-          title: '涓诲崟浣�',
-          dataIndex: 'mainUnitName',
-          align: "center",
-
-        },
-        {
-          title: '涓绘暟閲�',
-          align: 'center',
-          dataIndex: 'mainQuantity'
-        },
-        {
-          title: '鍙敤鏁伴噺',
-          align: 'center',
-          dataIndex: 'availableQuantity'
-        },
+        // {
+        //   title: '涓绘暟閲�',
+        //   align: 'center',
+        //   dataIndex: 'mainQuantity'
+        // },
+        // {
+        //   title: '鍙敤鏁伴噺',
+        //   align: 'center',
+        //   dataIndex: 'availableQuantity'
+        // },
         {
           title: '浣跨敤鏁伴噺',
           dataIndex: 'actualQuantity',
           align: "center",
           scopedSlots: { customRender: 'actualQuantity' },
           className: 'red',
-
+          width: 250,
         },
         {
           title: '鎿嶄綔',
@@ -234,8 +273,8 @@
         }
       ],
       url: {
-        list: '/eam/repairOrder/listRepairOrderActualMaterialByMainId',
-        confirmMaterial: "/eam/repairOrderActualMaterial/add",
+        list: '/eam/repairOrderActualMaterial/list',
+        confirmMaterial: "/eam/repairOrderActualMaterial/addNew",
         delete: "/eam/repairOrderActualMaterial/delete",
         addInit: "/eam/repairOrderActualMaterial/addInit",
         lock: "/eam/repairOrderActualMaterial/lock",
@@ -247,6 +286,7 @@
   watch: {
     mainId: {
       immediate: true,
+      deep:true,
       handler(val) {
         console.log(val)
         if (!this.mainId.id) {
@@ -267,16 +307,17 @@
   // },
   methods: {
     addMaterial() {
-      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
+      // 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
+      this.dataSource.push({ sparePartId: '', outboundOrderId: this.mainId.repairOrderUda1,repairOrderAmUda1: '', actualQuantity:'',repairOrderId:this.mainId.id })
     },
     handleCancel() {
-      this.$bus.$emit('close');
+      this.$bus.$emit('closeDrawer')
     },
     close() {
       this.$emit('close');
@@ -291,15 +332,24 @@
       console.log(column)
       const temp = [...this.dataSource]
       const target = temp[index]
-      let availableQuantity = target['availableQuantity']
-      if (target) {
-        if (value != undefined && value != null && value != '' && availableQuantity < value) {
-          this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!')
-        } else {
-        }
-        target[column.dataIndex] = value
-        this.dataSource = temp
+      // let availableQuantity = target['availableQuantity']
+      // if (target) {
+      //   if (value != undefined && value != null && value != '' && availableQuantity < value) {
+      //     this.$message.error('浣跨敤鏁伴噺涓嶈兘澶т簬鍙敤鏁伴噺!')
+      //   } else {
+      //   }
+      //   target[column.dataIndex] = value
+      //   this.dataSource = temp
+      // }
+      if ('sparePartId' == column.dataIndex) {
+          target['sparePartId'] = value.target.value
       }
+      if ('repairOrderAmUda1' == column.dataIndex) {
+          target['repairOrderAmUda1'] = value.target.value
+      } 
+      if ('actualQuantity' == column.dataIndex) {
+        target['actualQuantity'] = value
+      } 
     },
     clearList() {
       this.dataSource = [];
@@ -381,47 +431,94 @@
           this.loading = false
         })
     },
-  },
-  mounted() {
-    let newActualMaterials = [];
-    this.$bus.$on('selection3Rows', (data) => {
-      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,
-          // sparePartSpecification: data[i].specification,
-          // sparePartModel: 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,
-          repairOrderId: this.mainId.id,
-          equipmentId: this.equipmentId,
-          isLock: 'no'
-        })
-      }
-      let that = this
-      postAction(this.url.addInit, newActualMaterials).then((res) => {
-        if (res.success) {
-          that.$message.success(res.message)
-          newActualMaterials = []
-          that.$emit('ok')
-        } else {
-          that.$message.warning(res.message)
+    handleOk(saveStatus) {
+      const that = this
+      if (saveStatus == 0) {
+        let workHoursDataSource = that.dataSource
+        for (let i = 0; i < workHoursDataSource.length; i++) {
+          if (workHoursDataSource[i].sparePartId == undefined || workHoursDataSource[i].sparePartId == null || workHoursDataSource[i].sparePartId == '') {
+            that.$message.warning('璇烽�夋嫨绗�' + (i + 1) + '琛岀墿鏂欏悕绉帮紒')
+            return false
+          }
+          if (workHoursDataSource[i].repairOrderAmUda1 == undefined || workHoursDataSource[i].repairOrderAmUda1 == null || workHoursDataSource[i].repairOrderAmUda1 == '') {
+            that.$message.warning('璇峰~鍐欑' + (i + 1) + '琛屽崟浣嶏紒')
+            return false
+          }
+          if (workHoursDataSource[i].actualQuantity == undefined || workHoursDataSource[i].actualQuantity == null || workHoursDataSource[i].actualQuantity == '') {
+            that.$message.warning('璇峰~鍐欑' + (i + 1) + '琛屼娇鐢ㄦ暟閲忥紒')
+            return false
+          }
         }
-      }).finally(res => {
-        that.loadData();
-
+      }
+      if (that.dataSource.length === 0) {
+        that.$message.warning('璇锋坊鍔犵敤鏂欙紒')
+        return
+      }
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          that.confirmLoading = true
+          let formData = that.dataSource;
+          let obj = obj = postAction(this.url.confirmMaterial, formData)
+          obj.then((res) => {
+            if (res.success) {
+              that.$message.success(res.message)
+              that.$emit('ok')
+            } else {
+              that.$message.warning(res.message)
+            }
+          }).finally(() => {
+            that.confirmLoading = false
+            that.close()
+            that.loadData(1)
+          })
+        }
       })
-    })
+    },
+    handleDelete(index) {
+      console.log(index)
+      this.dataSource.splice(index, 1)
+    },
   },
+  // mounted() {
+  //   let newActualMaterials = [];
+  //   this.$bus.$on('selection3Rows', (data) => {
+  //     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,
+  //         // sparePartSpecification: data[i].specification,
+  //         // sparePartModel: 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,
+  //         repairOrderId: this.mainId.id,
+  //         equipmentId: this.equipmentId,
+  //         isLock: 'no'
+  //       })
+  //     }
+  //     let that = this
+  //     postAction(this.url.addInit, newActualMaterials).then((res) => {
+  //       if (res.success) {
+  //         that.$message.success(res.message)
+  //         newActualMaterials = []
+  //         that.$emit('ok')
+  //       } else {
+  //         that.$message.warning(res.message)
+  //       }
+  //     }).finally(res => {
+  //       that.loadData();
+
+  //     })
+  //   })
+  // },
 
 }
 </script>

--
Gitblit v1.9.3