This commit is contained in:
朱文强 2023-01-06 15:49:40 +08:00
부모 f6b3f2f323
커밋 461bd6ba85
26개의 변경된 파일1219개의 추가작업 그리고 573개의 파일을 삭제

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-22 14:57:50
* @LastEditors: zwq
* @LastEditTime: 2022-12-13 14:33:51
* @LastEditTime: 2023-01-06 14:57:22
* @Description:
-->
<!DOCTYPE html>

파일 보기

@ -276,7 +276,7 @@ img {
&:focus,
&:hover {
color: #fff;
background-color: mix(#000, $--color-primary, 15%);
background-color: mix(#fff, $--color-primary, 15%);
}
}
> .el-menu-item.is-active,
@ -318,7 +318,7 @@ img {
transition: width .3s;
}
&__brand {
background-color: #409eff;
background-color: rgba(0, 21, 41, 1);
display: flex;
justify-content: center;
align-items: center;
@ -478,12 +478,16 @@ img {
&:focus,
&:hover {
color: #fff;
background-color: #2863af;
background-color: rgba(11, 88, 255, 1);
.aui-sidebar__menu-icon-son{
background: #fff;
border-radius: 4px;
}
}
}
.el-menu,
.el-submenu.is-opened {
background-color: #0b253f;
background-color: rgba(11, 37, 63, 1);
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
@ -521,6 +525,16 @@ img {
color: inherit !important;
transition: font-size .3s;
}
&__menu-icon-son {
display: inline-block;
vertical-align: middle;
width: 8px !important;
margin: 0 10px;
text-align: center;
font-size: 8px;
color: inherit !important;
transition: font-size 0.3s;
}
}
@ -592,20 +606,17 @@ img {
}
& > .el-tabs__item {
height: $content--tabs-header-height;
padding: 0 15px;
line-height: $content--tabs-header-height;
border: 0;
color: $--color-text-regular;
padding: 0 10px;
color: rgba(89, 89, 89, 1);
&:focus,
&:hover,
&.is-active {
color: $--color-text-primary;
background-color: $--background-color-base;
&:after {
display: block;
}
> .el-icon-close {
color: $--color-text-primary;
color: rgba(255, 255, 255, 1);
}
}
&:after {
@ -619,11 +630,20 @@ img {
background-color: $--color-primary;
}
+ .el-tabs__item {
margin-left: 1px;
margin-left: 5px;
height: 24px;
font-size: 12px;
line-height: 24px;
border-radius: 5px;
background-color: rgba(239, 239, 239, 1);
&.is-active {
color: rgba(255, 255, 255, 1);
background-color: rgba(62, 142, 247, 1);
}
}
> .el-icon-close {
width: 14px;
margin-left: 15px;
margin-left: 6px;
color: $--color-text-secondary;
}
> i.icon {

파일 보기

@ -5,10 +5,10 @@ $base--line-height: 1.15;
$navbar--height: 50px;
// Sidebar
$sidebar--width: 230px;
$sidebar--width: 248px;
$sidebar--width-fold: 64px;
$sidebar--background-color-dark: #001529;
$sidebar--text-color-dark: #ffffff;
$sidebar--background-color-dark: rgba(0, 21, 41, 1);
$sidebar--text-color-dark: rgba(255, 255, 255, 1);
$sidebar--menu-item-height: 48px;
// Content

파일 보기

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="8px" height="8px" viewBox="0 0 8 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>椭圆形</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="最新参考" transform="translate(-32.000000, -131.000000)" stroke="#FFFFFF">
<g id="编组-8备份-17" transform="translate(0.000000, 112.000000)">
<g id="编组" transform="translate(32.000000, 16.000000)">
<circle id="椭圆形" cx="4" cy="7" r="3.5"></circle>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  크기: 686 B

파일 보기

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="30px" height="30px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>组织管理</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon" transform="translate(-415.000000, -372.000000)" fill="#ffffff" fill-rule="nonzero">
<g id="组织管理" transform="translate(415.000000, 372.000000)">
<rect id="矩形" opacity="0" x="0" y="0" width="30" height="30"></rect>
<path d="M19.7622702,15.3266872 L18.6600278,15.3266872 L18.6600278,12.4263704 C18.6600278,12.1201573 18.4117931,11.8719225 18.10558,11.8719225 L12.5544479,11.8719225 L12.5544479,10.3366564 L15.3266872,10.3366564 C15.6329003,10.3366564 15.8811351,10.0884216 15.8811351,9.78220852 L15.8811351,4.79217768 C15.8811351,4.48596458 15.6329003,4.23772981 15.3266872,4.23772981 L8.67331278,4.23772981 C8.36709967,4.23772981 8.1188649,4.48596458 8.1188649,4.79217768 L8.1188649,9.78220852 C8.1188649,10.0884216 8.36709967,10.3366564 8.67331278,10.3366564 L11.4455521,10.3366564 L11.4455521,11.8719225 L5.93544919,11.8719225 C5.62945248,11.8719224 5.38130732,12.1198194 5.38100132,12.425816 L5.37767463,15.3266872 L4.23772981,15.3266872 C3.93151671,15.3266872 3.68328194,15.574922 3.68328194,15.8811351 L3.68328194,19.2078223 C3.68328194,19.5140354 3.93151671,19.7622702 4.23772981,19.7622702 L7.56441703,19.7622702 C7.87063014,19.7622702 8.1188649,19.5140354 8.1188649,19.2078223 L8.1188649,15.8811351 C8.1188649,15.574922 7.87063014,15.3266872 7.56441703,15.3266872 L6.48657037,15.3266872 L6.48934261,12.9808183 L11.4455521,12.9808183 L11.4455521,15.3266872 L10.3366564,15.3266872 C10.0304433,15.3266872 9.78220852,15.574922 9.78220852,15.8811351 L9.78220852,19.2078223 C9.78220852,19.5140354 10.0304433,19.7622702 10.3366564,19.7622702 L13.6633436,19.7622702 C13.9695567,19.7622702 14.2177915,19.5140354 14.2177915,19.2078223 L14.2177915,15.8811351 C14.2177915,15.574922 13.9695567,15.3266872 13.6633436,15.3266872 L12.5544479,15.3266872 L12.5544479,12.9808183 L17.5511321,12.9808183 L17.5511321,15.3266872 L16.435583,15.3266872 C16.1293699,15.3266872 15.8811351,15.574922 15.8811351,15.8811351 L15.8811351,19.2078223 C15.8811351,19.5140354 16.1293699,19.7622702 16.435583,19.7622702 L19.7622702,19.7622702 C20.0684833,19.7622702 20.3167181,19.5140354 20.3167181,19.2078223 L20.3167181,15.8811351 C20.3167181,15.574922 20.0684833,15.3266872 19.7622702,15.3266872 Z M9.22776065,5.34662555 L14.7722394,5.34662555 L14.7722394,9.22776065 L9.22776065,9.22776065 L9.22776065,5.34662555 Z M7.00996916,18.6533744 L4.79217768,18.6533744 L4.79217768,16.435583 L7.00996916,16.435583 L7.00996916,18.6533744 Z M13.1088957,18.6533744 L10.8911043,18.6533744 L10.8911043,16.435583 L13.1088957,16.435583 L13.1088957,18.6533744 Z M19.2078223,18.6533744 L16.9900308,18.6533744 L16.9900308,16.435583 L19.2078223,16.435583 L19.2078223,18.6533744 Z" id="形状"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  크기: 3.0 KiB

파일 보기

@ -34,10 +34,6 @@ export const moduleRoutes = {
children: [
{ path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } },
{ path: '/echart-line', component: () => import('@/views/spc-chart/echart-line'), name: 'echart-line', meta: { title: 'spc折线', isTab: true } },
{ path: '/echart-3line', component: () => import('@/views/spc-chart/echart-3line'), name: 'echart-3line', meta: { title: 'spc3折线', isTab: true } },
{ path: '/echart-2line', component: () => import('@/views/spc-chart/echart-2line'), name: 'echart-2line', meta: { title: 'spc2折线', isTab: true } },
// 基础信息
{ path: '/productType', component: () => import('@/views/spc-basic/productType'), name: 'productType', meta: { title: '产品类型', isTab: true } },
{ path: '/productList', component: () => import('@/views/spc-basic/productList'), name: 'productList', meta: { title: '产品列表', isTab: true } },

파일 보기

@ -1,3 +1,10 @@
<!--
* @Author: zwq
* @Date: 2022-08-22 14:57:51
* @LastEditors: zwq
* @LastEditTime: 2023-01-06 15:34:54
* @Description:
-->
<template>
<el-submenu v-if="menu.children && menu.children.length >= 1" :index="menu.id" :popper-append-to-body="false">
<template slot="title">
@ -7,7 +14,8 @@
<sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu>
</el-submenu>
<el-menu-item v-else :index="menu.id" @click="gotoRouteHandle(menu.id)">
<svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true"><use xlink:href="#椭圆形"></use></svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon" aria-hidden="true"><use :xlink:href="`#${menu.icon}`"></use></svg> -->
<span>{{ menu.name }}</span>
</el-menu-item>
</template>

파일 보기

@ -21,36 +21,51 @@
<span>产品管理</span>
</template>
<el-menu-item index="productType" @click="$router.push({ name: 'productType' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-zonghe"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">产品类型</span>
</el-menu-item>
<el-menu-item index="productList" @click="$router.push({ name: 'productList' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-log"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-log"></use></svg> -->
<span slot="title">产品列表</span>
</el-menu-item>
</el-submenu>
<el-menu-item index="factoryManage" @click="$router.push({ name: 'factoryManage' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-config"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-config"></use></svg> -->
<span slot="title">工厂管理</span>
</el-menu-item>
<el-submenu index="process">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-config"></use>
<use xlink:href="#组织管理"></use>
</svg>
<span>过程管理</span>
</template>
<el-menu-item index="processType" @click="$router.push({ name: 'processType' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-zonghe"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">工序类型</span>
</el-menu-item>
<el-menu-item index="processDefine" @click="$router.push({ name: 'processDefine' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-zonghe"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">工序定义</span>
</el-menu-item>
@ -62,50 +77,42 @@
<el-submenu index="Machine">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-config"></use>
<use xlink:href="#icon-zonghe"></use>
</svg>
<span>机台管理</span>
</template>
<el-menu-item index="siteManage" @click="$router.push({ name: 'siteManage' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-zonghe"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">站点管理</span>
</el-menu-item>
<el-menu-item index="machineManage" @click="$router.push({ name: 'machineManage' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-zonghe"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">机台管理</span>
</el-menu-item>
</el-submenu>
<el-menu-item index="toolsType" @click="$router.push({ name: 'toolsType' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-zonghe"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-zonghe"></use></svg> -->
<span slot="title">量具管理</span>
</el-menu-item>
<el-menu-item index="unitList" @click="$router.push({ name: 'unitList' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-log"></use></svg>
<span slot="title">计量单位管理</span>
</el-menu-item>
</el-submenu>
<el-submenu index="spc">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-shoucang"></use>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span>SPC</span>
</template>
<el-menu-item index="echart-line" @click="$router.push({ name: 'echart-line' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-tubiao"></use></svg>
<span slot="title">spc折线</span>
</el-menu-item>
<el-menu-item index="echart-2line" @click="$router.push({ name: 'echart-2line' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-tubiao"></use></svg>
<span slot="title">spc2折线</span>
</el-menu-item>
<el-menu-item index="echart-line" @click="$router.push({ name: 'echart-3line' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-tubiao"></use></svg>
<span slot="title">spc3折线</span>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#icon-log"></use></svg> -->
<span slot="title">计量单位管理</span>
</el-menu-item>
</el-submenu>
<el-submenu index="quality">
@ -116,15 +123,27 @@
<span>质量规划</span>
</template>
<el-menu-item index="controlGraph" @click="$router.push({ name: 'controlGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#控制中心"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#控制中心"></use></svg> -->
<span slot="title">控制图形</span>
</el-menu-item>
<el-menu-item index="controlRatio" @click="$router.push({ name: 'controlRatio' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#控制中心"></use></svg>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#控制中心"></use></svg> -->
<span slot="title">控制系数</span>
</el-menu-item>
<el-menu-item index="interpretationScheme" @click="$router.push({ name: 'interpretationScheme' })">
<svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#方案管理"></use></svg>
<el-menu-item
index="interpretationScheme"
@click="$router.push({ name: 'interpretationScheme' })"
>
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<!-- <svg class="icon-svg aui-sidebar__menu-icon"><use xlink:href="#方案管理"></use></svg> -->
<span slot="title">判读方案</span>
</el-menu-item>
</el-submenu>
@ -135,34 +154,49 @@
</svg>
<span>过程检验</span>
</template>
<el-menu-item index="generalOperation" @click="$router.push({ name: 'generalOperation' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<el-menu-item
index="generalOperation"
@click="$router.push({ name: 'generalOperation' })"
>
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-log"></use>
</svg>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">通用作业</span>
</el-menu-item>
<el-submenu index="Metrological">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-log"></use>
<use xlink:href="#icon-tubiao"></use>
</svg>
<span>计量分析</span>
</template>
<el-menu-item index="XbarRGraph" @click="$router.push({ name: 'XbarRGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">均值极差控制图</span>
</el-menu-item>
<el-menu-item index="XbarSGraph" @click="$router.push({ name: 'XbarSGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">均值标准差控制图</span>
</el-menu-item>
<el-menu-item index="XMRGraph" @click="$router.push({ name: 'XMRGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">单值移动极差控制图</span>
</el-menu-item>
@ -170,31 +204,43 @@
<el-submenu index="Counting">
<template slot="title">
<svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-log"></use>
<use xlink:href="#icon-tubiao"></use>
</svg>
<span>计数分析</span>
</template>
<el-menu-item index="CGraph" @click="$router.push({ name: 'CGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">C图</span>
</el-menu-item>
<el-menu-item index="UGraph" @click="$router.push({ name: 'UGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">U图</span>
</el-menu-item>
<el-menu-item index="NPGraph" @click="$router.push({ name: 'NPGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">NP图</span>
</el-menu-item>
<el-menu-item index="PGraph" @click="$router.push({ name: 'PGraph' })">
<svg class="icon-svg aui-sidebar__menu-icon">
<!-- <svg class="icon-svg aui-sidebar__menu-icon">
<use xlink:href="#icon-tubiao"></use>
</svg> -->
<svg class="icon-svg aui-sidebar__menu-icon-son" aria-hidden="true">
<use xlink:href="#椭圆形"></use>
</svg>
<span slot="title">P图</span>
</el-menu-item>

파일 보기

@ -2,14 +2,16 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:53
* @LastEditors: zwq
* @LastEditTime: 2022-12-01 10:23:29
* @LastEditTime: 2022-12-16 15:25:39
* @Description: C图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'缺陷数图'"
:data-form="dataForm"
:groupTypeShow="true"
@getDataList="getDataList"
@rawData="rawData"
@exportHandle="exportHandle"
@ -17,6 +19,10 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="24">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="CGraph"
:chartLineName="'CGraph'"
:yName="'缺陷数'"
@ -36,6 +42,10 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {
groupType: 1,
},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -47,25 +57,48 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/CGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
})
.catch(() => {});
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/CGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
if (this.dataList.list.length > 0) {
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
} else {
this.chartVisible = false;
this.$message({
message: "没有发现数据",
type: "warning",
});
}
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,14 +2,16 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:53
* @LastEditors: zwq
* @LastEditTime: 2022-12-01 10:23:34
* @LastEditTime: 2022-12-16 15:27:52
* @Description: NP图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'NP图'"
:data-form="dataForm"
:groupTypeShow="true"
@getDataList="getDataList"
@rawData="rawData"
@exportHandle="exportHandle"
@ -17,6 +19,10 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="24">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="CGraph"
:chartLineName="'CGraph'"
:yName="'缺陷数'"
@ -36,6 +42,10 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {
groupType: 1,
},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -47,25 +57,48 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/NPGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
})
.catch(() => {});
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/NPGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
if (this.dataList.list.length > 0) {
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
} else {
this.chartVisible = false;
this.$message({
message: "没有发现数据",
type: "warning",
});
}
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,14 +2,16 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:53
* @LastEditors: zwq
* @LastEditTime: 2022-12-01 10:23:38
* @LastEditTime: 2022-12-16 15:27:58
* @Description: P图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'NP图'"
:data-form="dataForm"
:groupTypeShow="true"
@getDataList="getDataList"
@rawData="rawData"
@exportHandle="exportHandle"
@ -17,6 +19,10 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="24">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="CGraph"
:chartLineName="'CGraph'"
:yName="'缺陷率'"
@ -36,6 +42,10 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {
groupType: 1,
},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -47,25 +57,48 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/PGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
})
.catch(() => {});
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/PGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
if (this.dataList.list.length > 0) {
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
} else {
this.chartVisible = false;
this.$message({
message: "没有发现数据",
type: "warning",
});
}
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,14 +2,16 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:53
* @LastEditors: zwq
* @LastEditTime: 2022-12-01 10:23:43
* @LastEditTime: 2022-12-16 15:28:04
* @Description: U图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'U图'"
:data-form="dataForm"
:groupTypeShow="true"
@getDataList="getDataList"
@rawData="rawData"
@exportHandle="exportHandle"
@ -17,6 +19,10 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="24">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="CGraph"
:chartLineName="'CGraph'"
:yName="'单位缺陷'"
@ -36,6 +42,10 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {
groupType: 1,
},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -47,25 +57,48 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/UGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
})
.catch(() => {});
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/UGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.loading = false;
if (this.dataList.list.length > 0) {
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.CGraph.initChartLine();
});
} else {
this.chartVisible = false;
this.$message({
message: "没有发现数据",
type: "warning",
});
}
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,12 +2,13 @@
* @Author: zwq
* @Date: 2022-09-15 10:23:42
* @LastEditors: zwq
* @LastEditTime: 2022-11-29 16:26:58
* @LastEditTime: 2022-12-16 15:31:18
* @Description: 单值-移动极差 控制图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'单值-移动极差控制图'"
:data-form="dataForm"
@getDataList="getDataList"
@ -17,9 +18,13 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="19">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="XMRGraph"
:chartLineName="'XMRGraph'"
:lineIndex='2'
:lineIndex="2"
:title="chartTitle"
:y-name1="yName1"
:y-name2="yName2"
@ -42,7 +47,10 @@
:key="index + 'xbar'"
class="rightDiv"
>
{{ key }}<span style="float:right">{{ val.length?val: parseFloat(val).toFixed(4) }}</span>
{{ key
}}<span style="float:right">{{
val.length ? val : parseFloat(val).toFixed(4)
}}</span>
</div>
</el-collapse-item>
<el-collapse-item title="移动极差数值" name="1">
@ -51,7 +59,10 @@
:key="index + 'rcl'"
class="rightDiv"
>
{{ key }}<span style="float:right">{{ val.length?val: parseFloat(val).toFixed(4) }}</span>
{{ key
}}<span style="float:right">{{
val.length ? val : parseFloat(val).toFixed(4)
}}</span>
</div>
</el-collapse-item>
<el-collapse-item title="waring:" name="2">
@ -72,6 +83,8 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -87,72 +100,87 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/XMRGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/XMRGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.rightList = [];
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.sl[key],
});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
value: res.data.sl[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.XMRGraph.initChartLine();
});
})
.catch(() => {});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.XMRGraph.initChartLine();
});
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:12
* @LastEditors: zwq
* @LastEditTime: 2022-12-12 16:40:23
* @LastEditTime: 2022-12-16 15:31:07
* @Description: 均值极差控制图
-->
<template>
@ -18,6 +18,10 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="19">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="chartRef"
:chartLineName="'XbarRGraph'"
:lineIndex="0"
@ -79,6 +83,8 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -102,69 +108,79 @@ export default {
methods: {
//
getDataList() {
this.$http
.post("/processInspection/XbarRGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/XbarRGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.rightList = [];
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.sl[key],
});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
value: res.data.sl[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.chartRef.initChartLine();
});
})
.catch(() => {});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.chartRef.initChartLine();
});
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -2,12 +2,13 @@
* @Author: zwq
* @Date: 2022-09-15 10:22:53
* @LastEditors: zwq
* @LastEditTime: 2022-11-29 16:26:47
* @LastEditTime: 2022-12-16 15:31:13
* @Description: 均值标准差控制图
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<query-form
ref="queryForm"
:page-name="'均值标准差控制图'"
:data-form="dataForm"
@getDataList="getDataList"
@ -17,9 +18,13 @@
<el-row :gutter="6" v-if="chartVisible">
<el-col :span="19">
<chart-line
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
ref="chart1Ref"
:chartLineName="'XbarSGraph'"
:lineIndex='1'
:lineIndex="1"
:title="chartTitle"
:y-name1="yName1"
:y-name2="yName2"
@ -42,7 +47,10 @@
:key="index + 'xbar'"
class="rightDiv"
>
{{ key }}<span style="float:right">{{ val.length?val: parseFloat(val).toFixed(4) }}</span>
{{ key
}}<span style="float:right">{{
val.length ? val : parseFloat(val).toFixed(4)
}}</span>
</div>
</el-collapse-item>
<el-collapse-item title="标准差数值" name="1">
@ -51,7 +59,10 @@
:key="index + 'scl'"
class="rightDiv"
>
{{ key }}<span style="float:right">{{ val.length?val: parseFloat(val).toFixed(4) }}</span>
{{ key
}}<span style="float:right">{{
val.length ? val : parseFloat(val).toFixed(4)
}}</span>
</div>
</el-collapse-item>
<el-collapse-item title="waring:" name="2">
@ -72,6 +83,8 @@ export default {
mixins: [processPage],
data() {
return {
dataForm: {},
loading: true,
urlOptions: {
exportUrl: "/basic/unit/export",
},
@ -87,72 +100,87 @@ export default {
queryForm,
chartLine,
},
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: {
//
getDataList() {
this.$http
.post("/processInspection/XbarSGraphTest")
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http
.post("/processInspection/XbarSGraph", {
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.rightList = [];
this.loading = false;
return this.$message.error(res.msg);
}
this.loading = false;
this.dataList = res.data;
this.rightList = [];
return this.$message.error(res.msg);
}
this.dataList = res.data;
this.rightList = [];
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.sl[key],
});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
// this.rightList.push({
// name: "cl()",
// value: res.data.xbarCL.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.xbarCL.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.xbarCL.ucl,
// });
Object.keys(res.data.sl).map((key) => {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
value: res.data.sl[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.chart1Ref.initChartLine();
});
})
.catch(() => {});
});
// this.rightList.push({
// name: "cl()",
// value: res.data.rcl.cl,
// });
// this.rightList.push({
// name: "lcl()",
// value: res.data.rcl.lcl,
// });
// this.rightList.push({
// name: "ucl()",
// value: res.data.rcl.ucl,
// });
Object.keys(res.data.standardDiviation).map((key) => {
this.rightList.push({
name: key,
value: res.data.standardDiviation[key],
});
});
Object.keys(res.data.processCapability).map((key) => {
if (key === "warming") {
this.waring = res.data.processCapability[key];
} else {
this.rightList.push({
name: key,
value: res.data.processCapability[key],
});
}
});
this.chartVisible = true;
this.$nextTick(() => {
this.$refs.chart1Ref.initChartLine();
});
})
.catch(() => {});
});
},
rawData() {
console.log("原始数据");

파일 보기

@ -109,7 +109,7 @@ export default {
},
formatter: (e) => {
let alarmInfo = ''
e[0].data.sRule.forEach(item=>{
e[0].data.sRule?.forEach(item=>{
alarmInfo += this.ruleList[item - 1]+'<br/>'
})
return `
@ -572,6 +572,8 @@ export default {
},
],
};
console.log(this.mrGraphEntity)
console.log(this.lowLine[this.lineIndex].rules)
this.mrGraphEntity.list?.forEach((item, index) => {
if (item[this.lowLine[this.lineIndex].rules].length) {
option.visualMap[1].pieces.push({

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-12-13 13:43:23
* @LastEditTime: 2023-01-06 14:30:12
* @Description:
-->
<template>
@ -40,12 +40,23 @@
<el-checkbox
v-if="item.fType === 2"
v-model="scope.row[item.prop]"
:class="
scope.row[item.prop] === '0'? 'redbg'
: ''
"
true-label="1"
false-label="0"
/>
<el-input
v-else
v-model="scope.row[item.prop]"
:class="
(item.usl < scope.row[item.prop] ||
scope.row[item.prop] < item.lsl) &&
!(item.label === '取样时间' || item.label === '样本号' || item.label === '批次号')
? 'redFont'
: ''
"
size="small"
clearable
:readonly="
@ -124,22 +135,26 @@ export default {
label: "样本号",
},
{
prop: "sampleTime",
prop: "sampleTime1",
label: "取样时间",
},
{
prop: "batchNum",
label: "批次号",
},
// {
// prop: "batchNum",
// label: "",
// },
];
this.featuresList.forEach((item) => {
let obj = {
prop: item.name,
label: item.name,
fType: item.type,
lsl: item.lsl,
usl: item.usl,
};
this.tableProps.push(obj);
this.dataList[0][item.name] = this.workingProcedureName;
this.dataList[0][item.name] = this.workingProcedureName
? this.workingProcedureName
: item.workingProcedureName;
this.dataList[1][item.name] = { 1: "计量型", 2: "计数型" }[item.type];
this.dataList[2][item.name] = item.lsl;
this.dataList[3][item.name] = item.usl;
@ -154,18 +169,16 @@ export default {
getInfluxdb() {
this.$http
.post(
`/processInspection/inspectionSheet/getFluxParamList?inspectionSheetId=${this.inspectionSheetId}`
`/processInspection/inspectionSheet/getFluxParamList3?inspectionSheetId=${this.inspectionSheetId}`
)
.then((res) => {
res.data.forEach((item) => {
item.sampleTime = this.formatDateTime(item.sampleTime);
// item.events.forEach((item1) => {
// item[item1.argName] = item1.argValue;
// });
Object.assign(item, JSON.parse(item.jsonData));
item.sampleTime1 = this.formatDateTime(item.sampleTime);
item.sampleParamList.forEach((item1) => {
item[item1.argName] = item1.argValue;
});
this.dataList.push(item);
});
this.dataList.concat(res.data);
})
.catch(() => {});
},
@ -184,14 +197,13 @@ export default {
sampleNumber: sampleNum,
sampleTime: new Date(),
batchNum: this.batchNum,
events: [],
sampleParamList: [],
};
this.featuresList.forEach((item) => {
let obj1 = {
time: new Date(),
inspectionSheetId: this.inspectionSheetId,
sampleNumber: sampleNum,
transationId: "",
workingProcedureName: this.workingProcedureName
? this.workingProcedureName
: item.workingProcedureName,
};
if (item.type === 1) {
obj1.argName = item.name;
@ -200,13 +212,13 @@ export default {
obj1.argName = item.name;
obj1.argValue = 1;
}
obj.events.push(obj1);
obj.sampleParamList.push(obj1);
});
// obj.jsonData = JSON.stringify(obj.jsonData);
arr.push(obj);
}
this.$http
.post("/processInspection/inspectionSheet/saveFluxParamList2", arr)
.post("/processInspection/inspectionSheet/saveFluxParamList3", arr)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -220,28 +232,28 @@ export default {
Submit() {
let arr = JSON.parse(JSON.stringify(this.dataList.slice(7)));
arr.forEach((item) => {
(item.workingProcedureName = this.workingProcedureName),
(item.sampleTime = new Date(item.sampleTime));
item.events=[]
(item.workingProcedureName = this.workingProcedureName), (item.sampleParamList = []);
this.featuresList.forEach((item1) => {
let obj1 = {
time: new Date(item.sampleTime),
inspectionSheetId: this.inspectionSheetId,
sampleNumber: item.sampleNumber,
transationId: "",
workingProcedureName: this.workingProcedureName
? this.workingProcedureName
: item1.workingProcedureName,
};
obj1.argName = item1.name;
obj1.argValue = item[item1.name];
item.events.push(obj1);
item.sampleParamList.push(obj1);
});
});
this.$http
.post("/processInspection/inspectionSheet/saveFluxParamList2", arr)
.post("/processInspection/inspectionSheet/saveFluxParamList3", arr)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.init();
this.$nextTick(() => {
this.$emit("refreshDataForm", this.inspectionSheetId);
});
})
.catch(() => {});
},
@ -272,3 +284,12 @@ export default {
},
};
</script>
<style scoped>
.redFont >>> .el-input__inner {
color: red;
}
.redbg >>> .el-checkbox__inner {
background: red;
}
</style>

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-12-09 08:59:32
* @LastEditTime: 2022-12-28 09:45:02
* @Description:
-->
<template>
@ -71,8 +71,9 @@ export default {
},
methods: {
init() {
this.dataList.splice(0,this.dataList.length)
this.featuresList.forEach((item) => {
item.workingProcedureName = this.workingProcedureName;
item.workingProcedureName = this.workingProcedureName?this.workingProcedureName:item.workingProcedureName
});
this.dataList = JSON.parse(JSON.stringify(this.featuresList));
this.dataListLoading = false;

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-12-12 11:32:04
* @LastEditTime: 2022-12-28 09:25:04
* @Description:
-->
<template>
@ -304,7 +304,7 @@ export default {
dataRule: {
productId: [{ required: true, message: "产品不能为空", trigger: "change" }],
inspectionStage: [{ required: true, message: "检验阶段不能为空", trigger: "change" }],
workingProcedureId: [{ required: true, message: "工序不能为空", trigger: "change" }],
//workingProcedureId: [{ required: true, message: "", trigger: "change" }],
},
};
},
@ -343,7 +343,7 @@ export default {
if (this.dataForm.id) {
this.workingProcedureName = this.optionArr.arr4.find((item) => {
return item.workingProcedureId === this.dataForm.workingProcedureId;
}).workingProcedureName;
})?.workingProcedureName;
this.$nextTick(() => {
this.$refs.detailTable.init();
});
@ -358,20 +358,29 @@ export default {
},
setDataForm() {
this.detailLoading = true;
const obj = {
inspectionStage: this.dataForm.inspectionStage,
productId: this.dataForm.productId,
workingProcedureId: this.dataForm.workingProcedureId,
};
this.$http
.post("/processInspection/inspectionSheet/getInspectionSheetFeaturesList", obj)
.post(
`/processInspection/inspectionSheet/getInspectionSheetFeaturesList?productId=${
this.dataForm.productId
}${
this.dataForm.inspectionStage ? "&inspectionStage=" + this.dataForm.inspectionStage : ""
}${
this.dataForm.workingProcedureId
? "&workingProcedureId=" + this.dataForm.workingProcedureId
: ""
}`
)
.then(({ data: res }) => {
if (res.code !== 0) {
this.featuresList = [];
return this.$message.error(res.msg);
}
this.featuresList = res.data;
if (this.featuresTableVisible) {
this.$nextTick(() => {
this.$refs.featuresTable.init();
});
}
})
.catch(() => {});
this.dataForm.inspectionStage = String(this.dataForm.inspectionStage);

파일 보기

@ -0,0 +1,123 @@
<!--
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-12-16 09:28:44
* @Description:
-->
<template>
<el-dialog title="选择分析判读方案" :visible.sync="visible">
<el-checkbox-group v-model="checkList">
<el-checkbox
style="width:100%;font-size:20px;margin:8px 5px"
v-for="(item,index) in ruleArr"
:key="item.number"
:label="index"
>{{ item.ruleKey.split("x")[0] }}
<el-input
v-show="item.ruleKey.split('x').length >= 2"
v-model="item.arg1"
style="width:60px"
></el-input>
{{ item.ruleKey.split("x")[1] }}
<el-input
v-show="item.ruleKey.split('x').length >= 3"
v-model="item.arg2"
style="width:60px"
></el-input>
{{ item.ruleKey.split("x")[2] }}
</el-checkbox>
</el-checkbox-group>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
visible: false,
checkList: [],
ruleArr: [
{
number: 1,
ruleKey: "规则一:有1点落在三倍标准差以外",
arg1: null,
arg2: null,
},
{
number: 2,
ruleKey: "规则二:连续x点落在管制中心线同一侧",
arg1: 6,
arg2: null,
},
{
number: 3,
ruleKey: "规则三:连续x点持续上升或下降",
arg1: 6,
arg2: null,
},
{
number: 4,
ruleKey: "规则四:连续x点交替上下跳动",
arg1: 14,
arg2: null,
},
{
number: 5,
ruleKey: "规则五:连续x点中有x点落在中心线同侧两倍标准差以外",
arg1: 3,
arg2: 2,
},
{
number: 6,
ruleKey: "规则六:连续x点中有x点落在中心线同侧一倍标准差以外",
arg1: 5,
arg2: 4,
},
{
number: 7,
ruleKey: "规则七:连续x点落在中心线两侧的一倍标准差以内",
arg1: 15,
arg2: null,
},
{
number: 8,
ruleKey: "规则八:连续x点落在中心线两侧但未在一倍标准差以内",
arg1: 8,
arg2: null,
},
{
number: 9,
ruleKey: "规则九:落在规格线以外",
arg1: null,
arg2: null,
},
{
number: 10,
ruleKey: "规则十:CPK小于目标值",
arg1: null,
arg2: null,
},
],
};
},
methods: {
init() {
this.visible = true;
},
dataFormSubmit(){
let interpretationScheme = []
this.checkList.forEach(item=>{
interpretationScheme.push(this.ruleArr[item])
})
this.visible = false;
this.$emit('setScheme',interpretationScheme)
}
},
};
</script>

파일 보기

@ -2,153 +2,179 @@
* @Author: zwq
* @Date: 2022-09-15 10:44:29
* @LastEditors: zwq
* @LastEditTime: 2022-12-12 16:42:27
* @LastEditTime: 2023-01-06 15:21:11
* @Description:
-->
<template>
<el-row :gutter="6" style="background-color:#e6f7ff;margin:-20px;padding-top:10px;margin-bottom:0">
<el-form ref="dataForm" :model="dataForm" :rules="rules" size="small" label-width="80px">
<el-col :span="6">
<el-form-item label="检验时间" prop="field101">
<el-date-picker
type="daterange"
v-model="dataForm.field101"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{ width: '100%' }"
start-placeholder="开始日期"
end-placeholder="结束日期"
range-separator="-"
clearable
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6" v-if="false">
<el-form-item label="工厂" prop="field102">
<el-select
v-model="dataForm.field102"
placeholder="请选择工厂"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in field102Options"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检验类型" prop="field103">
<el-select
v-model="dataForm.field103"
placeholder="请选择检验类型"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in field103Options"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品" prop="productId">
<el-select
v-model="dataForm.productId"
placeholder="请选择产品"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in optionArr.arr0"
<div>
<el-row
:gutter="6"
style="background-color:#e6f7ff;margin:-20px;padding-top:10px;margin-bottom:0"
>
<el-form ref="dataForm" :model="dataForm" :rules="rules" size="small" label-width="80px">
<el-col :span="6">
<el-form-item label="检验时间" prop="time">
<el-date-picker
type="daterange"
v-model="dataForm.time"
format="yyyy-MM-dd"
:style="{ width: '100%' }"
start-placeholder="开始日期"
end-placeholder="结束日期"
range-separator="-"
clearable
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6" v-if="false">
<el-form-item label="工厂" prop="field102">
<el-select
v-model="dataForm.field102"
placeholder="请选择工厂"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in field102Options"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品" prop="productId">
<el-select
v-model="dataForm.productId"
placeholder="请选择产品"
@change="getWorkingprocedureByProductId"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="item in optionArr.arr0"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检验类型" prop="inspectionStage">
<el-select
v-model="dataForm.inspectionStage"
@change="getFeaturesList()"
placeholder="请选择检验类型"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="item in inspectionStageArr"
:key="item.name"
:label="item.name"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工序" prop="workingProcedureId">
<el-select
v-model="dataForm.workingProcedureId"
@change="$forceUpdate(), getFeaturesList()"
placeholder="请选择工序"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="item in optionArr.arr4"
:key="item.workingProcedureId"
:label="item.workingProcedureName"
:value="item.workingProcedureId"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="特性" prop="productFeaturesId">
<el-select
v-model="dataForm.productFeaturesId"
placeholder="请选择特性"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in optionArr.arr2"
:key="index"
:label="item.name"
:value="item.id"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工艺流程" prop="field105">
<el-select
v-model="dataForm.field105"
placeholder="请选择工艺流程"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in optionArr.arr1"
:key="index"
:label="item.name"
:value="item.id"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="特性" prop="field106">
<el-select
v-model="dataForm.field106"
placeholder="请选择特性"
filterable
clearable
:style="{ width: '100%' }"
>
<el-option
v-for="(item, index) in optionArr.arr2"
:key="index"
:label="item.name"
:value="item.id"
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="样本大小" prop="field111">
<el-input-number
v-model="dataForm.field111"
placeholder="样本大小"
:step="1"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-button size="small" @click="getDataList()">
<svg class="icon-svg"><use xlink:href="#icon-sousuo"></use></svg>
查询
</el-button>
<el-button size="small" type="primary" @click="rawData()">
<svg class="icon-svg"><use xlink:href="#历史记录"></use></svg>
原始数据
</el-button>
<el-button size="small" type="primary" @click="exportHandle()">
<svg class="icon-svg">
<use xlink:href="#导出"></use>
</svg>
导出
</el-button>
</el-form-item>
</el-col>
</el-form>
</el-row>
:disabled="item.disabled"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!groupTypeShow">
<el-form-item label="样本大小" prop="sampleSize">
<el-input-number
v-model="dataForm.sampleSize"
placeholder="样本大小"
:step="1"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6" v-if="groupTypeShow">
<el-form-item label="分组" prop="groupType">
<el-radio-group v-model="dataForm.groupType">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
<el-radio :label="3"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="groupTypeShow ? 6 : 12">
<el-form-item>
<el-button size="small" @click="getDataList()">
<svg class="icon-svg"><use xlink:href="#icon-sousuo"></use></svg>
查询
</el-button>
<el-button size="small" type="primary" @click="rawData()">
<svg class="icon-svg"><use xlink:href="#历史记录"></use></svg>
原始数据
</el-button>
<el-button size="small" type="primary" @click="exportHandle()">
<svg class="icon-svg">
<use xlink:href="#导出"></use>
</svg>
导出
</el-button>
<el-button v-if="!groupTypeShow" size="small" type="primary" @click="showScheme()">
<svg class="icon-svg"><use xlink:href="#方案管理"></use></svg>
配置分析方案
</el-button>
</el-form-item>
</el-col>
</el-form>
</el-row>
<!-- 弹窗, 新增 / 修改 -->
<interpretationScheme
v-if="SchemeVisible"
ref="Scheme"
@setScheme="setScheme"
></interpretationScheme>
</div>
</template>
<script>
import interpretationScheme from "./components/interpretationScheme";
export default {
props: {
pageName: {
@ -163,13 +189,19 @@ export default {
return {};
},
},
groupTypeShow: {
type: Boolean,
default: false,
},
},
components: {
interpretationScheme,
},
data() {
return {
optionArrUrl: [
"/basic/product/page",
"/basic/workingProcedure/page",
],
SchemeVisible: false,
inspectionStageArr: [],
optionArrUrl: ["/basic/product/page"],
optionArr: {},
rules: {
productId: [
@ -179,38 +211,62 @@ export default {
trigger: "change",
},
],
field106: [
productFeaturesId: [
{
required: true,
message: "请选择特性",
trigger: "change",
},
],
time: [
{
required: true,
message: "请选择检验时间",
trigger: "change",
},
],
},
field103Options: [
{
label: "进货检验",
value: 1,
},
{
label: "过程检验",
value: 2,
},
{
label: "成品检验",
value: 3,
},
{
label: "出货检验",
value: 4,
},
],
};
},
created(){
},
created() {},
methods: {
getArr(){
getWorkingprocedureByProductId(val) {
this.dataForm.inspectionStage = "";
this.dataForm.workingProcedureId = "";
this.getWorkingprocedureArr(val);
this.getFeaturesList();
},
getWorkingprocedureArr(val) {
if (val) {
const obj = this.optionArr.arr0.find((item) => {
return item.id === val;
});
const obj1 = { 1: "进货检验", 2: "过程检验", 3: "成品检验", 4: "出货检验" };
const inspectionStage = obj.inspectionStage.split(",");
this.inspectionStageArr = [];
inspectionStage.forEach((item) => {
this.inspectionStageArr.push({
value: item,
name: obj1[item],
});
});
this.$http
.get(`/basic/productWorkingprocedureRelation/getWorkingprocedureByProductId/${val}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$set(this.optionArr, "arr4", res.data);
})
.catch(() => {});
} else {
this.inspectionStageArr = [];
this.$set(this.optionArr, "arr2", []);
this.$set(this.optionArr, "arr4", []);
}
},
getArr() {
this.optionArrUrl.forEach((item, index) => {
this.$http
.get(item, {
@ -221,26 +277,53 @@ export default {
})
.then(({ data: res }) => {
if (res.code !== 0) {
this.$set(this.optionArr, `arr${index}`, []);
this.$set(this.optionArr, `arr${index}`, []);
return this.$message.error(res.msg);
}
this.$set(this.optionArr, `arr${index}`, res.data.list);
})
.catch(() => {});
});
},
getFeaturesList() {
this.$set(this.dataForm, 'productFeaturesId', '')
this.$http
.post("/processInspection/inspectionSheet/getInspectionSheetFeaturesList")
.post(
`/processInspection/inspectionSheet/getInspectionSheetFeaturesList?productId=${
this.dataForm.productId
}${
this.dataForm.inspectionStage ? "&inspectionStage=" + this.dataForm.inspectionStage : ""
}${
this.dataForm.workingProcedureId
? "&workingProcedureId=" + this.dataForm.workingProcedureId
: ""
}`
)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$set(this.optionArr, 'arr2', []);
this.$set(this.optionArr, "arr2", []);
return this.$message.error(res.msg);
}
this.$set(this.optionArr, 'arr2', res.data);
this.$set(this.optionArr, "arr2", res.data);
})
.catch(() => {});
},
},
getDataList() {
this.$emit("getDataList");
console.log(this.dataForm)
(this.dataForm.begin =
this.dataForm.time && this.dataForm.time.length > 0 ? this.dataForm.time[0] : ""),
(this.dataForm.end =
this.dataForm.time && this.dataForm.time.length > 0 ? this.dataForm.time[1] : ""),
this.$emit("getDataList");
},
showScheme() {
this.SchemeVisible = true;
this.$nextTick(() => {
this.$refs.Scheme.init();
});
},
setScheme(interpretationScheme) {
this.dataForm.interpretationScheme = interpretationScheme;
},
rawData() {
this.$emit("rawData");

파일 보기

@ -2,13 +2,14 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-08-24 16:10:47
* @LastEditTime: 2023-01-03 11:35:26
* @Description:
-->
<template>
<el-dialog title="绑定机台" :visible.sync="visible">
<el-transfer
v-model="machineArr"
:titles="['总机台列表', '绑定机台列表']"
:props="{
key: 'id',
label: 'name',
@ -38,6 +39,8 @@ export default {
setDataForm() {
if (this.dataForm.machineId) {
this.machineArr = this.dataForm.machineId.split(",");
}else{
this.machineArr = []
}
},
init(id) {
@ -60,6 +63,7 @@ export default {
});
},
getArr() {
this.platArr.splice(0,this.platArr.length)
this.$http
.get("/basic/machine/page", {
params: {

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-09-01 15:42:34
* @LastEditors: zwq
* @LastEditTime: 2022-12-12 15:44:25
* @LastEditTime: 2023-01-06 15:29:29
* @Description:
-->
<template>
@ -12,15 +12,39 @@
<div slot="header" style="color:#409eff;text-align:center">
工序列表
</div>
<div
v-for="(item, index) in processArr"
:key="index"
class="btn"
:title="item.name"
@mousedown="startDrag(item, $event)"
>
{{ item.name }}
</div>
<el-collapse v-model="activeName" @change="processTypeClick" accordion>
<el-collapse-item
v-for="(item, index) in processTypeArr"
:key="index"
:title="item.name"
:name="index"
>
<div
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
>
<div v-if="processArr.length > 0">
<div
v-for="(item, index) in processArr"
:key="index"
class="btn"
:title="item.name"
@mousedown="startDrag(item, $event)"
>
{{ item.name }}
</div>
</div>
<el-empty
v-else
:image-size="50"
description="此类型下无工序"
style="padding:0;"
></el-empty>
</div>
</el-collapse-item>
</el-collapse>
</el-card>
</el-col>
<el-col :span="21">
@ -189,10 +213,13 @@ export default {
return {
dataList: [],
processArr: [],
processTypeArr: [],
activeName: "",
processId: "",
graph: "",
type: "grid",
selectCell: "",
loading: false,
editDrawer: false,
editTitle: "",
form: {},
@ -321,7 +348,7 @@ export default {
},
getArr() {
this.$http
.get("/basic/workingProcedure/page", {
.get("/basic/workingProcedureType/page", {
params: {
page: 1,
limit: 500,
@ -331,7 +358,7 @@ export default {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.processArr = res.data.list;
this.processTypeArr = res.data.list;
})
.catch(() => {});
},
@ -351,6 +378,20 @@ export default {
})
.catch(() => {});
},
//
processTypeClick(val) {
this.processArr = [];
if (val === 0 || val) {
this.loading = true;
this.$http
.post(`/basic/workingProcedure/listByType/${this.processTypeArr[val].id}`)
.then(({ data: res }) => {
this.loading = false;
this.processArr = res;
})
.catch(() => {});
}
},
setNode() {
let nodes = [];
this.dataList.forEach((item) => {
@ -672,7 +713,9 @@ export default {
},
},
beforeDestroy() {
this.graph.dispose();
if (this.graph) {
this.graph.dispose();
}
},
};
</script>
@ -688,7 +731,7 @@ export default {
.btn {
background-color: #5bdeff;
text-align: center;
padding: 20px;
padding: 10px;
color: white;
cursor: move;
margin-bottom: 10px;

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-09-07 15:45:24
* @LastEditTime: 2023-01-06 15:25:05
* @Description:
-->
<template>
@ -14,7 +14,7 @@
>
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-steps :active="active" align-center finish-status="success">
<el-steps :active="active" align-center finish-status="success" process-status="finish">
<el-step title="基础信息"></el-step>
<el-step title="工艺流程"></el-step>
<el-step title="产品特性"></el-step>

파일 보기

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-09-07 10:49:27
* @LastEditTime: 2023-01-06 14:16:17
* @Description:
-->
<template>
@ -80,12 +80,26 @@
</el-col>
<el-col :span="8">
<el-form-item label="SPC" prop="isSpc">
<el-input v-model="fourDataForm.isSpc" placeholder="SPC"></el-input>
<el-select
v-model="fourDataForm.isSpc"
:style="{ width: '100%' }"
readonly
placeholder="请选择是否SPC"
>
<el-option
v-for="item in SPCArr"
:key="item.value"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分析图形" prop="controlGraphId">
<el-select
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.controlGraphId"
placeholder="请选择分析图形"
clearable
@ -103,6 +117,7 @@
<el-col :span="8">
<el-form-item label="样本大小" prop="sampleSize">
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.sampleSize"
placeholder="样本大小"
></el-input-number>
@ -133,6 +148,7 @@
<el-col :span="8">
<el-form-item label="小数位数" prop="decimalPlaces">
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.decimalPlaces"
placeholder="小数位数"
></el-input-number>
@ -145,22 +161,35 @@
</el-col>
<el-col :span="8">
<el-form-item label="LSL" prop="lsl">
<el-input-number v-model="fourDataForm.lsl" placeholder="LSL"></el-input-number>
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.lsl"
placeholder="LSL"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="SL" prop="sl">
<el-input-number v-model="fourDataForm.sl" placeholder="SL"></el-input-number>
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.sl"
placeholder="SL"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="USL" prop="usl">
<el-input-number v-model="fourDataForm.usl" placeholder="USL"></el-input-number>
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.usl"
placeholder="USL"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="目标CPK" prop="targetCpk">
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.targetCpk"
placeholder="目标CPK"
></el-input-number>
@ -169,6 +198,7 @@
<el-col :span="8">
<el-form-item label="目标PPK" prop="targetPpk">
<el-input-number
:disabled="fourDataForm.type === 2"
v-model="fourDataForm.targetPpk"
placeholder="目标PPK"
></el-input-number>
@ -225,6 +255,16 @@ export default {
value: 1,
},
],
SPCArr: [
{
name: "否",
value: 0,
},
{
name: "是",
value: 1,
},
],
defectLevelArr: [
{
name: "致命缺陷",
@ -245,6 +285,10 @@ export default {
dataRule: {
code: [{ required: true, message: "编码不能为空", trigger: "blur" }],
name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
sampleSize: [
{ required: true, message: "样本大小不能为空", trigger: "blur" },
{ pattern: /^([2-9]|[1-2]d|3[0-5])$/, message: "范围在2-35", trigger: "blur" },
],
},
};
},

파일 보기

@ -2,14 +2,20 @@
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-12-13 16:00:33
* @LastEditTime: 2023-01-03 14:06:12
* @Description:
-->
<template>
<div>
<div v-if="workingProcedure.length && productFeaturesOptions.length">
<el-tabs @tab-click="tabClick">
<el-tab-pane label="控制矩阵">
<el-tab-pane
v-loading="loading"
element-loading-text="保存中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
label="控制矩阵"
>
<el-button style="float:right" size="small" type="primary" @click="deleteFeatures()">
<svg class="icon-svg"><use xlink:href="#icon-新建"></use></svg>
保存
@ -81,9 +87,17 @@
<span>{{ scope.row.isSpc === 1 ? "是" : "否" }}</span>
</template>
</el-table-column>
<el-table-column prop="controlGraphName" align="center" label="分析图形"></el-table-column>
<el-table-column
prop="controlGraphName"
align="center"
label="分析图形"
></el-table-column>
<el-table-column prop="sampleSize" align="center" label="样本大小"></el-table-column>
<el-table-column prop="samplingFrequency" align="center" label="抽样频率"></el-table-column>
<el-table-column
prop="samplingFrequency"
align="center"
label="抽样频率"
></el-table-column>
<el-table-column prop="unitName" align="center" label="单位"></el-table-column>
<el-table-column prop="decimalPlaces" align="center" label="小数位数"></el-table-column>
<el-table-column prop="specifications" align="center" label="规格"></el-table-column>
@ -130,10 +144,7 @@
ref="fourAddOrUpdate"
@refreshFourDataList="getFourDataList"
></four-add-or-update>
<four-history
v-if="productFeaturesHisVisible"
ref="productFeaturesHisRef"
></four-history>
<four-history v-if="productFeaturesHisVisible" ref="productFeaturesHisRef"></four-history>
</div>
</template>
@ -166,7 +177,8 @@ export default {
setBatchInsert: [],
inspectionStage: 0,
dataListLoading: false,
productFeaturesHisVisible:false,
loading: false,
productFeaturesHisVisible: false,
};
},
components: {
@ -176,6 +188,7 @@ export default {
methods: {
init(index) {
this.dataListLoading = false;
this.loading = false;
this.inspectionStage = parseInt(index);
this.productFeaturesList.splice(0, this.productFeaturesList.length);
this.$nextTick(() => {
@ -229,9 +242,12 @@ export default {
});
},
deleteFeatures() {
this.loading = true;
this.workingProcedure.forEach((item, index) => {
this.$http
.delete(`/basic/featuresStageProcedureRelation/deleteByStageProcedure?inspectionStage=${this.inspectionStage}&productId=${this.productId}&workingProcedureId=${item.workingProcedureId}`)
.delete(
`/basic/featuresStageProcedureRelation/deleteByStageProcedure?inspectionStage=${this.inspectionStage}&productId=${this.productId}&workingProcedureId=${item.workingProcedureId}`
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -247,6 +263,7 @@ export default {
this.$http
.post("/basic/featuresStageProcedureRelation/batchInsert", [...this.setBatchInsert])
.then(({ data: res }) => {
this.loading = false;
if (res.code !== 0) {
return this.$message.error(res.msg);
}
@ -289,11 +306,11 @@ export default {
})
.catch(() => {});
},
productFeaturesHis(id){
this.productFeaturesHisVisible = true;
this.$nextTick(() => {
this.$refs.productFeaturesHisRef.init(id);
});
productFeaturesHis(id) {
this.productFeaturesHisVisible = true;
this.$nextTick(() => {
this.$refs.productFeaturesHisRef.init(id);
});
},
//
dataFormSubmit() {},