729 lines
24 KiB
Vue
729 lines
24 KiB
Vue
<!--
|
||
* @Author: zhp
|
||
* @Date: 2024-04-15 10:49:13
|
||
* @LastEditTime: 2024-07-02 16:35:01
|
||
* @LastEditors: DY
|
||
* @Description:
|
||
-->
|
||
<template>
|
||
<div style="display: flex; flex-direction: column; min-height: calc(100vh - 96px - 32px)">
|
||
<ButtonNav v-show="false" :menus="['碲化镉工厂', '铜铟镓硒工厂']" :button-mode="true" @change="changeFactory" style="margin-top: -10px">
|
||
</ButtonNav>
|
||
<div class="app-container" style="height: auto; flex-grow: 1;">
|
||
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
|
||
<el-form-item v-if="facType === 0" label="工厂名称" prop="factorys">
|
||
<el-select size="small" v-model="listQuery.factorys" placeholder="请选择工厂名称" multiple clearable>
|
||
<el-option v-for="item in dhgfactoryList" :key="item.id" :label="item.name" :value="item.id">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item v-else label="工厂名称" prop="factorys">
|
||
<el-select size="small" v-model="listQuery.factorys" placeholder="请选择工厂名称" multiple clearable>
|
||
<el-option v-for="item in tyjxfactoryList" :key="item.id" :label="item.name" :value="item.id">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="时间维度" prop="date">
|
||
<el-select size="small" clearable v-model="listQuery.date" placeholder="请选择" @change="clearTime">
|
||
<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 === 1 || listQuery.date === ''" label="时间范围" prop="reportTime">
|
||
<el-date-picker size="small" clearable v-model="listQuery.reportTime" type="daterange" range-separator="至"
|
||
start-placeholder="开始日期" value-format="yyyyMMdd" @change="changeDayTime" end-placeholder="结束日期">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item v-show="listQuery.date === 2" label="时间范围" prop="reportTime">
|
||
<el-date-picker size="small" clearable v-model="start" type="week" format="yyyy 第 WW 周" placeholder="选择周"
|
||
style="width: 180px" @change="onValueChange">
|
||
</el-date-picker>
|
||
至
|
||
<el-date-picker size="small" clearable v-model="end" type="week" format="yyyy 第 WW 周" placeholder="选择周"
|
||
style="width: 180px" @change="onValueChange">
|
||
</el-date-picker>
|
||
<!-- <span v-if="start && end" style="margin-left: 10px">
|
||
{{ date1 }} 至 {{ date2 }},共 {{ weekNum }} 周
|
||
</span> -->
|
||
</el-form-item>
|
||
<el-form-item v-show="listQuery.date === 3" label="时间值" prop="reportTime">
|
||
<el-date-picker size="small" v-model="listQuery.reportTime" type="monthrange" value-format="yyyyMM" range-separator="至" start-placeholder="开始月份"
|
||
end-placeholder="结束月份" @change="changeTime">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item v-show="listQuery.date === 4" label="时间值" prop="reportTime">
|
||
<el-date-picker size="small" clearable v-model="start" value-format="yyyy" type="year"
|
||
placeholder="开始时间">
|
||
</el-date-picker>
|
||
~
|
||
<el-date-picker size="small" clearable v-model="end" value-format="yyyy" type="year" placeholder="结束时间"
|
||
@change="getYear">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<!-- <el-form-item label="玻璃类型" prop="type">
|
||
<el-select 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>
|
||
</el-form-item> -->
|
||
<!-- <el-form-item label="玻璃类型" prop="type">
|
||
<el-select 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>
|
||
</el-form-item> -->
|
||
<el-form-item>
|
||
<el-button type="primary" size="small" @click="getDataList">查询</el-button>
|
||
<el-divider direction="vertical"></el-divider>
|
||
<el-button type="primary" size="small" plain @click="handleImport">导入</el-button>
|
||
<el-button type="primary" size="small" plain @click="handleExport">导出</el-button>
|
||
<el-button type="success" size="small" plain @click="addFactory">新增</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<!-- <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> -->
|
||
<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"
|
||
/>
|
||
<detail-or-update v-if="detailOrUpdateVisible" ref="detailOrUpdate" :ftype="facType" @destroy="detailOrUpdateVisible = false" />
|
||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :ftype="facType" @refreshDataList="getDataList" @destroy="addOrUpdateVisible = false" />
|
||
|
||
</div>
|
||
|
||
<!-- 用户导入对话框 -->
|
||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls"
|
||
:headers="upload.headers"
|
||
:action="upload.url"
|
||
:file-list="fileList"
|
||
:disabled="upload.isUploading"
|
||
:on-success="handleFileSuccess"
|
||
:on-progress="handleFileUploadProgress"
|
||
:auto-upload="false" drag>
|
||
<i class="el-icon-upload"></i>
|
||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||
<div class="el-upload__tip text-center" slot="tip">
|
||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||
</div>
|
||
</el-upload>
|
||
<!-- <el-upload
|
||
ref="upload"
|
||
class="upload-demo"
|
||
action="#"
|
||
:limit="1"
|
||
:file-list="fileList"
|
||
:auto-upload="false"
|
||
:http-request="handleFileSuccess"> -->
|
||
<!-- <el-button size="small" type="primary">点击上传</el-button>
|
||
<div slot="tip" class="el-upload__tip">只能上传.xlsx, .xls文件,且不超过500kb</div>
|
||
</el-upload> -->
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||
<el-button @click="upload.open = false">取 消</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!-- <inputTable :date="date" :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all"
|
||
:type="listQuery.reportType" @refreshDataList="getDataList" /> -->
|
||
<!-- <pagination
|
||
:limit.sync="listQuery.pageSize"
|
||
:page.sync="listQuery.pageNo"
|
||
:total="listQuery.total"
|
||
@pagination="getDataList" /> -->
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import { parseTime } from '@/utils/ruoyi';
|
||
import { prodTargetDiPage, prodTargetToPage, exportDiTargetExcel, exportToTargetExcel, delTarget, importToTarget, importDiTarget } from '@/api/produceData';
|
||
// import inputTable from './inputTable.vue';
|
||
import moment from 'moment'
|
||
import ButtonNav from '@/components/ButtonNav'
|
||
import basicPage from '@/mixins/basic-page'
|
||
import detailOrUpdate from './detail-or-updata';
|
||
import addOrUpdate from './add-or-updata';
|
||
import { factoryList, dhgfactoryList, tyjxfactoryList } from "@/utils/constants";
|
||
import {getBaseHeader} from "@/utils/request";
|
||
|
||
|
||
// import FileSaver from 'file-saver'
|
||
// import * as XLSX from 'xlsx'
|
||
export default {
|
||
components: { ButtonNav, detailOrUpdate, addOrUpdate },
|
||
mixins: [basicPage],
|
||
data() {
|
||
return {
|
||
factoryList,
|
||
dhgfactoryList,
|
||
tyjxfactoryList,
|
||
currentMenu: '碲化镉工厂',
|
||
fileList: [],
|
||
start: undefined,
|
||
end: undefined,
|
||
listQuery: {
|
||
size: 10,
|
||
current: 1,
|
||
factorys: null,
|
||
total: 0,
|
||
date: 3,
|
||
beginTime: undefined,
|
||
endTime: undefined,
|
||
reportTime: []
|
||
},
|
||
detailOrUpdateVisible: false,
|
||
addOrUpdateVisible:false,
|
||
date1: undefined,
|
||
date2: undefined,
|
||
// 用户导入参数
|
||
upload: {
|
||
// 是否显示弹出层(用户导入)
|
||
open: false,
|
||
// 弹出层标题(用户导入)
|
||
title: "导入",
|
||
// 是否禁用上传
|
||
isUploading: false,
|
||
// 是否更新已经存在的用户数据
|
||
// updateSupport: 0,
|
||
// 设置上传的请求头部
|
||
headers: getBaseHeader(),
|
||
// 上传的地址
|
||
url: process.env.VUE_APP_BASE_API + '/admin-api/ip/prod-target/di-target-import-excel'
|
||
},
|
||
tableBtn: [
|
||
{
|
||
type: 'detail',
|
||
btnName: '详情',
|
||
},
|
||
{
|
||
type: 'edit',
|
||
btnName: '修改',
|
||
},
|
||
{
|
||
type: 'delete',
|
||
btnName: '删除',
|
||
}
|
||
].filter((v) => v),
|
||
typeList: [
|
||
{
|
||
name: '芯片',
|
||
id: 0,
|
||
},
|
||
{
|
||
name: '标准组件',
|
||
id: 1,
|
||
},
|
||
{
|
||
name: 'BIPV产品',
|
||
id: 2,
|
||
},
|
||
],
|
||
urlOptions: {
|
||
// 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: '成本管理',
|
||
},
|
||
],
|
||
timeList: [
|
||
{
|
||
value: 1,
|
||
label: '日'
|
||
},
|
||
{
|
||
value: 2,
|
||
label: '周'
|
||
},
|
||
{
|
||
value: 3,
|
||
label: '月'
|
||
},
|
||
{
|
||
value: 4,
|
||
label: '年'
|
||
}
|
||
],
|
||
tableProps: [
|
||
{
|
||
prop: 'factory',
|
||
label: '工厂名称',
|
||
filter: (val) => factoryList[val],
|
||
minWidth: 200,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'targetTime',
|
||
label: '目标时间',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'updateTime',
|
||
label: '提交时间',
|
||
filter: parseTime,
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'ftoInput',
|
||
label: 'FTO投入量(片)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipYield',
|
||
label: '芯片产量(片)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipAveragePower',
|
||
label: '芯片平均功率(W)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipYieldRate',
|
||
label: '芯片良率(%)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipTotalPower',
|
||
label: '芯片总功率(KW)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipCssMarriageRate',
|
||
label: 'CSS稼动率(%)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipOee',
|
||
label: '芯片段OEE(%)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipCapacityUtilizationRate',
|
||
label: '芯片产能利用率(%)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipAnnualAverageProduction',
|
||
label: '芯片人均产量(片/人)',
|
||
minWidth: 180,
|
||
showOverflowtooltip: true
|
||
},
|
||
{
|
||
prop: 'chipBom',
|
||
label: '芯片BOM',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
},
|
||
],
|
||
// timeSelect:'month',
|
||
// startTimeStamp:null, //开始时间
|
||
// endTimeStamp:null, //结束时间
|
||
// date:'凯盛玻璃控股成员企业2024生产数据',
|
||
// reportTime: '',
|
||
// startTimeStamp: '',
|
||
// endTimeStamp: '',
|
||
tableData: [],
|
||
facType: 0
|
||
// proLineList: [],
|
||
// all: {}
|
||
};
|
||
},
|
||
computed: {
|
||
weekNum() {
|
||
return Math.round((this.end - this.start) / (24 * 60 * 60 * 1000 * 7)) + 1
|
||
},
|
||
},
|
||
watch: {
|
||
facType(value) {
|
||
if (value === 0) {
|
||
this.$set(this.tableProps, 3, {
|
||
prop: 'ftoInput',
|
||
label: 'FTO投入量(片)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
})
|
||
this.upload.url = process.env.VUE_APP_BASE_API + '/admin-api/ip/prod-target/di-target-import-excel'
|
||
} else {
|
||
this.$set(this.tableProps, 3, {
|
||
prop: 'molybdenumElectrodeInput',
|
||
label: '钼电极投入量(片)',
|
||
minWidth: 150,
|
||
showOverflowtooltip: true
|
||
})
|
||
this.upload.url = process.env.VUE_APP_BASE_API + '/admin-api/ip/prod-target/to-target-import-excel'
|
||
}
|
||
}
|
||
},
|
||
created() {
|
||
const currentMonth = new Date()
|
||
this.listQuery.reportTime = [moment(currentMonth).format('yyyyMM'), moment(currentMonth).format('yyyyMM')]
|
||
this.changeTime()
|
||
},
|
||
methods: {
|
||
clearTime() {
|
||
this.listQuery.beginTime = undefined
|
||
this.listQuery.endTime = undefined
|
||
this.listQuery.reportTime = []
|
||
this.start = undefined
|
||
this.end = undefined
|
||
},
|
||
handleImport() {
|
||
this.upload.title = "生产目标导入";
|
||
this.upload.open = true;
|
||
this.fileList = []
|
||
},
|
||
// 文件上传中处理
|
||
handleFileUploadProgress(event, file, fileList) {
|
||
this.upload.isUploading = true;
|
||
},
|
||
// 文件上传成功处理
|
||
handleFileSuccess(response, file, fileList) {
|
||
if (response.code !== 0) {
|
||
this.$modal.msgError(response.msg)
|
||
return;
|
||
}
|
||
this.upload.open = false;
|
||
this.upload.isUploading = false;
|
||
this.$refs.upload.clearFiles();
|
||
this.$message.success('导入成功!')
|
||
this.getDataList()
|
||
},
|
||
// 提交上传文件
|
||
submitFileForm() {
|
||
this.$refs.upload.submit();
|
||
},
|
||
addFactory() {
|
||
this.addOrUpdateVisible = true;
|
||
this.$nextTick(() => {
|
||
this.$refs.addOrUpdate.init();
|
||
});
|
||
},
|
||
changeFactory($event) {
|
||
this.currentMenu = $event
|
||
this.facType = this.currentMenu === '碲化镉工厂' ? 0 : 1
|
||
this.getDataList()
|
||
},
|
||
handleClick(val) {
|
||
if (val.type === "edit") {
|
||
this.addOrUpdateVisible = true;
|
||
// this.addOrEditTitle = "编辑";
|
||
this.$nextTick(() => {
|
||
this.$refs.addOrUpdate.init(val.data.id);
|
||
});
|
||
} else if (val.type === "delete") {
|
||
this.deleteHandle(val.data.id, val.data.factory, val.data._pageIndex)
|
||
} else {
|
||
this.otherMethods(val)
|
||
}
|
||
},
|
||
// 删除
|
||
deleteHandle(id, name, index) {
|
||
this.$confirm('是否确认删除工厂名称为' + factoryList[name] + '的数据项?', "系统提示", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
delTarget(id).then(({ data }) => {
|
||
this.$message({
|
||
message: "操作成功",
|
||
type: "success",
|
||
duration: 1500,
|
||
onClose: () => {
|
||
this.getDataList();
|
||
},
|
||
});
|
||
});
|
||
})
|
||
.catch(() => { });
|
||
},
|
||
otherMethods(val) {
|
||
this.detailOrUpdateVisible = true;
|
||
this.addOrEditTitle = "详情";
|
||
this.$nextTick(() => {
|
||
this.$refs.detailOrUpdate.init(val.data.id);
|
||
});
|
||
},
|
||
getYear(e) {
|
||
if (this.end && Number(this.end) - Number(this.start) > 10) {
|
||
this.$message({
|
||
message: '年份起止时间不能超过十年',
|
||
type: 'warning'
|
||
});
|
||
this.start = undefined
|
||
this.end = undefined
|
||
// console.log();
|
||
} else {
|
||
if (Number(this.end) < Number(this.start)) {
|
||
this.$message({
|
||
message: '结束年份不能小于开始年份',
|
||
type: 'warning'
|
||
});
|
||
this.start = undefined
|
||
this.end = undefined
|
||
} else {
|
||
this.listQuery.beginTime = Number(this.start)
|
||
this.listQuery.endTime = Number(this.end)
|
||
}
|
||
}
|
||
if (!this.start && !this.end) {
|
||
this.listQuery.beginTime = undefined
|
||
this.listQuery.endTime = undefined
|
||
}
|
||
// console.log(e);
|
||
},
|
||
changeTime() {
|
||
if (this.listQuery.reportTime) {
|
||
const years = Number(this.listQuery.reportTime[1].slice(0, 4)) - Number(this.listQuery.reportTime[0].slice(0, 4))
|
||
const months = Number(this.listQuery.reportTime[1].slice(4)) - Number(this.listQuery.reportTime[0].slice(4))
|
||
if (years * 12 + months > 24) {
|
||
this.$message({
|
||
message: '时间范围不能超过24个月',
|
||
type: 'warning'
|
||
});
|
||
this.listQuery.reportTime = [];
|
||
} else {
|
||
this.listQuery.beginTime = Number(this.listQuery.reportTime[0])
|
||
this.listQuery.endTime = Number(this.listQuery.reportTime[1])
|
||
}
|
||
} else {
|
||
this.listQuery.beginTime = undefined
|
||
this.listQuery.endTime = undefined
|
||
}
|
||
},
|
||
onValueChange(picker, k) { // 选中近k周后触发的操作
|
||
if (this.start && this.end) {
|
||
this.date1 = moment(this.start.getTime() - 24 * 60 * 60 * 1000).format('YYYY-MM-DD HH:mm:ss')
|
||
this.date2 = moment(this.end.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) {
|
||
console.log(numDays)
|
||
this.$message({
|
||
message: '周范围不能超过24周',
|
||
type: 'warning'
|
||
});
|
||
} else {
|
||
this.listQuery.beginTime = Number(moment(this.start.getTime()).format('YYYYWW'))
|
||
this.listQuery.endTime = Number(moment(this.end.getTime()).format('YYYYWW'))
|
||
}
|
||
}
|
||
if (!this.start && !this.end) {
|
||
this.listQuery.beginTime = undefined
|
||
this.listQuery.endTime = undefined
|
||
}
|
||
},
|
||
changeDayTime() {
|
||
if (this.listQuery.reportTime) {
|
||
const numDays = Number(this.listQuery.reportTime[1]) - Number(this.listQuery.reportTime[0])
|
||
if (numDays > 30) {
|
||
this.$message({
|
||
message: '时间范围不能超过30天',
|
||
type: 'warning'
|
||
});
|
||
this.listQuery.reportTime = [];
|
||
} else {
|
||
this.listQuery.beginTime = Number(this.listQuery.reportTime[0])
|
||
this.listQuery.endTime = Number(this.listQuery.reportTime[1])
|
||
}
|
||
} else {
|
||
this.listQuery.beginTime = undefined
|
||
this.listQuery.endTime = undefined
|
||
}
|
||
},
|
||
async getDataList() {
|
||
if (this.currentMenu === '碲化镉工厂') {
|
||
await prodTargetDiPage(this.listQuery).then(res => {
|
||
if (res.code === 0) {
|
||
this.tableData = res.data.records
|
||
this.listQuery.total = res.data.total
|
||
}
|
||
})
|
||
} else {
|
||
await prodTargetToPage(this.listQuery).then(res => {
|
||
if (res.code === 0) {
|
||
this.tableData = res.data.records
|
||
this.tableData.forEach(item => {
|
||
const year = item.targetYear ? item.targetYear + '年' : ''
|
||
const month = item.targetMonth ? item.targetMonth + '月' : ''
|
||
item.tagertTime = year + month
|
||
})
|
||
this.listQuery.total = res.data.total
|
||
}
|
||
})
|
||
}
|
||
},
|
||
buttonClick(val) {
|
||
this.listQuery.reportTime = val.reportTime ? val.reportTime : undefined;
|
||
switch (val.btnName) {
|
||
case 'search':
|
||
this.listQuery.current = 1;
|
||
this.listQuery.size = 10;
|
||
this.getDataList();
|
||
break;
|
||
case 'export':
|
||
this.handleExport();
|
||
break;
|
||
default:
|
||
console.log(val);
|
||
}
|
||
},
|
||
/** 导出按钮操作 */
|
||
handleExport() {
|
||
const queryParams = this.listQuery;
|
||
queryParams.current = 1
|
||
queryParams.size = 999
|
||
if (this.facType === 0) {
|
||
this.$modal.confirm('是否确认导出所有数据项?').then(() => {
|
||
this.exportLoading = true;
|
||
return exportDiTargetExcel(queryParams);
|
||
}).then(response => {
|
||
this.$download.excel(response, '碲化镉工厂生产目标数据.xls');
|
||
this.exportLoading = false;
|
||
}).catch(() => {});
|
||
} else {
|
||
this.$modal.confirm('是否确认导出所有数据项?').then(() => {
|
||
this.exportLoading = true;
|
||
return exportToTargetExcel(queryParams);
|
||
}).then(response => {
|
||
this.$download.excel(response, '铜铟镓硒工厂生产目标数据.xls');
|
||
this.exportLoading = false;
|
||
}).catch(() => {});
|
||
}
|
||
}
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style>
|
||
/* .blueTip { */
|
||
/* padding-bottom: 10px; */
|
||
/* } */
|
||
.blueTip .el-date-editor .el-range__icon {
|
||
font-size: 16px;
|
||
color: #0b58ff;
|
||
}
|
||
.blueTip .el-input__prefix .el-icon-date {
|
||
font-size: 16px;
|
||
color: #0b58ff;
|
||
}
|
||
.blueTip .el-input__prefix .el-icon-time {
|
||
font-size: 16px;
|
||
color: #0b58ff;
|
||
}
|
||
.blueTip::before{
|
||
display: inline-block;
|
||
content: '';
|
||
width: 4px;
|
||
height: 18px;
|
||
background: #0B58FF;
|
||
border-radius: 1px;
|
||
margin-right: 8PX;
|
||
margin-top: 8px;
|
||
}
|
||
.app-container {
|
||
margin: 0;
|
||
background-color: #fff;
|
||
border-radius: 4px;
|
||
padding: 16px 16px 0;
|
||
height: calc(100vh - 134px);
|
||
overflow: auto;
|
||
}
|
||
</style>
|