This commit is contained in:
朱文强 2023-01-06 15:49:40 +08:00
parent f6b3f2f323
commit 461bd6ba85
26 changed files with 1219 additions and 573 deletions

View File

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

View File

@ -276,7 +276,7 @@ img {
&:focus, &:focus,
&:hover { &:hover {
color: #fff; color: #fff;
background-color: mix(#000, $--color-primary, 15%); background-color: mix(#fff, $--color-primary, 15%);
} }
} }
> .el-menu-item.is-active, > .el-menu-item.is-active,
@ -318,7 +318,7 @@ img {
transition: width .3s; transition: width .3s;
} }
&__brand { &__brand {
background-color: #409eff; background-color: rgba(0, 21, 41, 1);
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -478,12 +478,16 @@ img {
&:focus, &:focus,
&:hover { &:hover {
color: #fff; 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-menu,
.el-submenu.is-opened { .el-submenu.is-opened {
background-color: #0b253f; background-color: rgba(11, 37, 63, 1);
} }
.el-menu-item.is-active, .el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title { .el-submenu.is-active > .el-submenu__title {
@ -521,6 +525,16 @@ img {
color: inherit !important; color: inherit !important;
transition: font-size .3s; 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 { & > .el-tabs__item {
height: $content--tabs-header-height; height: $content--tabs-header-height;
padding: 0 15px;
line-height: $content--tabs-header-height;
border: 0; border: 0;
color: $--color-text-regular; padding: 0 10px;
color: rgba(89, 89, 89, 1);
&:focus, &:focus,
&:hover, &:hover,
&.is-active { &.is-active {
color: $--color-text-primary;
background-color: $--background-color-base;
&:after { &:after {
display: block; display: block;
} }
> .el-icon-close { > .el-icon-close {
color: $--color-text-primary; color: rgba(255, 255, 255, 1);
} }
} }
&:after { &:after {
@ -619,11 +630,20 @@ img {
background-color: $--color-primary; background-color: $--color-primary;
} }
+ .el-tabs__item { + .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 { > .el-icon-close {
width: 14px; width: 14px;
margin-left: 15px; margin-left: 6px;
color: $--color-text-secondary; color: $--color-text-secondary;
} }
> i.icon { > i.icon {

View File

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

View File

@ -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:  |  Size: 686 B

View File

@ -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:  |  Size: 3.0 KiB

View File

@ -34,10 +34,6 @@ export const moduleRoutes = {
children: [ children: [
{ path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } }, { 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: '/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 } }, { path: '/productList', component: () => import('@/views/spc-basic/productList'), name: 'productList', meta: { title: '产品列表', isTab: true } },

View File

@ -1,3 +1,10 @@
<!--
* @Author: zwq
* @Date: 2022-08-22 14:57:51
* @LastEditors: zwq
* @LastEditTime: 2023-01-06 15:34:54
* @Description:
-->
<template> <template>
<el-submenu v-if="menu.children && menu.children.length >= 1" :index="menu.id" :popper-append-to-body="false"> <el-submenu v-if="menu.children && menu.children.length >= 1" :index="menu.id" :popper-append-to-body="false">
<template slot="title"> <template slot="title">
@ -7,7 +14,8 @@
<sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu> <sub-menu v-for="item in menu.children" :key="item.id" :menu="item"></sub-menu>
</el-submenu> </el-submenu>
<el-menu-item v-else :index="menu.id" @click="gotoRouteHandle(menu.id)"> <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> <span>{{ menu.name }}</span>
</el-menu-item> </el-menu-item>
</template> </template>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,12 +2,13 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-09-15 10:23:42 * @Date: 2022-09-15 10:23:42
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-11-29 16:26:58 * @LastEditTime: 2022-12-16 15:31:18
* @Description: 单值-移动极差 控制图 * @Description: 单值-移动极差 控制图
--> -->
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<query-form <query-form
ref="queryForm"
:page-name="'单值-移动极差控制图'" :page-name="'单值-移动极差控制图'"
:data-form="dataForm" :data-form="dataForm"
@getDataList="getDataList" @getDataList="getDataList"
@ -17,9 +18,13 @@
<el-row :gutter="6" v-if="chartVisible"> <el-row :gutter="6" v-if="chartVisible">
<el-col :span="19"> <el-col :span="19">
<chart-line <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" ref="XMRGraph"
:chartLineName="'XMRGraph'" :chartLineName="'XMRGraph'"
:lineIndex='2' :lineIndex="2"
:title="chartTitle" :title="chartTitle"
:y-name1="yName1" :y-name1="yName1"
:y-name2="yName2" :y-name2="yName2"
@ -42,7 +47,10 @@
:key="index + 'xbar'" :key="index + 'xbar'"
class="rightDiv" 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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="移动极差数值" name="1"> <el-collapse-item title="移动极差数值" name="1">
@ -51,7 +59,10 @@
:key="index + 'rcl'" :key="index + 'rcl'"
class="rightDiv" 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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="waring:" name="2"> <el-collapse-item title="waring:" name="2">
@ -72,6 +83,8 @@ export default {
mixins: [processPage], mixins: [processPage],
data() { data() {
return { return {
dataForm: {},
loading: true,
urlOptions: { urlOptions: {
exportUrl: "/basic/unit/export", exportUrl: "/basic/unit/export",
}, },
@ -87,18 +100,32 @@ export default {
queryForm, queryForm,
chartLine, chartLine,
}, },
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: { methods: {
// //
getDataList() { getDataList() {
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http this.$http
.post("/processInspection/XMRGraphTest") .post("/processInspection/XMRGraph", {
...this.dataForm,
})
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; this.dataListLoading = false;
if (res.code !== 0) { if (res.code !== 0) {
this.dataList = []; this.dataList = [];
this.rightList = []; this.rightList = [];
this.loading = false;
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }
this.loading = false;
this.dataList = res.data; this.dataList = res.data;
this.rightList = []; this.rightList = [];
// this.rightList.push({ // this.rightList.push({
@ -153,6 +180,7 @@ export default {
}); });
}) })
.catch(() => {}); .catch(() => {});
});
}, },
rawData() { rawData() {
console.log("原始数据"); console.log("原始数据");

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-09-15 10:22:12 * @Date: 2022-09-15 10:22:12
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-12-12 16:40:23 * @LastEditTime: 2022-12-16 15:31:07
* @Description: 均值极差控制图 * @Description: 均值极差控制图
--> -->
<template> <template>
@ -18,6 +18,10 @@
<el-row :gutter="6" v-if="chartVisible"> <el-row :gutter="6" v-if="chartVisible">
<el-col :span="19"> <el-col :span="19">
<chart-line <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" ref="chartRef"
:chartLineName="'XbarRGraph'" :chartLineName="'XbarRGraph'"
:lineIndex="0" :lineIndex="0"
@ -79,6 +83,8 @@ export default {
mixins: [processPage], mixins: [processPage],
data() { data() {
return { return {
dataForm: {},
loading: true,
urlOptions: { urlOptions: {
exportUrl: "/basic/unit/export", exportUrl: "/basic/unit/export",
}, },
@ -102,15 +108,24 @@ export default {
methods: { methods: {
// //
getDataList() { getDataList() {
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http this.$http
.post("/processInspection/XbarRGraphTest") .post("/processInspection/XbarRGraph", {
...this.dataForm,
})
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; this.dataListLoading = false;
if (res.code !== 0) { if (res.code !== 0) {
this.dataList = []; this.dataList = [];
this.rightList = []; this.rightList = [];
this.loading = false;
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }
this.loading = false;
this.dataList = res.data; this.dataList = res.data;
this.rightList = []; this.rightList = [];
// this.rightList.push({ // this.rightList.push({
@ -165,6 +180,7 @@ export default {
}); });
}) })
.catch(() => {}); .catch(() => {});
});
}, },
rawData() { rawData() {
console.log("原始数据"); console.log("原始数据");

View File

@ -2,12 +2,13 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-09-15 10:22:53 * @Date: 2022-09-15 10:22:53
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-11-29 16:26:47 * @LastEditTime: 2022-12-16 15:31:13
* @Description: 均值标准差控制图 * @Description: 均值标准差控制图
--> -->
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<query-form <query-form
ref="queryForm"
:page-name="'均值标准差控制图'" :page-name="'均值标准差控制图'"
:data-form="dataForm" :data-form="dataForm"
@getDataList="getDataList" @getDataList="getDataList"
@ -17,9 +18,13 @@
<el-row :gutter="6" v-if="chartVisible"> <el-row :gutter="6" v-if="chartVisible">
<el-col :span="19"> <el-col :span="19">
<chart-line <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" ref="chart1Ref"
:chartLineName="'XbarSGraph'" :chartLineName="'XbarSGraph'"
:lineIndex='1' :lineIndex="1"
:title="chartTitle" :title="chartTitle"
:y-name1="yName1" :y-name1="yName1"
:y-name2="yName2" :y-name2="yName2"
@ -42,7 +47,10 @@
:key="index + 'xbar'" :key="index + 'xbar'"
class="rightDiv" 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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="标准差数值" name="1"> <el-collapse-item title="标准差数值" name="1">
@ -51,7 +59,10 @@
:key="index + 'scl'" :key="index + 'scl'"
class="rightDiv" 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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="waring:" name="2"> <el-collapse-item title="waring:" name="2">
@ -72,6 +83,8 @@ export default {
mixins: [processPage], mixins: [processPage],
data() { data() {
return { return {
dataForm: {},
loading: true,
urlOptions: { urlOptions: {
exportUrl: "/basic/unit/export", exportUrl: "/basic/unit/export",
}, },
@ -87,18 +100,32 @@ export default {
queryForm, queryForm,
chartLine, chartLine,
}, },
created() {
this.$nextTick(() => {
this.$refs.queryForm.getArr();
});
},
methods: { methods: {
// //
getDataList() { getDataList() {
this.$refs.queryForm.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.loading = true;
this.$http this.$http
.post("/processInspection/XbarSGraphTest") .post("/processInspection/XbarSGraph", {
...this.dataForm,
})
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; this.dataListLoading = false;
if (res.code !== 0) { if (res.code !== 0) {
this.dataList = []; this.dataList = [];
this.rightList = []; this.rightList = [];
this.loading = false;
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }
this.loading = false;
this.dataList = res.data; this.dataList = res.data;
this.rightList = []; this.rightList = [];
// this.rightList.push({ // this.rightList.push({
@ -153,6 +180,7 @@ export default {
}); });
}) })
.catch(() => {}); .catch(() => {});
});
}, },
rawData() { rawData() {
console.log("原始数据"); console.log("原始数据");

View File

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

View File

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

View File

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

View File

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

View File

@ -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>

View File

@ -2,19 +2,22 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-09-15 10:44:29 * @Date: 2022-09-15 10:44:29
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-12-12 16:42:27 * @LastEditTime: 2023-01-06 15:21:11
* @Description: * @Description:
--> -->
<template> <template>
<el-row :gutter="6" style="background-color:#e6f7ff;margin:-20px;padding-top:10px;margin-bottom:0"> <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-form ref="dataForm" :model="dataForm" :rules="rules" size="small" label-width="80px">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="检验时间" prop="field101"> <el-form-item label="检验时间" prop="time">
<el-date-picker <el-date-picker
type="daterange" type="daterange"
v-model="dataForm.field101" v-model="dataForm.time"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{ width: '100%' }" :style="{ width: '100%' }"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -43,66 +46,68 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="检验类型" prop="field103"> <el-form-item label="产品" prop="productId">
<el-select <el-select
v-model="dataForm.field103" 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="请选择检验类型" placeholder="请选择检验类型"
filterable filterable
clearable clearable
:style="{ width: '100%' }" :style="{ width: '100%' }"
> >
<el-option <el-option
v-for="(item, index) in field103Options" v-for="item in inspectionStageArr"
:key="index" :key="item.name"
:label="item.label" :label="item.name"
:value="item.value" :value="item.value"
:disabled="item.disabled"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="产品" prop="productId"> <el-form-item label="工序" prop="workingProcedureId">
<el-select <el-select
v-model="dataForm.productId" v-model="dataForm.workingProcedureId"
placeholder="请选择产品" @change="$forceUpdate(), getFeaturesList()"
placeholder="请选择工序"
filterable filterable
clearable clearable
:style="{ width: '100%' }" :style="{ width: '100%' }"
> >
<el-option <el-option
v-for="(item, index) in optionArr.arr0" v-for="item in optionArr.arr4"
:key="index" :key="item.workingProcedureId"
:label="item.name" :label="item.workingProcedureName"
:value="item.id" :value="item.workingProcedureId"
:disabled="item.disabled" :disabled="item.disabled"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="工艺流程" prop="field105"> <el-form-item label="特性" prop="productFeaturesId">
<el-select <el-select
v-model="dataForm.field105" v-model="dataForm.productFeaturesId"
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="请选择特性" placeholder="请选择特性"
filterable filterable
clearable clearable
@ -118,16 +123,25 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" v-if="!groupTypeShow">
<el-form-item label="样本大小" prop="field111"> <el-form-item label="样本大小" prop="sampleSize">
<el-input-number <el-input-number
v-model="dataForm.field111" v-model="dataForm.sampleSize"
placeholder="样本大小" placeholder="样本大小"
:step="1" :step="1"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <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-form-item>
<el-button size="small" @click="getDataList()"> <el-button size="small" @click="getDataList()">
<svg class="icon-svg"><use xlink:href="#icon-sousuo"></use></svg> <svg class="icon-svg"><use xlink:href="#icon-sousuo"></use></svg>
@ -143,12 +157,24 @@
</svg> </svg>
导出 导出
</el-button> </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-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<!-- 弹窗, 新增 / 修改 -->
<interpretationScheme
v-if="SchemeVisible"
ref="Scheme"
@setScheme="setScheme"
></interpretationScheme>
</div>
</template> </template>
<script> <script>
import interpretationScheme from "./components/interpretationScheme";
export default { export default {
props: { props: {
pageName: { pageName: {
@ -163,13 +189,19 @@ export default {
return {}; return {};
}, },
}, },
groupTypeShow: {
type: Boolean,
default: false,
},
},
components: {
interpretationScheme,
}, },
data() { data() {
return { return {
optionArrUrl: [ SchemeVisible: false,
"/basic/product/page", inspectionStageArr: [],
"/basic/workingProcedure/page", optionArrUrl: ["/basic/product/page"],
],
optionArr: {}, optionArr: {},
rules: { rules: {
productId: [ productId: [
@ -179,37 +211,61 @@ export default {
trigger: "change", trigger: "change",
}, },
], ],
field106: [ productFeaturesId: [
{ {
required: true, required: true,
message: "请选择特性", message: "请选择特性",
trigger: "change", trigger: "change",
}, },
], ],
}, time: [
field103Options: [
{ {
label: "进货检验", required: true,
value: 1, message: "请选择检验时间",
}, trigger: "change",
{
label: "过程检验",
value: 2,
},
{
label: "成品检验",
value: 3,
},
{
label: "出货检验",
value: 4,
}, },
], ],
},
}; };
}, },
created(){ created() {},
},
methods: { methods: {
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() { getArr() {
this.optionArrUrl.forEach((item, index) => { this.optionArrUrl.forEach((item, index) => {
this.$http this.$http
@ -228,20 +284,47 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}); });
},
getFeaturesList() {
this.$set(this.dataForm, 'productFeaturesId', '')
this.$http 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 }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$set(this.optionArr, 'arr2', []); this.$set(this.optionArr, "arr2", []);
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }
this.$set(this.optionArr, 'arr2', res.data); this.$set(this.optionArr, "arr2", res.data);
}) })
.catch(() => {}); .catch(() => {});
}, },
getDataList() { 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"); this.$emit("getDataList");
}, },
showScheme() {
this.SchemeVisible = true;
this.$nextTick(() => {
this.$refs.Scheme.init();
});
},
setScheme(interpretationScheme) {
this.dataForm.interpretationScheme = interpretationScheme;
},
rawData() { rawData() {
this.$emit("rawData"); this.$emit("rawData");
}, },

View File

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

View File

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

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-09-07 15:45:24 * @LastEditTime: 2023-01-06 15:25:05
* @Description: * @Description:
--> -->
<template> <template>
@ -14,7 +14,7 @@
> >
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <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> <el-step title="工艺流程"></el-step>
<el-step title="产品特性"></el-step> <el-step title="产品特性"></el-step>

View File

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

View File

@ -2,14 +2,20 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2022-12-13 16:00:33 * @LastEditTime: 2023-01-03 14:06:12
* @Description: * @Description:
--> -->
<template> <template>
<div> <div>
<div v-if="workingProcedure.length && productFeaturesOptions.length"> <div v-if="workingProcedure.length && productFeaturesOptions.length">
<el-tabs @tab-click="tabClick"> <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()"> <el-button style="float:right" size="small" type="primary" @click="deleteFeatures()">
<svg class="icon-svg"><use xlink:href="#icon-新建"></use></svg> <svg class="icon-svg"><use xlink:href="#icon-新建"></use></svg>
保存 保存
@ -81,9 +87,17 @@
<span>{{ scope.row.isSpc === 1 ? "是" : "否" }}</span> <span>{{ scope.row.isSpc === 1 ? "是" : "否" }}</span>
</template> </template>
</el-table-column> </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="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="unitName" align="center" label="单位"></el-table-column>
<el-table-column prop="decimalPlaces" 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> <el-table-column prop="specifications" align="center" label="规格"></el-table-column>
@ -130,10 +144,7 @@
ref="fourAddOrUpdate" ref="fourAddOrUpdate"
@refreshFourDataList="getFourDataList" @refreshFourDataList="getFourDataList"
></four-add-or-update> ></four-add-or-update>
<four-history <four-history v-if="productFeaturesHisVisible" ref="productFeaturesHisRef"></four-history>
v-if="productFeaturesHisVisible"
ref="productFeaturesHisRef"
></four-history>
</div> </div>
</template> </template>
@ -166,6 +177,7 @@ export default {
setBatchInsert: [], setBatchInsert: [],
inspectionStage: 0, inspectionStage: 0,
dataListLoading: false, dataListLoading: false,
loading: false,
productFeaturesHisVisible: false, productFeaturesHisVisible: false,
}; };
}, },
@ -176,6 +188,7 @@ export default {
methods: { methods: {
init(index) { init(index) {
this.dataListLoading = false; this.dataListLoading = false;
this.loading = false;
this.inspectionStage = parseInt(index); this.inspectionStage = parseInt(index);
this.productFeaturesList.splice(0, this.productFeaturesList.length); this.productFeaturesList.splice(0, this.productFeaturesList.length);
this.$nextTick(() => { this.$nextTick(() => {
@ -229,9 +242,12 @@ export default {
}); });
}, },
deleteFeatures() { deleteFeatures() {
this.loading = true;
this.workingProcedure.forEach((item, index) => { this.workingProcedure.forEach((item, index) => {
this.$http 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 }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
@ -247,6 +263,7 @@ export default {
this.$http this.$http
.post("/basic/featuresStageProcedureRelation/batchInsert", [...this.setBatchInsert]) .post("/basic/featuresStageProcedureRelation/batchInsert", [...this.setBatchInsert])
.then(({ data: res }) => { .then(({ data: res }) => {
this.loading = false;
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }