生产管理
This commit is contained in:
		| @@ -1,12 +1,12 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-11-06 15:15:30 | ||||
|  * @LastEditTime: 2024-05-07 09:31:54 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2024-05-13 15:43:45 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
|   <el-drawer class="drawer" :visible.sync="visible" size="50%"> | ||||
|   <el-drawer class="drawer" :visible.sync="visible" size="55%" @closed="$emit('destroy')"> | ||||
|     <small-title slot="title" :no-padding="true"> | ||||
|       {{ '碲化镉工厂生产数据详情' }} | ||||
|     </small-title> | ||||
| @@ -14,15 +14,15 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="8"> | ||||
|           <p class="title">工厂名称</p> | ||||
|           <p class="text">{{ }}</p> | ||||
|           <p class="text">{{ dataForm.factory }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <p class="title">时间维度</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <p class="text">{{ date }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="8"> | ||||
|           <p class="title">时间</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <p class="text">{{ dataForm.reportDate.length > 0 ? dataForm.reportDate[0] + '年' + dataForm.reportDate[1] + '月' + dataForm.reportDate[2] + '日' : '' }}</p> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-divider></el-divider> | ||||
| @@ -36,43 +36,43 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片良率</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <p class="text">{{ dataForm.yieldRate }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片良率</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <p class="title">芯片BOM</p> | ||||
|           <p class="text">{{ dataForm.bom }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片总功率</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <p class="text">{{ dataForm.totalPower }}</p> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">FTO投入量</p> | ||||
|           <p class="text">{{ }}</p> | ||||
|           <p class="text">{{ dataForm.chipInput }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">CSS稼动率</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <p class="text">{{ dataForm.marriageRate }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片段OEE</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <p class="text">{{ dataForm.oee }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片平均功率</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <p class="text">{{ dataForm.averagePower }}</p> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片人均产量</p> | ||||
|           <p class="text">{{ }}</p> | ||||
|           <p class="text">{{ dataForm.annualAverageProduction }}</p> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">芯片产能利用率</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <p class="text">{{ dataForm.capacityUtilizationRate }}</p> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false"> | ||||
| @@ -81,19 +81,20 @@ | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">封装BOM</p> | ||||
|           <p class="text">{{ }}</p> | ||||
|           <!-- 没参数 --> | ||||
|           <!-- <p class="text">{{ dataForm.bom }}</p> --> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">封装线OEE</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.code }}</p> --> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">标准组件良率</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.productName }}</p> --> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">标准组件产量</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.productName }}</p> --> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
| @@ -103,15 +104,15 @@ | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">封装产能利用率</p> | ||||
|           <p class="text">{{ dataForm.code }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.code }}</p> --> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">标准组件人均产量</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.productName }}</p> --> | ||||
|         </el-col> | ||||
|         <el-col :span="6"> | ||||
|           <p class="title">标准组件人均产量</p> | ||||
|           <p class="text">{{ dataForm.productName }}</p> | ||||
|           <!-- <p class="text">{{ dataForm.productName }}</p> --> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <small-title style=" margin: 0;padding: 26px 32px 24px;margin-bottom: 22px;" :no-padding="false"> | ||||
| @@ -166,6 +167,12 @@ export default { | ||||
|     SmallTitle, | ||||
|   }, | ||||
|   // mixins: [basicAdd], | ||||
|   props: { | ||||
|     date: { | ||||
|       type: Number, | ||||
|       default: 0 | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       urlOptions: { | ||||
| @@ -224,8 +231,12 @@ export default { | ||||
|   methods: { | ||||
|     init(id) { | ||||
|       this.visible = true | ||||
|       console.log('打印', id) | ||||
|       if (id) { | ||||
|         getProduceDataDetail() | ||||
|         getProduceDataDetail(id).then(res => { | ||||
|           this.dataForm = res.data | ||||
|           console.log('你好', res.data) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|     // getCurrentTime() { | ||||
|   | ||||
| @@ -1,53 +1,53 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2024-04-15 10:49:13 | ||||
|  * @LastEditTime: 2024-05-07 09:18:01 | ||||
|  * @LastEditors: zhp | ||||
|  * @LastEditTime: 2024-05-16 14:15:46 | ||||
|  * @LastEditors: DY | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
|   <div style="display: flex; flex-direction: column; min-height: calc(100vh - 96px - 31px)"> | ||||
|     <div class="app-container" style="padding: 16px 24px 0;height: auto; flex-grow: 1;"> | ||||
|       <el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip"> | ||||
|         <el-form-item label="时间维度" prop="reportTime"> | ||||
|           <el-select clearable v-model="listQuery.date" placeholder="请选择"> | ||||
|         <el-form-item label="时间维度" prop="date"> | ||||
|           <el-select size="small" clearable v-model="listQuery.date" placeholder="请选择"> | ||||
|             <el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item v-show="listQuery.date === 0" label="时间范围" prop="reportTime"> | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime" type="datetimerange" range-separator="至" | ||||
|             start-placeholder="开始日期" value-format="yyyy-MM-dd HH:mm:ss" @change="changeDayTime" end-placeholder="结束日期"> | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.reportTime" type="datetimerange" range-separator="至" | ||||
|             start-placeholder="开始日期" value-format="timestamp" @change="changeDayTime" end-placeholder="结束日期"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|         <el-form-item v-show="listQuery.date === 1" label="时间范围" prop="reportTime"> | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime[0]" type="week" format="yyyy 第 WW 周" placeholder="选择周" | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.start" type="week" format="yyyy 第 WW 周" placeholder="选择周" | ||||
|             style="width: 180px" @change="onValueChange"> | ||||
|           </el-date-picker> | ||||
|           至 | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime[1]" type="week" format="yyyy 第 WW 周" placeholder="选择周" | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.end" type="week" format="yyyy 第 WW 周" placeholder="选择周" | ||||
|             style="width: 180px" @change="onValueChange"> | ||||
|           </el-date-picker> | ||||
|           <span v-if="listQuery.reportTime[0] && listQuery.reportTime[1]" style="margin-left: 10px"> | ||||
|           <span v-if="listQuery.start && listQuery.end" style="margin-left: 10px"> | ||||
|             {{ date1 }} 至 {{ date2 }},共 {{ weekNum }} 周 | ||||
|           </span> | ||||
|         </el-form-item> | ||||
|         <el-form-item v-show="listQuery.date === 2" label="时间范围" prop="reportTime"> | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime" type="monthrange" range-separator="至" | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.reportTime" type="monthrange" value-format="timestamp" range-separator="至" | ||||
|             start-placeholder="开始月份" end-placeholder="结束月份" @change="changeTime"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|         <el-form-item v-show="listQuery.date === 3" label="时间范围" prop="reportTime"> | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime[0]" value-format="yyyy" type="year" | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.start" value-format="timestamp" type="year" | ||||
|             placeholder="开始时间"> | ||||
|           </el-date-picker> | ||||
|           ~ | ||||
|           <el-date-picker clearable v-model="listQuery.reportTime[1]" value-format="yyyy" type="year" placeholder="结束时间" | ||||
|           <el-date-picker size="small" clearable v-model="listQuery.end" value-format="timestamp" type="year" placeholder="结束时间" | ||||
|             @change="getYear"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="工厂名称" prop="factorys"> | ||||
|           <el-select clearable v-model="listQuery.factorys" placeholder="请选择工厂名称" multiple > | ||||
|           <el-select size="small" clearable v-model="listQuery.factorys" placeholder="请选择工厂名称" multiple > | ||||
|             <el-option v-for="item in factoryList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -59,7 +59,7 @@ | ||||
|           </el-select> | ||||
|         </el-form-item> --> | ||||
|         <el-form-item label="玻璃类型" prop="type"> | ||||
|           <el-select clearable v-model="listQuery.type" placeholder="请选择玻璃类型"> | ||||
|           <el-select size="small" clearable v-model="listQuery.type" placeholder="请选择玻璃类型"> | ||||
|             <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
| @@ -69,23 +69,32 @@ | ||||
|           <el-button type="primary" size="small" plain @click="handleExport">导出</el-button> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </div> | ||||
|     <div class="app-container" style="margin-top: 8px;padding: 16px; height: auto; flex-grow: 1;"> | ||||
|       <!-- <el-row :gutter="24"> --> | ||||
|       <!-- <el-col :span="12" v-for="item in  dataList" :key="item.id"> --> | ||||
|       <search-bar :formConfigs="formConfig1" ref="searchBarForm1" style="margin-bottom: 0" /> | ||||
|       <line-chart class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart> | ||||
|       <!-- </el-col> --> | ||||
|       <!-- <el-col :span="12"> | ||||
|             <line-chart :id=" 'second' " class="yearChart" ref="lineChart" style="height: 40vh;width: 100%"></line-chart> | ||||
|           </el-col> --> | ||||
|     </div> | ||||
|     <div class="app-container" style="margin-top: 18px;flex-grow: 1; height: auto; padding: 16px;"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||
|       <base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" | ||||
|     <div class="app-container" style="margin-top: 8px;flex-grow: 1; height: auto; padding: 16px;"> | ||||
|       <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" style="margin-bottom: 0" /> | ||||
|       <base-table :table-props="tableProps" :page="listQuery.current" :limit="listQuery.size" | ||||
|         :table-data="tableData"> | ||||
|         <method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" fixed="right" | ||||
|           :method-list="tableBtn" @clickBtn="handleClick" /> | ||||
|       </base-table> | ||||
|       <pagination | ||||
|         :limit.sync="listQuery.size" | ||||
|         :page.sync="listQuery.current" | ||||
|         :total="listQuery.total" | ||||
|         @pagination="getDataList" | ||||
|       /> | ||||
|     </div> | ||||
|     <add-or-update v-if="detailOrUpdateVisible" ref="detailOrUpdate" @refreshDataList="successSubmit" /> | ||||
|     <add-or-update v-if="detailOrUpdateVisible" ref="detailOrUpdate" :date="listQuery.date" @refreshDataList="successSubmit" @destroy="detailOrUpdateVisible = false" /> | ||||
|     <!-- <inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all" | ||||
|       :type="listQuery.reportType" @refreshDataList="getDataList" /> --> | ||||
|     <!-- <pagination | ||||
| @@ -98,7 +107,7 @@ | ||||
|  | ||||
| <script> | ||||
| // import { parseTime } from '../../core/mixins/code-filter'; | ||||
| import { getProduceDataPage } from '@/api/produceData'; | ||||
| import { getProduceDataPage, exportOutPutExcel } from '@/api/produceData'; | ||||
| // import inputTable from './inputTable.vue'; | ||||
| import lineChart from './lineChart'; | ||||
| import moment from 'moment' | ||||
| @@ -114,7 +123,7 @@ export default { | ||||
| 	data() { | ||||
|     return { | ||||
|       listQuery: { | ||||
|         size: 10, | ||||
|         size: 20, | ||||
|         current: 1, | ||||
|         factorys: [], | ||||
|         total: 0, | ||||
| @@ -177,88 +186,16 @@ export default { | ||||
| 				// getDataListURL: getGlassPage, | ||||
| 				// exportURL: exportGlasscExcel | ||||
|       }, | ||||
|       mainFormConfig: [ | ||||
|       	{ | ||||
|           type: 'select', | ||||
|           label: '工单', | ||||
|           placeholder: '请选择工单', | ||||
|           param: 'workOrderId', | ||||
|           selectOptions: [], | ||||
|         }, | ||||
|         // { | ||||
|         // 	type: 'select', | ||||
|         // 	label: '产线', | ||||
|         // 	placeholder: '请选择产线', | ||||
|         // 	param: 'lineId', | ||||
|         // 	selectOptions: [], | ||||
|         // }, | ||||
|         // 选项切换 | ||||
|         // { | ||||
|         // 	type: 'select', | ||||
|         // 	label: '时间类型', | ||||
|         // 	param: 'dateFilterType', | ||||
|         // 	defaultSelect: 0, | ||||
|         // 	selectOptions: [ | ||||
|         // 		{ id: 0, name: '按时间段' }, | ||||
|         // 		{ id: 1, name: '按日期' }, | ||||
|         // 	], | ||||
|         // 	index: 2, | ||||
|         // 	extraOptions: [ | ||||
|         { | ||||
|           // parent: 'dateFilterType', | ||||
|           // 时间段选择 | ||||
|           type: 'datePicker', | ||||
|           label: '时间段', | ||||
|           // dateType: 'datetimerange', | ||||
|           dateType: 'datetimerange', | ||||
|           format: 'yyyy-MM-dd HH:mm:ss', | ||||
|           valueFormat: 'yyyy-MM-ddTHH:mm:ss', | ||||
|           rangeSeparator: '-', | ||||
|           rangeSeparator: '-', | ||||
|           startPlaceholder: '开始时间', | ||||
|           endPlaceholder: '结束时间', | ||||
|           param: 'recordTime', | ||||
|         }, | ||||
|         // 		{ | ||||
|         // 			parent: 'dateFilterType', | ||||
|         // 			// 日期选择 | ||||
|         // 			type: 'datePicker', | ||||
|         // 			// label: '日期', | ||||
|         // 			dateType: 'date', | ||||
|         // 			placeholder: '选择日期', | ||||
|         // 			format: 'yyyy-MM-dd', | ||||
|         // 			valueFormat: 'yyyy-MM-dd', | ||||
|         // 			param: 'timeday', | ||||
|         // 		}, | ||||
|         // 	], | ||||
|         // }, | ||||
|         { | ||||
|           type:'button', | ||||
|           btnName: '查询', | ||||
|           name: 'search', | ||||
|           color: 'primary', | ||||
|         }, | ||||
|          { | ||||
|           type:'separate' | ||||
|         }, | ||||
|         // { | ||||
|         //   type: this.$auth.hasPermi( | ||||
|         //     'analysis:equipment:export' | ||||
|         //   ) | ||||
|         //     ? 'separate' | ||||
|         //     : '', | ||||
|         // }, | ||||
|         { | ||||
|           type:'button', | ||||
|           btnName: '导出', | ||||
|           name: 'export', | ||||
|           color: 'warning', | ||||
|         }, | ||||
|       ], | ||||
|       formConfig: [ | ||||
|         { | ||||
|           type: 'title', | ||||
|           label: '生产数据管理', | ||||
|           label: '工厂信息', | ||||
|         }, | ||||
|       ], | ||||
|       formConfig1: [ | ||||
|         { | ||||
|           type: 'title', | ||||
|           label: '良品数量', | ||||
|         }, | ||||
|       ], | ||||
|       timeList: [ | ||||
| @@ -281,24 +218,52 @@ export default { | ||||
|       ], | ||||
|       factoryList: [ | ||||
|         { | ||||
|           name: '测试', | ||||
|           id:1 | ||||
|           name: '瑞昌中建材光电材料有限公司', | ||||
|           id: 0 | ||||
|         }, | ||||
|         { | ||||
|           name: '邯郸中建材光电材料有限公司', | ||||
|           id: 1 | ||||
|         }, | ||||
|         { | ||||
|           name: '中建材株洲光电材料有限公司', | ||||
|           id: 2 | ||||
|         }, | ||||
|         { | ||||
|           name:  '佳木斯中建材光电材料有限公司', | ||||
|           id: 3 | ||||
|         }, | ||||
|         { | ||||
|           name:  '成都中建材光电材料有限公司', | ||||
|           id: 4 | ||||
|         }, | ||||
|         { | ||||
|           name:  '凯盛光伏材料有限公司', | ||||
|           id: 5 | ||||
|         }, | ||||
|         { | ||||
|           name:  '蚌埠兴科玻璃有限公司', | ||||
|           id: 6 | ||||
|         } | ||||
|       ], | ||||
|       tableProps: [ | ||||
|         { | ||||
|           prop: 'createTime', | ||||
|           prop: 'tableTime', | ||||
|           label: '日期', | ||||
|           minWidth: 100, | ||||
|           showOverflowtooltip: true | ||||
|         }, | ||||
|         { | ||||
|           prop: 'factory', | ||||
|           label: '工厂名称', | ||||
|           filter: (val) => ['瑞昌中建材光电材料有限公司', '邯郸中建材光电材料有限公司', '中建材株洲光电材料有限公司', '佳木斯中建材光电材料有限公司', '成都中建材光电材料有限公司', '凯盛光伏材料有限公司', '蚌埠兴科玻璃有限公司'][val] | ||||
|           filter: (val) => ['瑞昌中建材光电材料有限公司', '邯郸中建材光电材料有限公司', '中建材株洲光电材料有限公司', '佳木斯中建材光电材料有限公司', '成都中建材光电材料有限公司', '凯盛光伏材料有限公司', '蚌埠兴科玻璃有限公司'][val], | ||||
|           minWidth: 200, | ||||
|           showOverflowtooltip: true | ||||
|         }, | ||||
|         { | ||||
|           prop: 'glassType', | ||||
|           label: '玻璃类型', | ||||
|           filter: (val) => ['玻璃芯片', '标准组件', 'BIPV'][val] | ||||
|           filter: (val) => ['玻璃芯片', '标准组件', 'BIPV', '定制组件'][val] | ||||
|         }, | ||||
|         { | ||||
|           prop: 'inputNumber', | ||||
| @@ -340,131 +305,78 @@ export default { | ||||
|         this.$refs.detailOrUpdate.init(val.data.id); | ||||
|       }); | ||||
|     }, | ||||
|     buttonClick() { | ||||
|     // buttonClick() { | ||||
|  | ||||
|     }, | ||||
|     // }, | ||||
|     getYear(e) { | ||||
|       if (this.listQuery.reportTime[0] && e - this.listQuery.reportTime[0] > 10) { | ||||
|       if (this.listQuery.reportTime[1] - this.listQuery.reportTime[0] > 10*365*24*60*60*1000) { | ||||
|         this.$message({ | ||||
|           message: '年份起止时间不能超过十年', | ||||
|           type: 'warning' | ||||
|         }); | ||||
|         this.listQuery.reportTime = [] | ||||
|         // console.log(); | ||||
|       } else { | ||||
|         this.listQuery.beginTime = this.listQuery.reportTime[0] | ||||
|         this.listQuery.endTime = this.listQuery.reportTime[1] | ||||
|       } | ||||
|       // console.log(e); | ||||
|     }, | ||||
|     onValueChange(picker, k) { // 选中近k周后触发的操作 | ||||
|       // console.log(this.listQuery.reportTime[0], this.listQuery.reportTime[1]) | ||||
|       if (this.listQuery.reportTime[0] && this.listQuery.reportTime[1]) { | ||||
|         console.log(this.listQuery.reportTime[0].getTime() - 24 * 60 * 60 * 1000) | ||||
|         console.log(this.listQuery.reportTime) | ||||
|         this.date1 = moment(this.listQuery.reportTime[0].getTime() - 24 * 60 * 60 * 1000).format('YYYY-MM-DD HH:mm:ss') | ||||
|         // this.onValueChange()   // 这里为我们希望value改变时触发的方法 | ||||
|         this.date2 = moment(this.listQuery.reportTime[1].getTime() + 5 * 24 * 60 * 60 * 1000).format('YYYY-MM-DD HH:mm:ss') | ||||
|         const numDays = (new Date(this.date2).getTime() - new Date(this.date1).getTime()) / (24 * 3600 * 1000); if (numDays > 168) { | ||||
|         const numDays = (new Date(this.date2).getTime() - new Date(this.date1).getTime()) / (24 * 3600 * 1000); | ||||
|         if (numDays > 168) { | ||||
|           console.log(numDays) | ||||
|           this.$message({ | ||||
|             message: '周范围不能超过24周', | ||||
|             type: 'warning' | ||||
|           }); | ||||
|           // this.onValueChange() | ||||
|         } else { | ||||
|           this.listQuery.beginTime = this.listQuery.reportTime[0].getTime() - 24 * 60 * 60 * 1000 | ||||
|           this.listQuery.endTime = this.listQuery.reportTime[1].getTime() + 5 * 24 * 60 * 60 * 1000 | ||||
|         } | ||||
|     } | ||||
|       } | ||||
|     }, | ||||
|     changeDayTime() { | ||||
|       if (this.listQuery.reportTime) { | ||||
|         // this.createStartDate = moment(new Date(this.listQuery.reportTime[0]), 'yyyy-MM-dd hh:mm:ss'); | ||||
|         // this.createEndDate = moment(new Date(this.listQuery.reportTime[1]), 'yyyy-MM-dd hh:mm:ss'); | ||||
|         console.log(this.listQuery.reportTime[1]) | ||||
|         const numDays = (new Date(this.listQuery.reportTime[1]).getTime() - new Date(this.listQuery.reportTime[0]).getTime()) / (24 * 3600 * 1000); if (numDays > 30) { | ||||
|         const numDays = (this.listQuery.reportTime[1] - this.listQuery.reportTime[0]) / (24 * 3600 * 1000); | ||||
|         if (numDays > 30) { | ||||
|           this.$message({ | ||||
|             message: '时间范围不能超过30天', | ||||
|             type: 'warning' | ||||
|           }); | ||||
|           this.listQuery.reportTime = []; | ||||
|         } else { | ||||
|           this.listQuery.beginTime = this.listQuery.reportTime[0] | ||||
|           this.listQuery.endTime = this.listQuery.reportTime[1] | ||||
|         } | ||||
|       } else { | ||||
|       } | ||||
|     }, | ||||
|     changeTime(value) { | ||||
|       if (this.listQuery.reportTime) { | ||||
|         const timeStamp = this.listQuery.reportTime[1].getMonth(); //标准时间转为时间戳,毫秒级别 | ||||
|         const fullyear = this.listQuery.reportTime[1].getFullYear() | ||||
|         let days = 0 | ||||
|         switch (timeStamp) { | ||||
|           case 0: | ||||
|           case 2: | ||||
|           case 4: | ||||
|           case 6: | ||||
|           case 7: | ||||
|           case 9: | ||||
|           case 11: | ||||
|             days = 31 | ||||
|             break | ||||
|           case 3: | ||||
|           case 4: | ||||
|           case 8: | ||||
|           case 10: | ||||
|             days = 30 | ||||
|             break | ||||
|           case 1: | ||||
|             if ((fullyear % 400 === 0) || (fullyear % 4 === 0 && fullyear % 100 !== 0)) { | ||||
|               days = 29 | ||||
|             } else { | ||||
|               days = 28 | ||||
|             } | ||||
|             break | ||||
|         } | ||||
|         let startTime = moment(new Date(this.listQuery.reportTime[0]).setDate(1, 0, 0, 0)).format('YYYY-MM-DD HH:mm:ss') | ||||
|         // this.startTimeStamp = this.timeFun(new Date(fullyear, timeStamp, 1, 7, 0, 1).getTime()); //开始时间 | ||||
|         let endTime = this.timeFun(new Date(fullyear, timeStamp, days).getTime()) + ' 23:59:59'; //结束时间 | ||||
|         // console.log(endTimeStamp); | ||||
|         // let endTime = moment(this.listQuery.reportTime[1]).month(monthNum - 1).date(1).endOf("month").format("YYYY-MM-DD"); | ||||
|         // console.log(endTime); | ||||
|         // console.log(moment(new Date(this.listQuery.reportTime[1]).setDate(31, 23, 59, 59)).format('YYYY-MM-DD HH:mm:ss')) | ||||
|         // console.log(moment(new Date(this.listQuery.reportTime[1]).getTime()).format('YYYY-MM-DD HH:mm:ss')) | ||||
|  | ||||
|         // this.createStartDate = moment(new Date(this.listQuery.reportTime[0]), 'yyyy-MM-dd hh:mm:ss'); | ||||
|         // this.createEndDate = moment(new Date(this.listQuery.reportTime[1]), 'yyyy-MM-dd hh:mm:ss'); | ||||
|         const numDays = (new Date(endTime).getTime() - new Date(startTime).getTime()) / (24 * 3600 * 1000); if (numDays > 730) { | ||||
|         const numDays = this.listQuery.reportTime[1] - this.listQuery.reportTime[0]; | ||||
|         if (numDays > 2*365*24*60*60*1000) { | ||||
|           this.$message({ | ||||
|             message: '时间范围不能超过24个月', | ||||
|             type: 'warning' | ||||
|           }); | ||||
|           this.listQuery.reportTime = []; | ||||
|         } else { | ||||
|           this.listQuery.reportTime[0] = startTime | ||||
|           this.listQuery.reportTime[1] = endTime | ||||
|           this.listQuery.beginTime = this.listQuery.reportTime[0] | ||||
|           this.listQuery.endTime = this.listQuery.reportTime[1] | ||||
|         } | ||||
|       } else { | ||||
|         console.log(this.listQuery.reportTime[0]) | ||||
|       } | ||||
|     }, | ||||
|     // handleTime() { | ||||
|     //   this.$forceUpdate() | ||||
|     //   // this.$nextTick(() => [ | ||||
|  | ||||
|     //   // ]) | ||||
|     // }, | ||||
|     // getCurrentYearFirst() { | ||||
|     //   let date = new Date(); | ||||
|     //   date.setDate(1); | ||||
|     //   date.setMonth(0); | ||||
|     //   this.reportTime = date; | ||||
|     //   this.startTimeStamp = this.timeFun(new Date(new Date().getFullYear(), 0, 1, 7, 0, 1).getTime()); //开始时间 | ||||
|     //   this.endTimeStamp = this.timeFun(new Date(new Date().getFullYear(), 11, 31, 7, 0, 0).getTime()); //结束时间 | ||||
|     //   this.listQuery.reportTime[0] = parseTime(new Date(new Date().getFullYear(), 0, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 | ||||
|     //   this.listQuery.reportTime[1] = parseTime(new Date(new Date().getFullYear(), 11, 31, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 100 | ||||
|     // }, | ||||
|     // changeTime(val) { | ||||
|     //   if (val) { | ||||
|     //     // let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别 | ||||
|     //     // this.endTimeStamp = this.timeFun(new Date(val.getFullYear(), 11, 31, 7, 0, 0).getTime()); //开始时间 | ||||
|     //     // this.startTimeStamp = this.timeFun(new Date(val.getFullYear(), 0, 1, 7, 0, 1).getTime()); //结束时间 | ||||
|     //     // this.listQuery.reportTime[0] = parseTime(new Date(val.getFullYear(), 0, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 | ||||
|     //     // this.listQuery.reportTime[1] = parseTime(new Date(val.getFullYear(), 11, 31, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 | ||||
|     //   } else { | ||||
|     //     this.listQuery.reportTime = [] | ||||
|     //   } | ||||
|     // }, | ||||
|     async getDict() { | ||||
|       this.$refs.lineChart.initChart() | ||||
| 			// 产线列表 | ||||
| @@ -498,6 +410,10 @@ export default { | ||||
|       const res = await getProduceDataPage(this.listQuery) | ||||
|       console.log(res) | ||||
|       this.tableData = res.data.records | ||||
|       this.tableData.forEach(item => { | ||||
|         item.tableTime = item?.reportDate?.length > 0 ? item.reportDate[0] + '年' + item.reportDate[1] + '月' + item.reportDate[2] + '日' : '--' | ||||
|       }) | ||||
|       this.listQuery.total = res.data.total | ||||
|     }, | ||||
|     add0(m) { | ||||
|       return m < 10 ? '0' + m : m | ||||
| @@ -526,8 +442,8 @@ export default { | ||||
| 			this.listQuery.reportTime = val.reportTime ? val.reportTime : undefined; | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 10; | ||||
| 					this.listQuery.current = 1; | ||||
| 					this.listQuery.size = 20; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'export': | ||||
| @@ -539,6 +455,17 @@ export default { | ||||
| 		}, | ||||
| 		/** 导出按钮操作 */ | ||||
|     handleExport() { | ||||
|       this.$modal.confirm('是否确认导出生产数据?').then(() => { | ||||
|         // 处理查询参数 | ||||
|         let params = {...this.listQuery}; | ||||
|         params.current = 1; | ||||
|         params.size = 999; | ||||
|         this.exportLoading = true; | ||||
|         return exportOutPutExcel(params); | ||||
|       }).then(response => { | ||||
|         this.$download.excel(response, '生产数据.xls'); | ||||
|         this.exportLoading = false; | ||||
|       }).catch(() => {}); | ||||
|       // 处理查询参数 | ||||
|       // var xlsxParam = { raw: true }; | ||||
|       // /* 从表生成工作簿对象 */ | ||||
| @@ -591,7 +518,7 @@ export default { | ||||
|   margin-top: 8px; | ||||
| } | ||||
| .app-container { | ||||
|   margin: 0 16px 0; | ||||
|   margin: 0 0px 0; | ||||
|   background-color: #fff; | ||||
|   border-radius: 4px; | ||||
|   padding: 16px 16px 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user