268 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <!--
 | |
|  * @Author: Do not edit
 | |
|  * @Date: 2023-12-13 14:10:04
 | |
|  * @LastEditTime: 2024-04-23 16:47:21
 | |
|  * @LastEditors: DY
 | |
|  * @Description:
 | |
| -->
 | |
| <template>
 | |
|   <div>
 | |
|     <el-row v-if="isShowEdit" style="float: right; margin-bottom: 5px">
 | |
|       <el-button v-if="!edit && this.$auth.hasPermi('base:report-auto-original-glass:update')" :disabled="noData"
 | |
|         size="small" @click="edit = true">编辑</el-button>
 | |
|       <el-button v-if="edit" size="small" @click="handleReturn()">返回</el-button>
 | |
|       <el-button v-if="edit" size="small" @click="updateData">保存</el-button>
 | |
|     </el-row>
 | |
|     <el-table :id="id" :data="data" border style="width: 100%">
 | |
|       <el-table-column v-for="(item, index) in cols" :key="index" :prop="item.prop" :label="item.label"
 | |
|         :align="item.align ? item.align : 'left'">
 | |
|         <el-table-column v-for="(it, index1) in item.children" :key="index1" :prop="it.prop" :label="it.label"
 | |
|           :align="item.align ? item.align : 'left'">
 | |
|           <el-table-column v-for="(y, index2) in it.children" :key="index2" :prop="y.prop" :label="y.label">
 | |
|             <template slot-scope="scope">
 | |
|               <span v-if="!edit">{{ scope.row[y.prop] }}</span>
 | |
|               <el-input type="number" @change="handleChange" :disabled="y.prop == 'dailyOutputTrend' || y.prop === 'originalGlassStatisticsTrend'
 | |
|                  || y.prop === 'actualProductTrend' || y.prop === 'originalGlassPassTrend' || y.prop === 'originalGlassPassNow' || y.prop === 'originalGlassPassHis'
 | |
|               " v-else v-model="scope.row[y.prop]"></el-input>
 | |
|             </template>
 | |
|           </el-table-column>
 | |
|         </el-table-column>
 | |
|       </el-table-column>
 | |
|     </el-table>
 | |
|     <el-input type="textarea" v-model="remark" placeholder="备注" :disabled="!edit" :autosize="{ minRows: 2, maxRows: 6}">
 | |
|     </el-input>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import { updateGlass, updateGlassRemark } from '@/api/report/glass';
 | |
| 
 | |
| const cols = [
 | |
|   {
 | |
| 		prop: 'xc',
 | |
| 		label: '许昌安彩周原片生产汇总',
 | |
| 		align: 'center',
 | |
| 		children: [
 | |
| 			{
 | |
| 				prop: 'lineName',
 | |
| 				label: '生产线',
 | |
| 			},
 | |
| 			{
 | |
| 				prop: 'm',
 | |
| 				label: '拉引量㎡',
 | |
|         align: 'center',
 | |
|         children: [
 | |
|           {
 | |
|             prop: 'dailyOutputNow',
 | |
|             label: '本周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'dailyOutputHis',
 | |
|             label: '上周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'dailyOutputTrend',
 | |
|             label: '增减',
 | |
|           }
 | |
|         ]
 | |
| 			},
 | |
|       {
 | |
| 				prop: 'y',
 | |
| 				label: '原片合计(片/周)',
 | |
|         align: 'center',
 | |
|         children: [
 | |
|           {
 | |
|             prop: 'originalGlassStatisticsNow',
 | |
|             label: '本周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'originalGlassStatisticsHis',
 | |
|             label: '上周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'originalGlassStatisticsTrend',
 | |
|             label: '增减',
 | |
|             // filter:(v)=>{v + '%'}
 | |
|           }
 | |
|         ]
 | |
| 			},
 | |
|       {
 | |
| 				prop: 's',
 | |
| 				label: '实际原片产量㎡',
 | |
|         align: 'center',
 | |
|         children: [
 | |
|           {
 | |
|             prop: 'actualProductNow',
 | |
|             label: '本周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'actualProductHis',
 | |
|             label: '上周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'actualProductTrend',
 | |
|             label: '增减',
 | |
|             // filter: (v) => { v + '%' }
 | |
|           }
 | |
|         ]
 | |
| 			},
 | |
|       {
 | |
| 				prop: 'yield',
 | |
| 				label: '原片良品率',
 | |
|         children: [
 | |
|           {
 | |
|             prop: 'originalGlassPassNow',
 | |
|             label: '本周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'originalGlassPassHis',
 | |
|             label: '上周',
 | |
|           },
 | |
|           {
 | |
|             prop: 'originalGlassPassTrend',
 | |
|             label: '增减',
 | |
|           }
 | |
|         ]
 | |
| 			}
 | |
| 		]
 | |
| 	}
 | |
| ]
 | |
|   export default {
 | |
|     props: {
 | |
|       data: {
 | |
|         type: Array,
 | |
|         default: () => [],
 | |
|       },
 | |
|       id: {
 | |
|         type: String,
 | |
|         default:'exportTable'
 | |
|       },
 | |
|       time: {
 | |
|         type: Array,
 | |
|         default: () => [],
 | |
|       },
 | |
|       date: {
 | |
|         type: String,
 | |
|         default:''
 | |
|       },
 | |
|       sum: {
 | |
|         type: Object,
 | |
|         default: () => {},
 | |
|       },
 | |
|       type: {
 | |
|         type: Number,
 | |
|         default: 3,
 | |
|       },
 | |
|       isShowEdit: {
 | |
|         type: Boolean,
 | |
|         default: true
 | |
|       }
 | |
|     },
 | |
|     data() {
 | |
|       return {
 | |
|         cols,
 | |
|         remark:null,
 | |
|         edit: false,
 | |
|         noData:false,
 | |
|       };
 | |
|     },
 | |
|   watch: {
 | |
|     data: {
 | |
|       handler(newv, oldv) {
 | |
|         if (newv.length != 0) {
 | |
|           this.noData = false
 | |
|         } else {
 | |
|           this.noData = true
 | |
|         }
 | |
|       }
 | |
|       },
 | |
|       time: {
 | |
|         immediate: true,
 | |
|         deep: true,
 | |
|         handler(newv, oldv) {
 | |
|           if (newv[0] !== '' && newv[0] !== undefined) {
 | |
|             this.cols[0].label = this.date + '(' + newv[0] + '-' + newv[1] + ')'
 | |
|           } else {
 | |
|             this.cols[0].label = this.date
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       type: {
 | |
|         immediate: true,
 | |
|         handler(newv, oldv) {
 | |
|           let text1 = '', text2 = '', text3 = ''
 | |
|           if (newv === 3) {
 | |
|             text1 = '本周'
 | |
|             text2 = '上周'
 | |
|             text3 = '原片合计(片/周)'
 | |
|           } else if (newv === 4) {
 | |
|             text1 = '本月'
 | |
|             text2 = '上月'
 | |
|             text3 = '原片合计(片/月)'
 | |
|           } else if (newv === 2) {
 | |
|             text1 = '今日'
 | |
|             text2 = '昨日'
 | |
|             text3 = '原片合计(片/日)'
 | |
|           } else {
 | |
|             text1 = '本年'
 | |
|             text2 = '上年'
 | |
|             text3 = '原片合计(片/年)'
 | |
|           }
 | |
|           this.cols[0].children[1].children[0].label = text1
 | |
|           this.cols[0].children[1].children[1].label = text2
 | |
|           this.cols[0].children[2].children[0].label = text1
 | |
|           this.cols[0].children[2].children[1].label = text2
 | |
|           this.cols[0].children[3].children[0].label = text1
 | |
|           this.cols[0].children[3].children[1].label = text2
 | |
|           this.cols[0].children[4].children[0].label = text1
 | |
|           this.cols[0].children[4].children[1].label = text2
 | |
|           this.cols[0].children[2].label = text3
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|   methods: {
 | |
|     handleReturn() {
 | |
|       this.edit = false
 | |
|       console.log(this.$parent.getDataList());
 | |
|     },
 | |
|     handleChange(e) {
 | |
|     },
 | |
|       updateData() {
 | |
|         let obj = {}
 | |
|         this.data.forEach((ele, index) => {
 | |
|           if (ele.det === false) {
 | |
|             this.data[index].lineId = ''
 | |
|             this.data[index].remark = this.remark
 | |
|             obj = ele
 | |
|             delete this.data[index].dailyOutputTrend
 | |
|             delete this.data[index].originalGlassStatisticsTrend
 | |
|             delete this.data[index].actualProductTrend
 | |
|             delete this.data[index].originalGlassPassTrend
 | |
|             this.data.splice(index, 1)
 | |
|           }
 | |
|         })
 | |
|         let updateArr = this.data
 | |
|         updateArr.forEach((ele, index) => {
 | |
|           delete ele.dailyOutputTrend
 | |
|           delete ele.originalGlassStatisticsTrend
 | |
|           delete ele.actualProductTrend
 | |
|           delete ele.originalGlassPassTrend
 | |
|         });
 | |
|         // this.data.forEach((ele, index) => {
 | |
|         //   delete ele.dailyOutputTrend
 | |
|         //   delete ele.originalGlassStatisticsTrend
 | |
|         //   delete ele.actualProductTrend
 | |
|         //   delete ele.originalGlassPassTrend
 | |
|         // });
 | |
|         updateGlass(updateArr).then(response => {
 | |
|           updateGlassRemark(obj).then(res => {
 | |
|             this.$modal.msgSuccess("修改成功");
 | |
|             this.edit = false;
 | |
|             this.$emit("refreshDataList");
 | |
|           });
 | |
|         });
 | |
|       }
 | |
|     }
 | |
|   };
 | |
| </script>
 |