Compare commits
No commits in common. "a7e81ad8fb00757b1d4b6db72223b2c93b2e8018" and "32cbf9076f5955b81beeb139ef1f8df1f3db1360" have entirely different histories.
a7e81ad8fb
...
32cbf9076f
2
.env.dev
2
.env.dev
@ -1,7 +1,7 @@
|
|||||||
###
|
###
|
||||||
# @Author: Do not edit
|
# @Author: Do not edit
|
||||||
# @Date: 2023-08-29 09:40:39
|
# @Date: 2023-08-29 09:40:39
|
||||||
# @LastEditTime: 2023-10-16 09:22:52
|
# @LastEditTime: 2023-09-18 10:44:07
|
||||||
# @LastEditors: DY
|
# @LastEditors: DY
|
||||||
# @Description:
|
# @Description:
|
||||||
###
|
###
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
"vue-count-to": "1.0.13",
|
"vue-count-to": "1.0.13",
|
||||||
"vue-cropper": "0.5.8",
|
"vue-cropper": "0.5.8",
|
||||||
"vue-meta": "^2.4.0",
|
"vue-meta": "^2.4.0",
|
||||||
"vue-plugin-hiprint": "0.0.54-fix",
|
"vue-plugin-hiprint": "^0.0.54-fix",
|
||||||
"vue-quill-editor": "^3.0.6",
|
"vue-quill-editor": "^3.0.6",
|
||||||
"vue-router": "3.4.9",
|
"vue-router": "3.4.9",
|
||||||
"vue-video-player": "^5.0.2",
|
"vue-video-player": "^5.0.2",
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
/*
|
|
||||||
* @Author: Do not edit
|
|
||||||
* @Date: 2023-08-28 15:30:53
|
|
||||||
* @LastEditTime: 2023-10-13 17:08:33
|
|
||||||
* @LastEditors: DY
|
|
||||||
* @Description:
|
|
||||||
*/
|
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// 创建产线目前生产产品表 主要为更新
|
// 创建产线目前生产产品表 主要为更新
|
||||||
@ -46,7 +39,7 @@ export function getLineBindProductLogPage(data) {
|
|||||||
return request({
|
return request({
|
||||||
url: '/base/line-bind-product-log/page',
|
url: '/base/line-bind-product-log/page',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<title>状态切换备份 3</title>
|
|
||||||
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="icon和插图" transform="translate(-877.000000, -246.000000)">
|
|
||||||
<g id="状态切换备份-3" transform="translate(885.000000, 254.000000) rotate(-270.000000) translate(-885.000000, -254.000000) translate(877.000000, 246.000000)">
|
|
||||||
<rect id="矩形" stroke="#979797" fill="#D8D8D8" opacity="0" x="0.5" y="0.5" width="15" height="15"></rect>
|
|
||||||
<g id="错误" transform="translate(0.000000, 0.000000)" fill-rule="nonzero">
|
|
||||||
<rect id="矩形" fill="#000000" opacity="0" x="0" y="6.4293957e-15" width="16" height="16"></rect>
|
|
||||||
<path d="M8,1 C11.85,1 15,4.15 15,8 C15,11.85 11.85,15 8,15 C4.15,15 1,11.85 1,8 C1,4.15 4.15,1 8,1 Z M8,2.19926499 C4.80249503,2.19926499 2.18635461,4.80959575 2.18635461,8 C2.18635461,11.1904043 4.80249503,13.800735 8,13.800735 C11.197505,13.800735 13.8136454,11.1904043 13.8136454,8 C13.8136454,4.80959575 11.197505,2.19926499 8,2.19926499 Z M9.18342887,4.39602962 C9.42080763,4.39602962 9.61773566,4.56921978 9.65474747,4.7961346 L9.66099805,4.87359881 L9.66052938,9.97276858 L10.1621026,9.47231604 C10.3071657,9.32725295 10.5223305,9.29501672 10.6985498,9.37560733 L10.7713701,9.41705393 L10.837514,9.47231606 C11.0033004,9.63810246 11.0217211,9.89545015 10.8927761,10.0815835 L10.837514,10.1477274 L9.52115984,11.4640816 C9.38457467,11.600698 9.17913638,11.6415719 9.00066062,11.5676398 C8.84450229,11.5029526 8.73591407,11.3615296 8.71120699,11.1977853 L8.70585968,11.1264012 L8.70585968,4.87359881 C8.70585968,4.60984463 8.91967469,4.39602962 9.18342887,4.39602962 Z M6.99933939,4.43236016 C7.15549771,4.49704738 7.26408594,4.63847045 7.28879302,4.80221473 L7.29414032,4.87359881 L7.29414032,11.1264012 C7.29414032,11.2530604 7.24382515,11.374532 7.15426356,11.4640936 C7.06470196,11.5536552 6.94323037,11.6039704 6.81657114,11.6039704 C6.68991191,11.6039704 6.56844032,11.5536552 6.47887872,11.4640936 C6.40722945,11.3924443 6.36069788,11.3003726 6.34495123,11.2015604 L6.33900196,11.1264012 L6.33858601,6.02634681 L5.83789738,6.52768395 C5.69283427,6.67274705 5.47766955,6.70498329 5.30145018,6.62439268 L5.22862992,6.58294608 L5.162486,6.52768394 C4.9966996,6.36189754 4.97827889,6.10454984 5.10722387,5.91841648 L5.162486,5.85227257 L6.47884017,4.53591839 C6.61542534,4.39930202 6.82086362,4.35842813 6.99933939,4.43236016 Z" id="形状结合" fill="#0B58FF"></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.7 KiB |
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-09-13 09:02:25
|
* @Date: 2023-09-13 09:02:25
|
||||||
* @LastEditTime: 2023-10-16 14:56:58
|
* @LastEditTime: 2023-10-08 15:39:38
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
||||||
<div v-if="tableData.length">
|
|
||||||
<base-table v-loading="dataListLoading" :span-method="mergeColumnHandler" :table-props="tableProps" :table-data="tableData" />
|
<base-table v-loading="dataListLoading" :span-method="mergeColumnHandler" :table-props="tableProps" :table-data="tableData" />
|
||||||
<SearchBar :formConfigs="[{ label: '产线平衡分析图', type: 'title' }]" />
|
|
||||||
<balance-chart ref="lineChart" />
|
<balance-chart ref="lineChart" />
|
||||||
</div>
|
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<!-- <pagination
|
<!-- <pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -93,7 +89,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '查询',
|
btnName: '搜索',
|
||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
||||||
<div v-if="tableData.length">
|
|
||||||
<base-table v-loading="dataListLoading" :table-props="tableProps" :table-data="tableData" />
|
<base-table v-loading="dataListLoading" :table-props="tableProps" :table-data="tableData" />
|
||||||
<SearchBar :formConfigs="[{ label: '产品产量对比图', type: 'title' }]" />
|
|
||||||
<line-chart ref="lineChart" />
|
<line-chart ref="lineChart" />
|
||||||
</div>
|
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<!-- <pagination
|
<!-- <pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -86,7 +82,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '查询',
|
btnName: '搜索',
|
||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
}
|
}
|
||||||
@ -105,8 +101,6 @@ export default {
|
|||||||
this.optionArrUrl.forEach((item, index) => {
|
this.optionArrUrl.forEach((item, index) => {
|
||||||
item(params).then((response) => {
|
item(params).then((response) => {
|
||||||
this.formConfig[index].selectOptions = response.data.list
|
this.formConfig[index].selectOptions = response.data.list
|
||||||
// this.formConfig[0].defaultSelect = response.data.list[0].id
|
|
||||||
this.$set(this.formConfig[0], 'defaultSelect', response.data.list[0].id)
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -118,13 +112,11 @@ export default {
|
|||||||
let arr = [
|
let arr = [
|
||||||
{
|
{
|
||||||
prop: 'lineName',
|
prop: 'lineName',
|
||||||
label: '产线',
|
label: '产线'
|
||||||
fixed: 'left'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'sum',
|
prop: 'sum',
|
||||||
label: '合计',
|
label: '合计'
|
||||||
fixed: 'left'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: res.data ? res.data.nameData[0].name : undefined,
|
prop: res.data ? res.data.nameData[0].name : undefined,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2021-11-18 14:16:25
|
* @Date: 2021-11-18 14:16:25
|
||||||
* @LastEditors: DY
|
* @LastEditors: zwq
|
||||||
* @LastEditTime: 2023-10-16 11:16:48
|
* @LastEditTime: 2023-08-01 16:59:06
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -12,30 +12,21 @@
|
|||||||
ref="dataForm"
|
ref="dataForm"
|
||||||
@keyup.enter.native="dataFormSubmit()"
|
@keyup.enter.native="dataFormSubmit()"
|
||||||
label-width="80px">
|
label-width="80px">
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工厂编码" prop="code">
|
<el-form-item label="工厂编码" prop="code">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.code"
|
v-model="dataForm.code"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入工厂编码" />
|
placeholder="请输入工厂编码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工厂名称" prop="name">
|
<el-form-item label="工厂名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.name"
|
v-model="dataForm.name"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入工厂名称" />
|
placeholder="请输入工厂名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="地址" prop="address">
|
<el-form-item label="地址" prop="address">
|
||||||
<el-input v-model="dataForm.address" clearable placeholder="请输入地址" />
|
<el-input v-model="dataForm.address" clearable placeholder="请输入地址" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
<!-- <el-form-item label="启用状态" prop="enabled">
|
<!-- <el-form-item label="启用状态" prop="enabled">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.enabled"
|
v-model="dataForm.enabled"
|
||||||
@ -47,12 +38,9 @@
|
|||||||
:value="dict.value" />
|
:value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
|
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
@confirm="handleConfirm"
|
@confirm="handleConfirm"
|
||||||
:before-close="handleCancel"
|
:before-close="handleCancel"
|
||||||
width="50%">
|
width="70%">
|
||||||
<add-or-update
|
<add-or-update
|
||||||
ref="addOrUpdate"
|
ref="addOrUpdate"
|
||||||
@refreshDataList="successSubmit"></add-or-update>
|
@refreshDataList="successSubmit"></add-or-update>
|
||||||
|
@ -2,14 +2,15 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-02 15:12:42
|
* @Date: 2023-08-02 15:12:42
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @LastEditTime: 2023-10-13 16:35:03
|
* @LastEditTime: 2023-10-10 16:49:03
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<search-bar
|
<search-bar
|
||||||
:formConfigs="[{ label: '产线在制产品', type: 'title' }]"
|
:formConfigs="formConfig"
|
||||||
ref="searchBarForm" />
|
ref="searchBarForm"
|
||||||
|
@headBtnClick="buttonClick" />
|
||||||
<base-table
|
<base-table
|
||||||
v-loading="dataListLoading"
|
v-loading="dataListLoading"
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
@ -35,17 +36,20 @@ import { getProductPage } from '@/api/core/base/product';
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'lineName',
|
prop: 'lineName',
|
||||||
label: '产线'
|
label: '产线',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'productName',
|
prop: 'productName',
|
||||||
label: '在制产品',
|
label: '在制产品',
|
||||||
|
align: 'center',
|
||||||
list: [],
|
list: [],
|
||||||
subcomponent: selectProduct,
|
subcomponent: selectProduct,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'recordTime',
|
prop: 'recordTime',
|
||||||
label: '开始时间',
|
label: '开始时间',
|
||||||
|
align: 'center',
|
||||||
filter: parseTime,
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@ -59,14 +63,14 @@ export default {
|
|||||||
},
|
},
|
||||||
tableProps,
|
tableProps,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
// formConfig: [
|
formConfig: [
|
||||||
// {
|
{
|
||||||
// type: 'button',
|
type: 'button',
|
||||||
// btnName: '同步',
|
btnName: '同步',
|
||||||
// name: 'search',
|
name: 'search',
|
||||||
// color: 'primary',
|
color: 'primary',
|
||||||
// },
|
},
|
||||||
// ],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
|
@ -2,11 +2,12 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-03 14:09:18
|
* @Date: 2023-08-03 14:09:18
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @LastEditTime: 2023-10-13 16:47:25
|
* @LastEditTime: 2023-10-11 11:20:51
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="tableInner">
|
<div class="tableInner">
|
||||||
|
<el-input readonly v-model="list.productName" style="width: 50%;" ></el-input>
|
||||||
<el-popover
|
<el-popover
|
||||||
placement="top"
|
placement="top"
|
||||||
title="切换在制产品"
|
title="切换在制产品"
|
||||||
@ -27,11 +28,8 @@
|
|||||||
确定
|
确定
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-button type="text" slot="reference">
|
<el-button type="text" slot="reference">切换</el-button>
|
||||||
<svg-icon icon-class="changelogo"/>
|
|
||||||
</el-button>
|
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<el-input readonly v-model="list.productName" style="width: 50%;margin-left: 5px" ></el-input>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -28,20 +28,24 @@ import { getProductPage } from '@/api/core/base/product';
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'productionLineName',
|
prop: 'productionLineName',
|
||||||
label: '产线'
|
label: '产线',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'productName',
|
prop: 'productName',
|
||||||
label: '在制产品'
|
label: '在制产品',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'startTime',
|
prop: 'startTime',
|
||||||
label: '开始时间',
|
label: '开始时间',
|
||||||
|
align: 'center',
|
||||||
filter: parseTime,
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'endTime',
|
prop: 'endTime',
|
||||||
label: '结束时间',
|
label: '结束时间',
|
||||||
|
align: 'center',
|
||||||
filter: parseTime,
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-01 14:55:51
|
* @Date: 2023-08-01 14:55:51
|
||||||
* @LastEditors: DY
|
* @LastEditors: zwq
|
||||||
* @LastEditTime: 2023-10-13 10:27:00
|
* @LastEditTime: 2023-08-03 15:22:53
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -50,25 +50,30 @@ import {
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'code',
|
prop: 'code',
|
||||||
label: '产品编码'
|
label: '产品编码',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'name',
|
prop: 'name',
|
||||||
label: '产品名称'
|
label: '产品名称',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'specifications',
|
prop: 'specifications',
|
||||||
label: '规格'
|
label: '规格',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'unitDictValue',
|
prop: 'unitDictValue',
|
||||||
label: '单位',
|
label: '单位',
|
||||||
|
align: 'center',
|
||||||
subcomponent: unitDict,
|
subcomponent: unitDict,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
label: '创建时间',
|
label: '创建时间',
|
||||||
filter: parseTime
|
align: 'center',
|
||||||
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -122,14 +127,14 @@ export default {
|
|||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// type: 'separate',
|
type: 'separate',
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// type: 'button',
|
type: 'button',
|
||||||
// btnName: '重置',
|
btnName: '重置',
|
||||||
// name: 'reset',
|
name: 'reset',
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
type: 'separate',
|
type: 'separate',
|
||||||
},
|
},
|
||||||
|
@ -52,37 +52,45 @@ import {
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'code',
|
prop: 'code',
|
||||||
label: '产线编码'
|
label: '产线编码',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'name',
|
prop: 'name',
|
||||||
label: '产线名称'
|
label: '产线名称',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'factoryName',
|
prop: 'factoryName',
|
||||||
label: '工厂'
|
label: '工厂',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'externalCode',
|
prop: 'externalCode',
|
||||||
label: '额外编码'
|
label: '额外编码',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'status',
|
prop: 'status',
|
||||||
label: '当前状态',
|
label: '当前状态',
|
||||||
|
align: 'center',
|
||||||
filter: codeFilter('lineStatus'),
|
filter: codeFilter('lineStatus'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'description',
|
prop: 'description',
|
||||||
label: '描述'
|
label: '描述',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'remark',
|
prop: 'remark',
|
||||||
label: '备注'
|
label: '备注',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
label: '创建时间',
|
label: '创建时间',
|
||||||
filter: parseTime
|
align: 'center',
|
||||||
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -124,14 +132,14 @@ export default {
|
|||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// type: 'separate',
|
type: 'separate',
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// type: 'button',
|
type: 'button',
|
||||||
// btnName: '重置',
|
btnName: '重置',
|
||||||
// name: 'reset',
|
name: 'reset',
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
type: 'separate',
|
type: 'separate',
|
||||||
},
|
},
|
||||||
@ -165,7 +173,7 @@ export default {
|
|||||||
getDataList() {
|
getDataList() {
|
||||||
this.dataListLoading = true;
|
this.dataListLoading = true;
|
||||||
this.urlOptions.getDataListURL(this.listQuery).then((response) => {
|
this.urlOptions.getDataListURL(this.listQuery).then((response) => {
|
||||||
this.listQuery.total = response.data.total;
|
this.total = response.data.total;
|
||||||
this.getStatus(response.data.list);
|
this.getStatus(response.data.list);
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false;
|
||||||
});
|
});
|
||||||
@ -187,7 +195,7 @@ export default {
|
|||||||
switch (val.btnName) {
|
switch (val.btnName) {
|
||||||
case 'search':
|
case 'search':
|
||||||
this.listQuery.pageNo = 1;
|
this.listQuery.pageNo = 1;
|
||||||
this.listQuery.pageSize = 10;
|
this.listQuery.pageSize = 10;.7
|
||||||
this.listQuery.name = val.name;
|
this.listQuery.name = val.name;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
break;
|
break;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-01 13:52:10
|
* @Date: 2023-08-01 13:52:10
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @LastEditTime: 2023-10-16 13:40:00
|
* @LastEditTime: 2023-09-21 10:48:54
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -12,26 +12,18 @@
|
|||||||
ref="dataForm"
|
ref="dataForm"
|
||||||
@keyup.enter.native="dataFormSubmit()"
|
@keyup.enter.native="dataFormSubmit()"
|
||||||
label-width="90px">
|
label-width="90px">
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工段编码" prop="code">
|
<el-form-item label="工段编码" prop="code">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.code"
|
v-model="dataForm.code"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入工段编码" />
|
placeholder="请输入工段编码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工段名称" prop="name">
|
<el-form-item label="工段名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.name"
|
v-model="dataForm.name"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入工段名称" />
|
placeholder="请输入工段名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item prop="productionLineId" label="产线">
|
<el-form-item prop="productionLineId" label="产线">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.productionLineId" filterable clearable placeholder="请选择产线">
|
v-model="dataForm.productionLineId" filterable clearable placeholder="请选择产线">
|
||||||
@ -44,13 +36,9 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="排序" prop="sort">
|
<el-form-item label="排序" prop="sort">
|
||||||
<el-input-number v-model="dataForm.sort" :min="1" :max="100" clearable placeholder="请输入排序" />
|
<el-input-number v-model="dataForm.sort" :min="1" :max="100" clearable placeholder="请输入排序" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
|
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
@confirm="handleConfirm"
|
@confirm="handleConfirm"
|
||||||
:before-close="handleCancel"
|
:before-close="handleCancel"
|
||||||
width="50%">
|
width="70%">
|
||||||
<add-or-update
|
<add-or-update
|
||||||
ref="addOrUpdate"
|
ref="addOrUpdate"
|
||||||
@refreshDataList="successSubmit"></add-or-update>
|
@refreshDataList="successSubmit"></add-or-update>
|
||||||
@ -50,28 +50,34 @@ import {
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'code',
|
prop: 'code',
|
||||||
label: '工段编码'
|
label: '工段编码',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'name',
|
prop: 'name',
|
||||||
label: '工段名称'
|
label: '工段名称',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'productionLineName',
|
prop: 'productionLineName',
|
||||||
label: '产线'
|
label: '产线',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'sort',
|
prop: 'sort',
|
||||||
label: '排序'
|
label: '排序',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'remark',
|
prop: 'remark',
|
||||||
label: '备注'
|
label: '备注',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
label: '创建时间',
|
label: '创建时间',
|
||||||
filter: parseTime
|
align: 'center',
|
||||||
|
filter: parseTime,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -113,14 +119,14 @@ export default {
|
|||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// type: 'separate',
|
type: 'separate',
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// type: 'button',
|
type: 'button',
|
||||||
// btnName: '重置',
|
btnName: '重置',
|
||||||
// name: 'reset',
|
name: 'reset',
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
type: 'separate',
|
type: 'separate',
|
||||||
},
|
},
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: Do not edit
|
* @Author: Do not edit
|
||||||
* @Date: 2023-08-29 14:59:29
|
* @Date: 2023-08-29 14:59:29
|
||||||
* @LastEditTime: 2023-10-16 15:10:42
|
* @LastEditTime: 2023-10-12 16:54:15
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -12,7 +12,6 @@
|
|||||||
ref="searchBarForm"
|
ref="searchBarForm"
|
||||||
@headBtnClick="buttonClick" />
|
@headBtnClick="buttonClick" />
|
||||||
<base-table
|
<base-table
|
||||||
v-if="showData.length"
|
|
||||||
class="right-aside"
|
class="right-aside"
|
||||||
v-loading="dataListLoading"
|
v-loading="dataListLoading"
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
@ -23,7 +22,6 @@
|
|||||||
@selection-change="selectChange"
|
@selection-change="selectChange"
|
||||||
>
|
>
|
||||||
</base-table>
|
</base-table>
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<pagination
|
<pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -197,8 +195,7 @@ export default {
|
|||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '导出',
|
btnName: '导出',
|
||||||
name: 'export',
|
name: 'export',
|
||||||
color: 'primary',
|
color: 'warning',
|
||||||
plain: true
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
@ -335,7 +332,7 @@ export default {
|
|||||||
item.reportType = item.reportType === 1 ? '日' : item.reportType === 2 ? '周' : '月'
|
item.reportType = item.reportType === 1 ? '日' : item.reportType === 2 ? '周' : '月'
|
||||||
return item
|
return item
|
||||||
});
|
});
|
||||||
this.listQuery.total = response.data.total;
|
this.total = response.data.total;
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false;
|
||||||
this.showData = this.tableData
|
this.showData = this.tableData
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: Do not edit
|
* @Author: Do not edit
|
||||||
* @Date: 2023-08-29 14:59:29
|
* @Date: 2023-08-29 14:59:29
|
||||||
* @LastEditTime: 2023-10-16 15:18:23
|
* @LastEditTime: 2023-10-12 16:51:54
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -12,7 +12,6 @@
|
|||||||
ref="searchBarForm"
|
ref="searchBarForm"
|
||||||
@headBtnClick="buttonClick" />
|
@headBtnClick="buttonClick" />
|
||||||
<base-table
|
<base-table
|
||||||
v-if="showData.length"
|
|
||||||
class="right-aside"
|
class="right-aside"
|
||||||
v-loading="dataListLoading"
|
v-loading="dataListLoading"
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
@ -30,7 +29,6 @@
|
|||||||
:method-list="tableBtn"
|
:method-list="tableBtn"
|
||||||
@clickBtn="handleClick" />
|
@clickBtn="handleClick" />
|
||||||
</base-table>
|
</base-table>
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<pagination
|
<pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -147,8 +145,7 @@ export default {
|
|||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '导出',
|
btnName: '导出',
|
||||||
name: 'export',
|
name: 'export',
|
||||||
color: 'primary',
|
color: 'warning',
|
||||||
plain: true
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
@ -285,7 +282,7 @@ export default {
|
|||||||
this.dataListLoading = true;
|
this.dataListLoading = true;
|
||||||
this.urlOptions.getDataListURL(this.listQuery).then(response => {
|
this.urlOptions.getDataListURL(this.listQuery).then(response => {
|
||||||
this.tableData = response.data;
|
this.tableData = response.data;
|
||||||
this.listQuery.total = response.data.length;
|
this.total = response.data.total;
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false;
|
||||||
this.showData = this.tableData
|
this.showData = this.tableData
|
||||||
});
|
});
|
||||||
|
@ -11,14 +11,13 @@
|
|||||||
ref="search-bar" />
|
ref="search-bar" />
|
||||||
<el-skeleton v-if="initing" :rows="6" animated />
|
<el-skeleton v-if="initing" :rows="6" animated />
|
||||||
<!-- :span-method="mergeColumnHandler" -->
|
<!-- :span-method="mergeColumnHandler" -->
|
||||||
<div v-else :class="{ 'no-data-bg': !tableData || tableData.length == 0 }">
|
|
||||||
<base-table
|
<base-table
|
||||||
v-if="tableData && tableData.length > 0"
|
v-else
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
:table-data="tableData"
|
:table-data="tableData"
|
||||||
@emitFun="handleEmitFun"
|
@emitFun="handleEmitFun"></base-table>
|
||||||
/>
|
<!-- :page="queryParams.pageNo"
|
||||||
</div>
|
:limit="queryParams.pageSize" -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -66,10 +65,10 @@ export default {
|
|||||||
label: times.slice(0, 10) + ' ' + times.slice(11),
|
label: times.slice(0, 10) + ' ' + times.slice(11),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
children: [
|
children: [
|
||||||
{ prop: times + '_in', label: '投入数量' },
|
{ prop: times + '_in', label: '投入数量', align: 'center' },
|
||||||
{ prop: times + '_out', label: '产出数量' },
|
{ prop: times + '_out', label: '产出数量', align: 'center' },
|
||||||
{ prop: times + '_junk', label: '报废数量' },
|
{ prop: times + '_junk', label: '报废数量', align: 'center' },
|
||||||
{ prop: times + '_area', label: '产出面积' }
|
{ prop: times + '_area', label: '产出面积', align: 'center' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
this.arr.push(subprop)
|
this.arr.push(subprop)
|
||||||
@ -150,14 +149,14 @@ export default {
|
|||||||
{
|
{
|
||||||
prop: 'proLineName',
|
prop: 'proLineName',
|
||||||
label: '生产线',
|
label: '生产线',
|
||||||
fixed: 'left',
|
align: 'center',
|
||||||
showOverflowTooltip: true
|
fixed: 'left'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'spec',
|
prop: 'spec',
|
||||||
label: '产品规格',
|
label: '产品规格',
|
||||||
fixed: 'left',
|
align: 'center',
|
||||||
showOverflowTooltip: true
|
fixed: 'left'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
this.buildProps(res.data.nameData);
|
this.buildProps(res.data.nameData);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: Do not edit
|
* @Author: Do not edit
|
||||||
* @Date: 2023-08-29 14:59:29
|
* @Date: 2023-08-29 14:59:29
|
||||||
* @LastEditTime: 2023-10-16 15:19:04
|
* @LastEditTime: 2023-10-12 16:35:49
|
||||||
* @LastEditors: DY
|
* @LastEditors: DY
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -13,7 +13,6 @@
|
|||||||
ref="searchBarForm"
|
ref="searchBarForm"
|
||||||
@headBtnClick="buttonClick" />
|
@headBtnClick="buttonClick" />
|
||||||
<base-table
|
<base-table
|
||||||
v-if="showData.length"
|
|
||||||
class="right-aside"
|
class="right-aside"
|
||||||
v-loading="dataListLoading"
|
v-loading="dataListLoading"
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
@ -31,7 +30,6 @@
|
|||||||
:method-list="tableBtn"
|
:method-list="tableBtn"
|
||||||
@clickBtn="handleClick" />
|
@clickBtn="handleClick" />
|
||||||
</base-table>
|
</base-table>
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<pagination
|
<pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -190,8 +188,7 @@ export default {
|
|||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '导出',
|
btnName: '导出',
|
||||||
name: 'export',
|
name: 'export',
|
||||||
color: 'primary',
|
color: 'warning',
|
||||||
plain: true
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
@ -333,7 +330,7 @@ export default {
|
|||||||
return item
|
return item
|
||||||
});
|
});
|
||||||
this.showData = this.tableData
|
this.showData = this.tableData
|
||||||
this.listQuery.total = response.data.total;
|
this.total = response.data.total;
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -6,17 +6,13 @@
|
|||||||
@select-changed="handleSearchBarChanged"
|
@select-changed="handleSearchBarChanged"
|
||||||
@headBtnClick="buttonClick" />
|
@headBtnClick="buttonClick" />
|
||||||
<base-table
|
<base-table
|
||||||
v-if="showData.length"
|
|
||||||
class="right-aside"
|
class="right-aside"
|
||||||
v-loading="dataListLoading"
|
v-loading="dataListLoading"
|
||||||
:table-props="tableProps"
|
:table-props="tableProps"
|
||||||
:page="listQuery.pageNo"
|
|
||||||
:limit="listQuery.pageSize"
|
|
||||||
:selectWidth="55"
|
|
||||||
:table-data="showData"
|
:table-data="showData"
|
||||||
|
:selectWidth="55"
|
||||||
@selection-change="selectChange"
|
@selection-change="selectChange"
|
||||||
/>
|
/>
|
||||||
<div v-else class="no-data-bg"></div>
|
|
||||||
<pagination
|
<pagination
|
||||||
:limit.sync="listQuery.pageSize"
|
:limit.sync="listQuery.pageSize"
|
||||||
:page.sync="listQuery.pageNo"
|
:page.sync="listQuery.pageNo"
|
||||||
@ -50,31 +46,38 @@ import html2canvas from 'html2canvas'
|
|||||||
const tableProps = [
|
const tableProps = [
|
||||||
{
|
{
|
||||||
prop: 'proLineName',
|
prop: 'proLineName',
|
||||||
label: '产线名称'
|
label: '产线名称',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'sectionName',
|
prop: 'sectionName',
|
||||||
label: '工段名称'
|
label: '工段名称',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'inputNum',
|
prop: 'inputNum',
|
||||||
label: '进片数量/片'
|
label: '进片数量/片',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'outputNum',
|
prop: 'outputNum',
|
||||||
label: '出片数量/片'
|
label: '出片数量/片',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'lossNum',
|
prop: 'lossNum',
|
||||||
label: '损耗数量/片'
|
label: '损耗数量/片',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'lossArea',
|
prop: 'lossArea',
|
||||||
label: '损耗面积/m²'
|
label: '损耗面积/m²',
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'lossRate',
|
prop: 'lossRate',
|
||||||
label: '损耗比例/%'
|
label: '损耗比例/%',
|
||||||
|
align: 'center',
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -131,20 +134,15 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '查询',
|
btnName: '搜索',
|
||||||
name: 'search',
|
name: 'search',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
type: 'separate',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
btnName: '导出',
|
btnName: '导出',
|
||||||
name: 'export',
|
name: 'export',
|
||||||
color: 'primary',
|
},
|
||||||
plain: true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
|
|
||||||
// filename: gantt.vue
|
|
||||||
// author: liubin
|
|
||||||
// date: 2023 -09 - 25 14: 28: 12
|
|
||||||
// description: 甘特图
|
|
||||||
|
|
||||||
|
|
||||||
import * as echarts from 'echarts';
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {*} params
|
|
||||||
* @param {*} api
|
|
||||||
*
|
|
||||||
* https://echarts.apache.org/zh/option.html#series-custom.renderItem.arguments.params
|
|
||||||
*/
|
|
||||||
// function renderItem(params, api) { }
|
|
||||||
|
|
||||||
export default class Gantt {
|
|
||||||
constructor(el) {
|
|
||||||
this.chart = echarts.init(el);
|
|
||||||
let options = {
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: 'custom',
|
|
||||||
coordinateSystem: 'cartesian2d',
|
|
||||||
renderItem: renderItem,
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
this.chart.setOption(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
update(options) {
|
|
||||||
this.chart.setOption(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
resize() {
|
|
||||||
// todo
|
|
||||||
}
|
|
||||||
|
|
||||||
destroy() {
|
|
||||||
this.chart.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var data = [];
|
|
||||||
var categories = ['设备1', '设备2', '设备3'];
|
|
||||||
var types = [
|
|
||||||
{ name: '运行', color: '#7b9ce1' },
|
|
||||||
{ name: '故障', color: '#bd6d6c' },
|
|
||||||
{ name: '停机', color: '#75d874' },
|
|
||||||
];
|
|
||||||
// return new Date(new Date(timestamp).toLocaleDateString()).getTime()
|
|
||||||
// })(1691568181000))
|
|
||||||
function getStartTime(timestamp) {
|
|
||||||
return new Date(new Date(timestamp).toLocaleDateString()).getTime()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
data.push({
|
|
||||||
name: 'running',
|
|
||||||
value: [0, 1691568181000, 1691568181000 + 60 * 60 * 1000, 60],
|
|
||||||
itemStyle: {
|
|
||||||
normal: {
|
|
||||||
color: types[0].color
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function renderItem(params, api) {
|
|
||||||
var categoryIndex = api.value(0);
|
|
||||||
var start = api.coord([api.value(1), categoryIndex]);
|
|
||||||
var end = api.coord([api.value(2), categoryIndex]);
|
|
||||||
var height = api.size([0, 1])[1] * 0.8;
|
|
||||||
var rectShape = echarts.graphic.clipRectByRect(
|
|
||||||
{
|
|
||||||
x: start[0],
|
|
||||||
y: start[1] - height / 2,
|
|
||||||
width: end[0] - start[0],
|
|
||||||
height: height
|
|
||||||
},
|
|
||||||
{
|
|
||||||
x: params.coordSys.x,
|
|
||||||
y: params.coordSys.y,
|
|
||||||
width: params.coordSys.width,
|
|
||||||
height: params.coordSys.height
|
|
||||||
}
|
|
||||||
);
|
|
||||||
return (
|
|
||||||
rectShape && {
|
|
||||||
type: 'rect',
|
|
||||||
transition: ['shape'],
|
|
||||||
shape: rectShape,
|
|
||||||
style: api.style()
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
option = {
|
|
||||||
tooltip: {
|
|
||||||
// show: false,
|
|
||||||
formatter: function (params) {
|
|
||||||
return params.marker + params.name + ': ' + new Date(params.value[1]).toLocaleTimeString() + ' - ' + new Date(params.value[2]).toLocaleTimeString();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// title: {
|
|
||||||
// text: 'Profile',
|
|
||||||
// left: 'center'
|
|
||||||
// },
|
|
||||||
// dataZoom: [
|
|
||||||
// {
|
|
||||||
// type: 'slider',
|
|
||||||
// filterMode: 'weakFilter',
|
|
||||||
// showDataShadow: false,
|
|
||||||
// top: 400,
|
|
||||||
// labelFormatter: ''
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// type: 'inside',
|
|
||||||
// filterMode: 'weakFilter'
|
|
||||||
// }
|
|
||||||
// ],
|
|
||||||
grid: {
|
|
||||||
height: 300
|
|
||||||
},
|
|
||||||
xAxis: {
|
|
||||||
type: 'time',
|
|
||||||
min: getStartTime(1691568181000),
|
|
||||||
max: getStartTime(1691568181000 + 3600 * 24 * 1000),
|
|
||||||
splitNumber: 10,
|
|
||||||
// interval: 60*3600*1000,
|
|
||||||
// scale: true,
|
|
||||||
axisLabel: {
|
|
||||||
// rotate: -15,
|
|
||||||
formatter: function (val) {
|
|
||||||
return new Date(val).toLocaleTimeString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
axisTick: {
|
|
||||||
show: true
|
|
||||||
},
|
|
||||||
splitLine: {
|
|
||||||
show: false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
yAxis: [{
|
|
||||||
axisLine: {
|
|
||||||
// show: false,
|
|
||||||
lineStyle: {
|
|
||||||
color: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
fontSize: 14,
|
|
||||||
},
|
|
||||||
axisTick: {
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
splitLine: {
|
|
||||||
show: true
|
|
||||||
},
|
|
||||||
data: categories
|
|
||||||
}, {
|
|
||||||
axisLine: {
|
|
||||||
// show: false,
|
|
||||||
lineStyle: {
|
|
||||||
color: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data: []
|
|
||||||
}],
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: 'custom',
|
|
||||||
renderItem: renderItem,
|
|
||||||
itemStyle: {
|
|
||||||
opacity: 0.8
|
|
||||||
},
|
|
||||||
encode: {
|
|
||||||
x: [1, 2],
|
|
||||||
y: 0
|
|
||||||
},
|
|
||||||
data: data
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user