更新
This commit is contained in:
@@ -134,11 +134,10 @@ export default {
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '节拍',
|
||||
name: '节拍 pcs/min',
|
||||
min: 0,
|
||||
interval: 20,
|
||||
axisLabel: {
|
||||
formatter: '{value} pcs/min',
|
||||
formatter: '{value}',
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
@@ -59,24 +59,36 @@
|
||||
<i class="el-icon-delete"></i>
|
||||
</div> -->
|
||||
<div
|
||||
class="file-list__item"
|
||||
v-for="(file, index) in files"
|
||||
:key="file.fileName"
|
||||
:style="{
|
||||
background: isPicMode
|
||||
? `url(${file.fileUrl}) no-repeat`
|
||||
: `url(${defaultBg}) no-repeat`,
|
||||
backgroundSize: isPicMode ? '100% 100%' : '64px',
|
||||
backgroundPosition: isPicMode ? '0% 0%' : 'center',
|
||||
}"
|
||||
:data-name="file.fileName">
|
||||
<el-button
|
||||
v-if="!disabled"
|
||||
type="text"
|
||||
class="el-icon-delete"
|
||||
style="padding: 0"
|
||||
@click="(e) => handleDelete(file)" />
|
||||
</div>
|
||||
style="width: 100%">
|
||||
<div
|
||||
class="file-list__item"
|
||||
v-if="!isPicMode"
|
||||
:style="{
|
||||
background: isPicMode
|
||||
? `url(${file.fileUrl}) no-repeat`
|
||||
: `url(${defaultBg}) no-repeat`,
|
||||
backgroundSize: isPicMode ? '100% 100%' : '64px',
|
||||
backgroundPosition: isPicMode ? '0% 0%' : 'center',
|
||||
}"
|
||||
@click="handleDownload(file)"
|
||||
:data-name="file.fileName">
|
||||
<el-button
|
||||
v-if="!disabled"
|
||||
type="text"
|
||||
class="el-icon-delete"
|
||||
style="padding: 0"
|
||||
@click="(e) => handleDelete(file)" />
|
||||
</div>
|
||||
|
||||
<el-image
|
||||
v-else
|
||||
class="file-list__item"
|
||||
style="width: 100%"
|
||||
:src="file.fileUrl"
|
||||
:preview-src-list="files.map((item) => item.fileUrl)"></el-image>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
@@ -277,6 +289,32 @@ export default {
|
||||
// Array
|
||||
this.$emit('update-filelist', this.appendFilelist);
|
||||
},
|
||||
|
||||
async handleDownload(file) {
|
||||
if (this.isPicMode) {
|
||||
// this.$emit('preview', file);
|
||||
const link = document.createElement('a');
|
||||
link.href = file.fileUrl;
|
||||
link.target = '_blank';
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
} else {
|
||||
// this.$emit('download', file);
|
||||
const data = await this.$axios({
|
||||
url: file.fileUrl,
|
||||
method: 'get',
|
||||
responseType: 'blob',
|
||||
});
|
||||
const link = document.createElement('a');
|
||||
link.href = window.URL.createObjectURL(new Blob([data]));
|
||||
link.download = file.fileName;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
window.URL.revokeObjectURL(link.href);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!--
|
||||
<!--
|
||||
filename: dialogForm.vue
|
||||
author: liubin
|
||||
date: 2023-08-15 10:32:36
|
||||
@@ -44,7 +44,7 @@
|
||||
<el-date-picker
|
||||
v-if="col.datetime"
|
||||
v-model="form[col.prop]"
|
||||
type="datetime"
|
||||
type="date"
|
||||
:placeholder="`请选择${col.label}`"
|
||||
value-format="timestamp"
|
||||
v-bind="col.bind"></el-date-picker>
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
<el-date-picker
|
||||
v-model="form.productionTime"
|
||||
:disabled="disabled"
|
||||
type="datetime"
|
||||
type="date"
|
||||
placeholder="请选择生产日期"
|
||||
value-format="timestamp"></el-date-picker>
|
||||
</el-form-item>
|
||||
@@ -92,7 +92,7 @@
|
||||
<el-date-picker
|
||||
v-model="form.enterTime"
|
||||
:disabled="disabled"
|
||||
type="datetime"
|
||||
type="date"
|
||||
placeholder="请选择进场日期"
|
||||
value-format="timestamp"></el-date-picker>
|
||||
</el-form-item>
|
||||
@@ -317,7 +317,7 @@ export default {
|
||||
this.form
|
||||
);
|
||||
// 保存原始文件名
|
||||
if ('fileNames' in this.form) this.form.fileNames.push(file.name);
|
||||
if ('fileNames' in this.form) this.form.fileNames.push(file.name+Date.now());
|
||||
// 保存完整地址
|
||||
if ('fileUrls' in this.form) this.form.fileUrls.push(response.data);
|
||||
this.$modal.msgSuccess('上传成功');
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
@cancel="cancel"
|
||||
width="60%"
|
||||
@confirm="submitForm">
|
||||
<DialogForm
|
||||
<DialogForm1
|
||||
v-if="open"
|
||||
key="index-dialog-form"
|
||||
ref="form"
|
||||
@@ -78,7 +78,7 @@
|
||||
queryParams: {
|
||||
equipmentId: form.id,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
},
|
||||
tableBtn: [
|
||||
this.$auth.hasPermi('base:equipment-attr:update')
|
||||
@@ -107,6 +107,7 @@
|
||||
import moment from 'moment';
|
||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
|
||||
import EquipmentDrawer from './components/EquipmentDrawer';
|
||||
import DialogForm1 from './components/DialogForm';
|
||||
|
||||
import {
|
||||
createEquipment,
|
||||
@@ -124,6 +125,7 @@ export default {
|
||||
components: {
|
||||
Editor,
|
||||
EquipmentDrawer,
|
||||
DialogForm1,
|
||||
},
|
||||
mixins: [basicPageMixin],
|
||||
data() {
|
||||
@@ -157,7 +159,12 @@ export default {
|
||||
width: 180,
|
||||
filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
|
||||
},
|
||||
{ width: 200,showOverflowtooltip :true, prop: 'name', label: '设备名称' },
|
||||
{
|
||||
width: 200,
|
||||
showOverflowtooltip: true,
|
||||
prop: 'name',
|
||||
label: '设备名称',
|
||||
},
|
||||
{ width: 256, prop: 'code', label: '设备编码' },
|
||||
{ prop: 'equipmentType', label: '设备类型' },
|
||||
{ prop: 'enName', label: '英文名称' },
|
||||
@@ -436,7 +443,7 @@ export default {
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
code: '',
|
||||
name: '',
|
||||
},
|
||||
@@ -562,6 +569,7 @@ export default {
|
||||
return;
|
||||
}
|
||||
// 添加的提交
|
||||
this.form.files = [];
|
||||
createEquipment(this.form).then((response) => {
|
||||
this.$modal.msgSuccess('新增成功');
|
||||
this.open = false;
|
||||
|
||||
@@ -240,25 +240,6 @@ export default {
|
||||
const id = row.id;
|
||||
getEquipmentType(id).then((response) => {
|
||||
this.form = response.data;
|
||||
// this.form = {
|
||||
// code: 'SBLX20230925184444000041',
|
||||
// name: '测试131',
|
||||
// remark: '测试可删除',
|
||||
// id: '1706258479729336322',
|
||||
// files: [
|
||||
// { fileName: '1.png', fileUrl: '', fileType: 2 },
|
||||
// { fileName: '1.asdfaslkjfkasdf.png', fileUrl: '', fileType: 2 },
|
||||
// { fileName: '2.txt', fileUrl: '', fileType: 2 },
|
||||
// { fileName: '1.rar', fileUrl: '', fileType: 2 },
|
||||
// { fileName: '1.kkk', fileUrl: '', fileType: 2 },
|
||||
// { fileName: 'test.file', fileUrl: '', fileType: 2 },
|
||||
// { fileName: '222', fileUrl: '', fileType: 2 },
|
||||
// { fileName: 'g', fileUrl: '', fileType: 2 },
|
||||
// ],
|
||||
// createTime: 1695638697000,
|
||||
// parentId: '1701869972319584257',
|
||||
// };
|
||||
// debugger;
|
||||
this.open = true;
|
||||
this.title = '修改设备类型';
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-03 14:09:18
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-11-29 13:29:28
|
||||
* @LastEditTime: 2025-02-24 15:21:07
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@@ -17,7 +17,7 @@
|
||||
v-for="opt in getDictDatas(DICT_TYPE.PROCESS_TYPE)"
|
||||
:key="opt.value"
|
||||
:label="opt.label"
|
||||
:value="opt.value + '+' + opt.label"></el-option>
|
||||
:value="opt.value"></el-option>
|
||||
</el-select>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="visible = false">
|
||||
@@ -53,18 +53,21 @@ export default {
|
||||
visible: false,
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
changeInput() {
|
||||
const processDictName = this.getDictDatas(this.DICT_TYPE.PROCESS_TYPE).find(item=>
|
||||
item.value == this.list.processDict
|
||||
)
|
||||
const data = {
|
||||
id: this.list.id,
|
||||
processDict: this.list.processDict.split('+')[0],
|
||||
processDictName: this.list.processDict.split('+')[1],
|
||||
processDict: this.list.processDict,
|
||||
processDictName: processDictName.label,
|
||||
};
|
||||
switchLineBindProcess(data).then((response) => {
|
||||
this.$modal.msgSuccess('修改成功');
|
||||
this.visible = false;
|
||||
this.list.processDictName = this.list.processDict.split('+')[1];
|
||||
this.$emit('emitData');
|
||||
});
|
||||
},
|
||||
|
||||
@@ -72,19 +72,37 @@
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="规格" prop="specifications">
|
||||
<el-form-item label="原片规格" prop="originalSpecifications">
|
||||
<el-input
|
||||
:disabled="isdetail"
|
||||
v-model="dataForm.specifications"
|
||||
placeholder="请输入规格" />
|
||||
v-model="dataForm.originalSpecifications"
|
||||
placeholder="请输入原片规格" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位平方数" prop="area">
|
||||
<el-form-item label="原片单位平方数" prop="originalArea">
|
||||
<el-input
|
||||
:disabled="isdetail"
|
||||
v-model="dataForm.originalArea"
|
||||
placeholder="请输入原片单位平方数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="深加工规格" prop="specifications">
|
||||
<el-input
|
||||
:disabled="isdetail"
|
||||
v-model="dataForm.specifications"
|
||||
placeholder="请输入深加工规格" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="深加工单位平方数" prop="area">
|
||||
<el-input
|
||||
:disabled="isdetail"
|
||||
v-model="dataForm.area"
|
||||
placeholder="请输入单位平方数" />
|
||||
placeholder="请输入深加工单位平方数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -222,11 +240,13 @@ export default {
|
||||
id: null,
|
||||
name: '', // 产品名称
|
||||
code: '', // 产品编码
|
||||
area: 0, // 单位平方数(float only)
|
||||
area: 0, // 深加工单位平方数(float only)
|
||||
typeDictValue: null, // 产品类型id
|
||||
processTime: null, // 单位产品用时 (s)
|
||||
specifications: '', // 规格
|
||||
specifications: '', // 深加工规格
|
||||
unitDictValue: '', // 单位id
|
||||
originalSpecifications: '', // 原片规格
|
||||
originalArea: 0, // 原片单位平方数
|
||||
},
|
||||
listQuery: {
|
||||
pageSize: 10,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-01 14:55:51
|
||||
* @LastEditors: DY
|
||||
* @LastEditTime: 2023-10-13 10:27:00
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2025-02-24 16:06:59
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@@ -49,27 +49,31 @@ import {
|
||||
|
||||
const tableProps = [
|
||||
{
|
||||
prop: 'code',
|
||||
label: '产品编码'
|
||||
prop: 'createTime',
|
||||
label: '创建时间',
|
||||
filter: parseTime
|
||||
},
|
||||
{
|
||||
prop: 'name',
|
||||
label: '产品名称'
|
||||
},
|
||||
{
|
||||
prop: 'code',
|
||||
label: '产品编码'
|
||||
},
|
||||
{
|
||||
prop: 'originalSpecifications',
|
||||
label: '原片规格'
|
||||
},
|
||||
{
|
||||
prop: 'specifications',
|
||||
label: '规格'
|
||||
label: '深加工规格'
|
||||
},
|
||||
{
|
||||
prop: 'unitDictValue',
|
||||
label: '单位',
|
||||
subcomponent: unitDict,
|
||||
},
|
||||
{
|
||||
prop: 'createTime',
|
||||
label: '创建时间',
|
||||
filter: parseTime
|
||||
},
|
||||
];
|
||||
|
||||
export default {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-01 13:52:10
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-11-22 14:02:59
|
||||
* @LastEditTime: 2025-02-24 15:32:45
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@@ -81,6 +81,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input
|
||||
v-model="dataForm.description"
|
||||
type="textarea"
|
||||
placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input
|
||||
@@ -90,17 +101,6 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input
|
||||
v-model="dataForm.description"
|
||||
type="textarea"
|
||||
placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
@@ -160,6 +160,7 @@ export default {
|
||||
],
|
||||
tvalue: [
|
||||
{
|
||||
required: true,
|
||||
type: 'number',
|
||||
message: '请输入正确的数字',
|
||||
trigger: 'change',
|
||||
|
||||
@@ -102,11 +102,10 @@ export default {
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '投入/产出',
|
||||
name: '投入/产出 片',
|
||||
min: 0,
|
||||
interval: 100,
|
||||
axisLabel: {
|
||||
formatter: '{value} 片',
|
||||
formatter: '{value}',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -69,26 +69,32 @@ import tableHeightMixin from '@/mixins/lb/tableHeightMixin';
|
||||
import ButtonNav from '@/components/ButtonNav';
|
||||
import baseTableS from './baseTable.vue';
|
||||
import barChart from './BarChart.vue';
|
||||
import * as XLSX from 'xlsx';
|
||||
import FileSaver from 'file-saver';
|
||||
|
||||
const tableProps = [
|
||||
{
|
||||
prop: 'factoryName',
|
||||
label: '工厂',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'lineName',
|
||||
label: '产线',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'sizes',
|
||||
label: '规格',
|
||||
width: 105,
|
||||
showOverflowtooltip: true,
|
||||
fixed: true
|
||||
},
|
||||
|
||||
{
|
||||
prop: 'inputN',
|
||||
label: '投入',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'inputNum',
|
||||
@@ -103,6 +109,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'outputN',
|
||||
label: '产出',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'outputNum',
|
||||
@@ -118,6 +125,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'lossN',
|
||||
label: '不良',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'lossNum',
|
||||
@@ -148,10 +156,12 @@ const tableProps = [
|
||||
{
|
||||
prop: 'lossD',
|
||||
label: '不良详情',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'original',
|
||||
label: '原片',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'originalLossNum',
|
||||
@@ -167,6 +177,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'edge',
|
||||
label: '磨边',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'edgeLossNum',
|
||||
@@ -182,6 +193,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'drill',
|
||||
label: '打孔',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'drillLossNum',
|
||||
@@ -197,6 +209,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'coating',
|
||||
label: '镀膜',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'coatingLossNum',
|
||||
@@ -212,6 +225,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'silk',
|
||||
label: '丝印',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'silkLossNum',
|
||||
@@ -227,6 +241,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'tempering',
|
||||
label: '钢化',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'temperingLossNum',
|
||||
@@ -242,6 +257,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'packing',
|
||||
label: '包装',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'packingLossNum',
|
||||
@@ -480,6 +496,7 @@ export default {
|
||||
tables.removeChild(tables.querySelector('.el-table__fixed-right'));
|
||||
}
|
||||
let exportTable = XLSX.utils.table_to_book(tables);
|
||||
exportTable.Sheets.Sheet1.A1.v = '序号' //导出表格第一列表头为序号
|
||||
|
||||
var exportTableOut = XLSX.write(exportTable, {
|
||||
bookType: 'xlsx',
|
||||
@@ -492,7 +509,7 @@ export default {
|
||||
new Blob([exportTableOut], {
|
||||
type: 'application/octet-stream',
|
||||
}),
|
||||
this.fileName + '产线统计数据查询-当前.xlsx'
|
||||
'产线统计数据.xlsx'
|
||||
);
|
||||
} catch (e) {
|
||||
if (typeof console !== 'undefined') console.log(e, exportTableOut);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: Do not edit
|
||||
* @Date: 2023-08-29 14:59:29
|
||||
* @LastEditTime: 2025-01-14 09:53:23
|
||||
* @LastEditTime: 2025-02-24 14:51:47
|
||||
* @LastEditors: zwq
|
||||
* @Description:
|
||||
-->
|
||||
@@ -42,34 +42,41 @@ const tableProps = [
|
||||
{
|
||||
prop: 'reportType',
|
||||
label: '报表类型',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'reportDate',
|
||||
label: '日期',
|
||||
width: 130,
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'factoryName',
|
||||
label: '工厂',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'lineName',
|
||||
label: '产线',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'sizes',
|
||||
label: '规格',
|
||||
width: 105,
|
||||
showOverflowtooltip: true,
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'process',
|
||||
label: '产品工艺',
|
||||
fixed: true
|
||||
},
|
||||
|
||||
{
|
||||
prop: 'inputN',
|
||||
label: '投入',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'inputNum',
|
||||
@@ -78,12 +85,14 @@ const tableProps = [
|
||||
{
|
||||
prop: 'inputArea',
|
||||
label: '投入面积/m²',
|
||||
filter: (val) => (val != null ? val.toFixed(2) : '-'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
prop: 'outputN',
|
||||
label: '产出',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'outputNum',
|
||||
@@ -99,6 +108,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'lossN',
|
||||
label: '不良',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'lossNum',
|
||||
@@ -129,10 +139,12 @@ const tableProps = [
|
||||
{
|
||||
prop: 'lossD',
|
||||
label: '不良详情',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'original',
|
||||
label: '原片',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'originalLossNum',
|
||||
@@ -148,6 +160,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'edge',
|
||||
label: '磨边',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'edgeLossNum',
|
||||
@@ -163,6 +176,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'drill',
|
||||
label: '打孔',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'drillLossNum',
|
||||
@@ -178,6 +192,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'coating',
|
||||
label: '镀膜',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'coatingLossNum',
|
||||
@@ -193,6 +208,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'silk',
|
||||
label: '丝印',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'silkLossNum',
|
||||
@@ -208,6 +224,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'tempering',
|
||||
label: '钢化',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'temperingLossNum',
|
||||
@@ -223,6 +240,7 @@ const tableProps = [
|
||||
{
|
||||
prop: 'packing',
|
||||
label: '包装',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'packingLossNum',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: Do not edit
|
||||
* @Date: 2023-08-29 14:59:29
|
||||
* @LastEditTime: 2025-01-09 10:45:41
|
||||
* @LastEditTime: 2025-02-26 16:42:12
|
||||
* @LastEditors: zwq
|
||||
* @Description:
|
||||
-->
|
||||
@@ -42,28 +42,34 @@ const tableProps1 = [
|
||||
prop: 'processType',
|
||||
label: '工艺类型',
|
||||
filter: (val) => (val === 1 ? '面板' : '背板'),
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'reportType',
|
||||
label: '报表类型',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'reportDate',
|
||||
label: '日期',
|
||||
width: 130,
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'factoryName',
|
||||
label: '工厂',
|
||||
fixed: true
|
||||
},
|
||||
{
|
||||
prop: 'process',
|
||||
label: '产品工艺',
|
||||
fixed: true
|
||||
},
|
||||
|
||||
{
|
||||
prop: 'all',
|
||||
label: '合计',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'inputArea',
|
||||
@@ -228,6 +234,7 @@ export default {
|
||||
tables.removeChild(tables.querySelector('.el-table__fixed-right'));
|
||||
}
|
||||
let exportTable = XLSX.utils.table_to_book(tables);
|
||||
exportTable.Sheets.Sheet1.A1.v = '序号' //导出表格第一列表头为序号
|
||||
|
||||
var exportTableOut = XLSX.write(exportTable, {
|
||||
bookType: 'xlsx',
|
||||
@@ -295,6 +302,7 @@ export default {
|
||||
item['processingRatio' + index] = prop.processingRatio;
|
||||
const subprop = {
|
||||
label: prop.lineName,
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
prop: 'inputArea' + index,
|
||||
|
||||
Reference in New Issue
Block a user