Compare commits
3 Commits
258b9f1256
...
2859ec78c4
Author | SHA1 | Date | |
---|---|---|---|
2859ec78c4 | |||
|
a17d258934 | ||
|
837991ee91 |
@ -575,6 +575,7 @@ t.gage.repeatabilityAndReproducibility = '重复性和再现性(R&R)'
|
|||||||
t.gage.partVariation = '零件变差(TV)'
|
t.gage.partVariation = '零件变差(TV)'
|
||||||
t.gage.decide = '综合判定'
|
t.gage.decide = '综合判定'
|
||||||
t.gage.tabularComputations = '表格计算'
|
t.gage.tabularComputations = '表格计算'
|
||||||
|
t.gage.tabularComputationsAdd = '表格计算新增'
|
||||||
t.gage.fabrication = '制作'
|
t.gage.fabrication = '制作'
|
||||||
|
|
||||||
|
|
||||||
@ -700,7 +701,6 @@ t.researchquality.registrationDate = '登记日期'
|
|||||||
t.researchquality.changeSource = '变更来源'
|
t.researchquality.changeSource = '变更来源'
|
||||||
t.researchquality.owner = '所有者'
|
t.researchquality.owner = '所有者'
|
||||||
t.researchquality.category = 'Category'
|
t.researchquality.category = 'Category'
|
||||||
t.researchquality.title = '标题'
|
|
||||||
t.researchquality.currentStage = '当前阶段'
|
t.researchquality.currentStage = '当前阶段'
|
||||||
t.researchquality.productName = '产品名称'
|
t.researchquality.productName = '产品名称'
|
||||||
t.researchquality.qualityChangeStatus = '状态'
|
t.researchquality.qualityChangeStatus = '状态'
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-07-14 13:44:46
|
* @Date: 2023-07-14 13:44:46
|
||||||
* @LastEditTime: 2023-07-18 16:53:52
|
* @LastEditTime: 2023-07-21 09:34:55
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-drawer close-on-press-escape:title="$t('add')" :append-to-body="true" :before-close="handleClose"
|
<el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('add')" :append-to-body="true"
|
||||||
:visible.sync="innerDrawer">
|
@closed="handleClose" :visible.sync="innerDrawer">
|
||||||
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
|
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
|
||||||
label-width="120px">
|
label-width="120px">
|
||||||
<el-form-item prop="requirementListId" :label="$t('customerquality.requirementListName')">
|
<el-form-item prop="requirementListId" :label="$t('customerquality.requirementListName')">
|
||||||
@ -101,7 +101,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.innerDrawer = true
|
this.innerDrawer = false
|
||||||
this.$refs.dataForm.resetFields()
|
this.$refs.dataForm.resetFields()
|
||||||
},
|
},
|
||||||
getInfo() {
|
getInfo() {
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-02-14 15:02:26
|
* @Date: 2023-02-14 15:02:26
|
||||||
* @LastEditTime: 2023-07-19 16:17:25
|
* @LastEditTime: 2023-07-21 10:07:47
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<el-drawer close-on-press-escape title="提示" :visible.sync="visible" size="50%" :before-close="handleClose()">
|
<el-drawer close-on-press-escape title="项目清单" :visible.sync="visible" size="50%" :before-close="handleClose()">
|
||||||
<el-tabs @tab-click="handleClickTab" v-model="title" tab-position="left" style="margin-bottom: 30px;">
|
<el-tabs @tab-click="handleClickTab" v-model="title" tab-position="left" style="margin-bottom: 30px;">
|
||||||
<el-tab-pane label="项目概述" name="first">
|
<el-tab-pane label="项目概述" name="first">
|
||||||
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
|
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-06-08 14:29:46
|
* @Date: 2023-06-08 14:29:46
|
||||||
* @LastEditTime: 2023-07-19 16:58:37
|
* @LastEditTime: 2023-07-21 14:03:20
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -137,7 +137,9 @@ export default {
|
|||||||
urlOptions: {
|
urlOptions: {
|
||||||
getDataListURL: "/customerquality/qmsCustomerQualityProjectList/page",
|
getDataListURL: "/customerquality/qmsCustomerQualityProjectList/page",
|
||||||
deleteURL: "/customerquality/qmsCustomerQualityProjectList",
|
deleteURL: "/customerquality/qmsCustomerQualityProjectList",
|
||||||
exportURL: '/customerquality/qmsCustomerQualityProjectList/export'
|
exportURL: '/customerquality/qmsCustomerQualityProjectList/export',
|
||||||
|
getProductURL: '/basic/qmsProduct/page',
|
||||||
|
getCustomerURL: '/basic/qmsCustomer/page'
|
||||||
},
|
},
|
||||||
tableData:[],
|
tableData:[],
|
||||||
productData: {},
|
productData: {},
|
||||||
@ -156,6 +158,56 @@ export default {
|
|||||||
productOrUpdateVisible: false,
|
productOrUpdateVisible: false,
|
||||||
qualityProjectListShow:false,
|
qualityProjectListShow:false,
|
||||||
formConfig: [
|
formConfig: [
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('basic.productName'),
|
||||||
|
placeholder: i18n.t('basic.productName'),
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'productId'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('customerquality.customerName'),
|
||||||
|
placeholder: i18n.t('customerquality.customerName'),
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'customerId'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('customerquality.status'),
|
||||||
|
placeholder: i18n.t('customerquality.status'),
|
||||||
|
selectOptions: [
|
||||||
|
{
|
||||||
|
id: '0',
|
||||||
|
name: '待审核'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '1',
|
||||||
|
name: '已完成'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2',
|
||||||
|
name: '交付退回'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '3',
|
||||||
|
name: '审核拒绝'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
param: 'status'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'datePicker',
|
||||||
|
label: i18n.t('time'),
|
||||||
|
dateType: 'datetimerange',
|
||||||
|
format: 'yyyy-MM-dd HH:mm:ss',
|
||||||
|
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
|
||||||
|
rangeSeparator: '-',
|
||||||
|
startPlaceholder: '开始时间',
|
||||||
|
endPlaceholder: '结束时间',
|
||||||
|
param: 'timeSlot',
|
||||||
|
width: 350
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "button",
|
type: "button",
|
||||||
btnName: i18n.t('search'),
|
btnName: i18n.t('search'),
|
||||||
@ -179,7 +231,8 @@ export default {
|
|||||||
// baseConfig
|
// baseConfig
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.getDataList();
|
this.getDataList()
|
||||||
|
this.getDict()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//search-bar点击
|
//search-bar点击
|
||||||
@ -203,6 +256,42 @@ export default {
|
|||||||
this.dataListLoading = false;
|
this.dataListLoading = false;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getDict() {
|
||||||
|
this.$http
|
||||||
|
.get(this.urlOptions.getProductURL, {
|
||||||
|
params: {
|
||||||
|
limit: 999,
|
||||||
|
page: 1,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
// this.dataListLoading = false;
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.formConfig[0].selectOptions = res.data.list.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
name:item.productName
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.$http
|
||||||
|
.get(this.urlOptions.getCustomerURL, {
|
||||||
|
params: {
|
||||||
|
limit: 999,
|
||||||
|
page: 1,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
// this.dataListLoading = false;
|
||||||
|
this.formConfig[1].selectOptions = res.data.list.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
name: item.customerName
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
handleProductCancel() {
|
handleProductCancel() {
|
||||||
this.productOrUpdateVisible = false;
|
this.productOrUpdateVisible = false;
|
||||||
this.productOrEditTitle = "";
|
this.productOrEditTitle = "";
|
||||||
@ -318,6 +407,11 @@ export default {
|
|||||||
case "search":
|
case "search":
|
||||||
// this.listQuery.paramCode = val.paramCode;
|
// this.listQuery.paramCode = val.paramCode;
|
||||||
// console.log(i18n);
|
// console.log(i18n);
|
||||||
|
this.listQuery.status = val.status ? val.status : null
|
||||||
|
this.listQuery.productId = val.productId ? val.productId : null
|
||||||
|
this.listQuery.customerId = val.customerId ? val.customerId : null
|
||||||
|
this.listQuery.startTime = val.timeSlot ? val.timeSlot[0] : null
|
||||||
|
this.listQuery.endTime = val.timeSlot ? val.timeSlot[1] : null
|
||||||
this.listQuery.page = 1
|
this.listQuery.page = 1
|
||||||
this.getDataList()
|
this.getDataList()
|
||||||
break;
|
break;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-02-14 15:02:26
|
* @Date: 2023-02-14 15:02:26
|
||||||
* @LastEditTime: 2023-07-13 09:42:39
|
* @LastEditTime: 2023-07-21 16:35:04
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
|
<el-drawer :title="dataForm.id ? $t('edit') : $t('add')" :visible.sync="drawer" size="50%">
|
||||||
label-width="150px">
|
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" label-width="150px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item prop="partName" :label="$t('gage.partName')">
|
<el-form-item prop="partName" :label="$t('gage.partName')">
|
||||||
@ -126,14 +126,34 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-button @click="getTableData()" type="primary">{{ $t('gage.tabularComputations') }}</el-button>
|
<el-row>
|
||||||
<base-table :table-props="tableProps" :table-data="tableData" />
|
<el-form-item style="float: right;margin-right: 30px;">
|
||||||
|
<el-button @click="handleClose()">{{ $t('cancel') }}</el-button>
|
||||||
|
<el-button type="primary" @click="dataFormSubmit()">{{ $t('confirm') }} </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<div v-if="dataForm.id? true :false" style='margin-left: 30px;'>
|
||||||
|
<el-button @click="getTableData()" type="primary">{{ $t('gage.tabularComputations') }}</el-button>
|
||||||
|
<el-button @click="tabularComputationsAdd()" type="primary">{{ $t('gage.tabularComputationsAdd') }}</el-button>
|
||||||
|
<base-table :span-method="objectSpanMethod" :table-props="tableProps" :table-data="tableData" />
|
||||||
|
<el-table style="width: 100%" :data="getValues" :show-header="false">
|
||||||
|
<el-table-column v-for="(item, index) in getHeaders" :key="index" :prop="item">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<tabularComputations-add ref="tabularComputationsAddOrUpdate" v-if="tabularComputationsAddShow"
|
||||||
|
@refreshDataList="getTableData">
|
||||||
|
</tabularComputations-add>
|
||||||
|
</el-drawer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import debounce from "lodash/debounce";
|
import debounce from "lodash/debounce";
|
||||||
import basicAdd from "@/mixins/basic-add";
|
import basicAdd from "@/mixins/basic-add";
|
||||||
|
import InnerTable from "./innerTable"
|
||||||
|
import tabularComputationsAdd from "./tabularComputations-add"
|
||||||
|
|
||||||
import available from "./available";
|
import available from "./available";
|
||||||
// const tableProps = [
|
// const tableProps = [
|
||||||
// {
|
// {
|
||||||
@ -201,29 +221,14 @@ import available from "./available";
|
|||||||
// // ]
|
// // ]
|
||||||
// // }
|
// // }
|
||||||
// ]
|
// ]
|
||||||
const tableProps = [
|
|
||||||
{
|
|
||||||
prop: 'testUserName',
|
|
||||||
label: '人员',
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
prop: 'orderNumber',
|
|
||||||
label: '序号',
|
|
||||||
align:'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
prop: 'test',
|
|
||||||
label: '零件',
|
|
||||||
align: 'center',
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [basicAdd],
|
mixins: [basicAdd],
|
||||||
|
components: {
|
||||||
|
tabularComputationsAdd,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
tabularComputationsAddShow:false,
|
||||||
urlOptions: {
|
urlOptions: {
|
||||||
submitURL: "/gage/qmsGageGrr",
|
submitURL: "/gage/qmsGageGrr",
|
||||||
infoURL: "/gage/qmsGageGrr/{ id }",
|
infoURL: "/gage/qmsGageGrr/{ id }",
|
||||||
@ -234,10 +239,11 @@ export default {
|
|||||||
getCustomerListURL: '/basic/qmsCustomer/page',
|
getCustomerListURL: '/basic/qmsCustomer/page',
|
||||||
getTabularComputationsURL: '/gage/qmsGageGrrTester/table'
|
getTabularComputationsURL: '/gage/qmsGageGrrTester/table'
|
||||||
},
|
},
|
||||||
|
drawer:false,
|
||||||
trueTableProps: [],
|
trueTableProps: [],
|
||||||
gageList: [],
|
gageList: [],
|
||||||
userList: [],
|
userList: [],
|
||||||
tableProps,
|
tableProps:[],
|
||||||
customerList: [],
|
customerList: [],
|
||||||
tableData:[],
|
tableData:[],
|
||||||
gageTypeList:[],
|
gageTypeList:[],
|
||||||
@ -304,7 +310,30 @@ export default {
|
|||||||
name: '自校报告'
|
name: '自校报告'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
column1Arr:[],
|
||||||
|
column1Index: 0,
|
||||||
|
column2Arr: {},
|
||||||
|
column2Index: 0,
|
||||||
visible: false,
|
visible: false,
|
||||||
|
data: [],
|
||||||
|
headers: [
|
||||||
|
{
|
||||||
|
prop: 'meanRange',
|
||||||
|
label: '极差均值',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'meanDifference',
|
||||||
|
label: '均值差',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'upperControlLimit',
|
||||||
|
label: '控制上限',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'lowerControlLimit',
|
||||||
|
label: '控制下限',
|
||||||
|
},
|
||||||
|
],
|
||||||
// tableProp2,
|
// tableProp2,
|
||||||
chartDataArr: [],
|
chartDataArr: [],
|
||||||
dataForm: {
|
dataForm: {
|
||||||
@ -332,6 +361,14 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
getHeaders() {
|
||||||
|
return this.data.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
|
||||||
|
},
|
||||||
|
getValues() {
|
||||||
|
return this.headers.map(item => {
|
||||||
|
return this.data.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, });
|
||||||
|
});
|
||||||
|
},
|
||||||
dataRule() {
|
dataRule() {
|
||||||
return {
|
return {
|
||||||
publicErrand: [
|
publicErrand: [
|
||||||
@ -373,7 +410,62 @@ export default {
|
|||||||
this.tableProps = []
|
this.tableProps = []
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tabularComputationsAdd() {
|
||||||
|
this.tabularComputationsAddShow = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.tabularComputationsAddOrUpdate.init(this.dataForm.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setrowspans() {
|
||||||
|
// 先给所有的数据都加一个v.rowspan = 1
|
||||||
|
this.tableData.forEach(v => {
|
||||||
|
v.rowspan = 1;
|
||||||
|
v.rangeAverageRowspan = 1;
|
||||||
|
});
|
||||||
|
// 双层循环
|
||||||
|
for (let i = 0; i < this.tableData.length; i++) {
|
||||||
|
// 内层循环,上面已经给所有的行都加了v.rowspan = 1
|
||||||
|
// 这里进行判断
|
||||||
|
// 如果当前行的id和下一行的id相等
|
||||||
|
// 就把当前v.rowspan + 1
|
||||||
|
// 下一行的v.rowspan - 1
|
||||||
|
for (let j = i + 1; j < this.tableData.length; j++) {
|
||||||
|
//此处可根据相同字段进行合并,此处是根据的id
|
||||||
|
if (this.tableData[i].finalAverage === this.tableData[j].finalAverage) {
|
||||||
|
this.tableData[i].rowspan++;
|
||||||
|
this.tableData[j].rowspan--;
|
||||||
|
}
|
||||||
|
if (this.tableData[i].rangeAverage === this.tableData[j].rangeAverage) {
|
||||||
|
this.tableData[i].rangeAverageRowspan++;
|
||||||
|
this.tableData[j].rangeAverageRowspan--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 这里跳过已经重复的数据
|
||||||
|
i = i + this.tableData[i].rowspan - 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||||
|
// console.log(column)
|
||||||
|
if (columnIndex === 0) {
|
||||||
|
return {
|
||||||
|
rowspan: row.rowspan,
|
||||||
|
colspan: 1
|
||||||
|
};
|
||||||
|
} else if (column.label === '最终均值') {
|
||||||
|
return {
|
||||||
|
rowspan: row.rowspan,
|
||||||
|
colspan: 1
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (column.label === '极差均值') {
|
||||||
|
return {
|
||||||
|
rowspan: row.rangeAverageRowspan,
|
||||||
|
colspan: 1
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
getTableData() {
|
getTableData() {
|
||||||
|
this.tableData = []
|
||||||
this.$http.get(this.urlOptions.getTabularComputationsURL, {
|
this.$http.get(this.urlOptions.getTabularComputationsURL, {
|
||||||
params: {
|
params: {
|
||||||
gageGrrId:this.dataForm.id
|
gageGrrId:this.dataForm.id
|
||||||
@ -407,42 +499,117 @@ export default {
|
|||||||
// // ]
|
// // ]
|
||||||
// // },
|
// // },
|
||||||
// ]
|
// ]
|
||||||
for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++){
|
let propsData = [
|
||||||
// console.log(result.data.qmsGageGrrTesterDTOList[i].orderMapList)
|
{
|
||||||
Object.keys(result.data.qmsGageGrrTesterDTOList[i].partMapList).forEach((item) => {
|
prop: 'testUserName',
|
||||||
this.tableProps[2].children.push({
|
label: '人员',
|
||||||
|
align: 'center',
|
||||||
|
subcomponent: InnerTable
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'orderNumber',
|
||||||
|
label: '序号',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'test',
|
||||||
|
label: '零件',
|
||||||
|
align: 'center',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
prop: 'orderAverage',
|
||||||
|
label: '序号均值',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'finalAverage',
|
||||||
|
label: '最终均值',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'rangeAverage',
|
||||||
|
label: '极差均值',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'partAverageMean',
|
||||||
|
label: 'Rp零件均值极差',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
Object.keys(result.data.finalPartMapList).forEach((item) => {
|
||||||
|
propsData[2].children.push({
|
||||||
label: String(item),
|
label: String(item),
|
||||||
prop: 'measuredData' + String(item),
|
prop: 'measuredData' + String(item),
|
||||||
align: 'center'
|
align: 'center'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
this.tableProps = propsData
|
||||||
|
let orderAverageArr = []
|
||||||
|
let rangeArr = []
|
||||||
|
for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++){
|
||||||
|
// console.log(result.data.qmsGageGrrTesterDTOLis[i])
|
||||||
|
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderAverage).forEach((item) => {
|
||||||
|
orderAverageArr.push(result.data.qmsGageGrrTesterDTOList[i].orderAverage[item])
|
||||||
|
})
|
||||||
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => {
|
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => {
|
||||||
|
console.log(item)
|
||||||
let measuredDataProp = 'measuredData' + String(item)
|
let measuredDataProp = 'measuredData' + String(item)
|
||||||
this.tableData.push({
|
arr.push({
|
||||||
testUserName: result.data.qmsGageGrrTesterDTOList[i].testUserName,
|
testUserName: result.data.qmsGageGrrTesterDTOList[i].testUserName,
|
||||||
orderNumber: item,
|
orderNumber: item,
|
||||||
|
finalAverage: '',
|
||||||
|
gageGrrId: result.data.qmsGageGrrTesterDTOList[i].gageGrrId,
|
||||||
|
partAverageMean: '',
|
||||||
[measuredDataProp]: '',
|
[measuredDataProp]: '',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => {
|
Object.keys(result.data.qmsGageGrrTesterDTOList[i].range).forEach((item) => {
|
||||||
result.data.qmsGageGrrTesterDTOList[i].orderMapList[item].forEach((ele, index, arr) => {
|
rangeArr.push(result.data.qmsGageGrrTesterDTOList[i].range[item])
|
||||||
let measuredData = 'measuredData' + String(index + 1)
|
|
||||||
console.log(item)
|
|
||||||
// console.log(arr)
|
|
||||||
// console.log(ele)
|
|
||||||
// console.log(this.tableProps[2].children.prop);
|
|
||||||
// console.log(this.tableProps[2].children[item - 1].prop)
|
|
||||||
console.log(index)
|
|
||||||
console.log(measuredData)
|
|
||||||
console.log(ele)
|
|
||||||
// console.log(this.tableData[index + 1])
|
|
||||||
this.tableData[item-1][measuredData] = ele
|
|
||||||
// console.log(this.tableData[item - 1])
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
this.tableData = arr
|
||||||
|
// console.log(Object.keys(result.data.finalPartMapList))
|
||||||
|
Object.keys(result.data.finalPartMapList).forEach((item) => {
|
||||||
|
// console.log(item)
|
||||||
|
let measuredData = 'measuredData' + String(item)
|
||||||
|
console.log(result.data.finalPartMapList[item])
|
||||||
|
result.data.finalPartMapList[item].forEach((ele, index) => {
|
||||||
|
this.tableData[index][measuredData] = ele
|
||||||
|
})
|
||||||
|
})
|
||||||
|
orderAverageArr.forEach((ele, index) => {
|
||||||
|
this.tableData[index]['orderAverage'] = ele
|
||||||
|
})
|
||||||
|
this.tableData.forEach((ele, index) => {
|
||||||
|
ele.partAverageMean = result.data.partAverageMean
|
||||||
|
result.data.qmsGageGrrTesterDTOList.forEach((item, i) => {
|
||||||
|
// console.log(item.finalAverage)
|
||||||
|
if (this.tableData[index].testUserName === result.data.qmsGageGrrTesterDTOList[i].testUserName) {
|
||||||
|
ele.finalAverage = item.finalAverage
|
||||||
|
ele.rangeAverage = item.rangeAverage
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// rangeArr.forEach((ele, index) => {
|
||||||
|
// this.data.push({
|
||||||
|
// range:ele
|
||||||
|
// })
|
||||||
|
// })
|
||||||
|
// console.log()
|
||||||
|
let dataDetail = []
|
||||||
|
dataDetail.push({
|
||||||
|
meanRange: result.data.meanRange,
|
||||||
|
lowerControlLimit: result.data.lowerControlLimit,
|
||||||
|
meanDifference: result.data.meanDifference,
|
||||||
|
upperControlLimit: result.data.upperControlLimit,
|
||||||
|
})
|
||||||
|
this.data = dataDetail
|
||||||
console.log(this.tableProps)
|
console.log(this.tableProps)
|
||||||
console.log(this.tableData)
|
console.log(this.tableData)
|
||||||
|
this.setrowspans()
|
||||||
// console.log(this.table)
|
// console.log(this.table)
|
||||||
// console.log(moreData,'1111')
|
// console.log(moreData,'1111')
|
||||||
// for (let i = 0; i < 30; i++) {
|
// for (let i = 0; i < 30; i++) {
|
||||||
@ -540,7 +707,7 @@ export default {
|
|||||||
this.dataForm.id = id || ""
|
this.dataForm.id = id || ""
|
||||||
// console.log(11111)
|
// console.log(11111)
|
||||||
// this.dataForm.dictTypeId = dictTypeId || "";
|
// this.dataForm.dictTypeId = dictTypeId || "";
|
||||||
this.visible = true
|
this.drawer = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs["dataForm"].resetFields();
|
this.$refs["dataForm"].resetFields();
|
||||||
if (this.dataForm.id) {
|
if (this.dataForm.id) {
|
||||||
@ -571,16 +738,16 @@ export default {
|
|||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
this.$http
|
// this.$http
|
||||||
.get(this.urlOptions.getUserList, this.listQuery)
|
// .get(this.urlOptions.getUserList, this.listQuery)
|
||||||
.then(({ data: res }) => {
|
// .then(({ data: res }) => {
|
||||||
if (res.code === 0) {
|
// if (res.code === 0) {
|
||||||
console.log(res.data);
|
// console.log(res.data);
|
||||||
this.userList = res.data.list
|
// this.userList = res.data.list
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
.catch(() => {
|
// .catch(() => {
|
||||||
})
|
// })
|
||||||
},
|
},
|
||||||
// getCode() {
|
// getCode() {
|
||||||
// this.$http.post(this.urlOptions.getCodeURL)
|
// this.$http.post(this.urlOptions.getCodeURL)
|
||||||
@ -608,6 +775,34 @@ export default {
|
|||||||
})
|
})
|
||||||
.catch(() => { })
|
.catch(() => { })
|
||||||
},
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.drawer = false
|
||||||
|
this.$refs.dataForm.resetFields()
|
||||||
|
},
|
||||||
|
dataFormSubmit() {
|
||||||
|
this.$refs["dataForm"].validate((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.$http[!this.dataForm.id ? "post" : "put"](this.urlOptions.submitURL, this.dataForm)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t("prompt.success"),
|
||||||
|
type: "success",
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.drawer = false
|
||||||
|
this.$refs.dataForm.resetFields()
|
||||||
|
this.$emit("refreshDataList")
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
});
|
||||||
|
},
|
||||||
// 表单提交
|
// 表单提交
|
||||||
dataFormSubmitHandle: debounce(
|
dataFormSubmitHandle: debounce(
|
||||||
function () {
|
function () {
|
||||||
|
113
src/views/modules/gage/components/innerTable.vue
Normal file
113
src/views/modules/gage/components/innerTable.vue
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: zhp
|
||||||
|
* @Date: 2023-04-18 09:19:02
|
||||||
|
* @LastEditTime: 2023-07-20 16:34:04
|
||||||
|
* @LastEditors: zhp
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-popover placement="right" width="400" trigger="click">
|
||||||
|
<base-table id="palletTable" :table-props="tableProps" ref="palletTable1" :table-data="tableData">
|
||||||
|
</base-table>
|
||||||
|
<!-- <i slot="reference" class="el-icon-plus" @click="showInnerTable(injectData.id)" /> -->
|
||||||
|
<span slot="reference" @click="showInnerTable(injectData.id)">{{ injectData.testUserName}} </span>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import i18n from "@/i18n"
|
||||||
|
import { timeFormatter } from '@/filters'
|
||||||
|
|
||||||
|
const tableProps = [
|
||||||
|
{
|
||||||
|
prop: "partAverage",
|
||||||
|
label: '零件均值',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: "range",
|
||||||
|
label:'零件极差',
|
||||||
|
// filter: timeFormatter
|
||||||
|
},
|
||||||
|
];
|
||||||
|
export default {
|
||||||
|
name: 'InnerTable',
|
||||||
|
props: {
|
||||||
|
injectData: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
|
itemProp: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tableProps,
|
||||||
|
list: this.injectData,
|
||||||
|
tableData: [],
|
||||||
|
urlOptions: {
|
||||||
|
getTabularComputationsURL: '/gage/qmsGageGrrTester/table'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showInnerTable() {
|
||||||
|
this.tableData = []
|
||||||
|
this.$http.get(this.urlOptions.getTabularComputationsURL, {
|
||||||
|
params: {
|
||||||
|
gageGrrId: this.injectData.gageGrrId
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(({ data: result }) => {
|
||||||
|
if (result.code === 0) {
|
||||||
|
console.log(result)
|
||||||
|
let partAverageArr = []
|
||||||
|
let rangeArr = []
|
||||||
|
// let aa = []
|
||||||
|
// let moreData = [
|
||||||
|
// // {
|
||||||
|
// // testUserName: null,
|
||||||
|
// // data: [
|
||||||
|
// // {
|
||||||
|
// // orderNumber: result.data.qmsGageGrrTesterDTOList[i].list[j].orderNumber,
|
||||||
|
// // data: aa
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // equipmentName: '机器人投入数',
|
||||||
|
// // data: aa
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // equipmentName: '良品总投入数',
|
||||||
|
// // data: aa
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // equipmentName: '工序损耗',
|
||||||
|
// // data: aa
|
||||||
|
// // }
|
||||||
|
// // ]
|
||||||
|
// // },
|
||||||
|
// ]
|
||||||
|
|
||||||
|
for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++) {
|
||||||
|
if (this.injectData.testUserName === result.data.qmsGageGrrTesterDTOList[i].testUserName) {
|
||||||
|
Object.keys(result.data.qmsGageGrrTesterDTOList[i].partAverage).forEach((item) => {
|
||||||
|
partAverageArr.push({
|
||||||
|
partAverage:result.data.qmsGageGrrTesterDTOList[i].partAverage[item]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Object.keys(result.data.qmsGageGrrTesterDTOList[i].range).forEach((item) => {
|
||||||
|
rangeArr.push(result.data.qmsGageGrrTesterDTOList[i].range[item])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.tableData = partAverageArr
|
||||||
|
rangeArr.forEach((item,index) => {
|
||||||
|
this.tableData[index]['range'] = item
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
291
src/views/modules/gage/components/tabularComputations-add.vue
Normal file
291
src/views/modules/gage/components/tabularComputations-add.vue
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: zhp
|
||||||
|
* @Date: 2023-02-14 15:02:26
|
||||||
|
* @LastEditTime: 2023-07-21 17:02:05
|
||||||
|
* @LastEditors: zhp
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-drawer :append-to-body="true" title="" :visible.sync="drawer" size="50%">
|
||||||
|
<el-form :model="form" ref="dataForm" :rules="dataRule" label-width="80px">
|
||||||
|
<!--省略,其他表单项-->
|
||||||
|
<el-row class="row" v-for="(item,index) in form.list" :key="index">
|
||||||
|
<!--设置动态标签,只在部门第一行显示-->
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="检测人员" :prop="'list.' + index +'.gageGrrTesterId'" :rules="{
|
||||||
|
required: true, message: '请选择部门', trigger: 'blur'
|
||||||
|
}">
|
||||||
|
<el-select class="input" v-model="item.gageGrrTesterId">
|
||||||
|
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="序号" :prop="'list.' + index +'.orderNumber'" :rules="{
|
||||||
|
required: true, message: '请输入人数', trigger: 'blur'
|
||||||
|
}">
|
||||||
|
<el-input @change="getOrderNumber" class="input" v-model="item.orderNumber" placeholder="人数"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="零件" :prop="'list.' + index +'.part'">
|
||||||
|
<el-input @change="getPart" class="input" v-model="item.part" placeholder="备注"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="测量值" :prop="'list.' + index +'.measuredData'">
|
||||||
|
<el-input class="input" v-model="item.bz" placeholder="备注"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1">
|
||||||
|
<div> <i class="el-icon-circle-plus" @click="addDept"></i></div>
|
||||||
|
<div>
|
||||||
|
<i v-if="form.list.length>1" class="el-icon-remove-outline" @click="delDept(index)"></i>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item style="float: right;margin-right: 30px;">
|
||||||
|
<el-button @click="handleClose()">{{ $t('cancel') }}</el-button>
|
||||||
|
<el-button type="primary" @click="dataFormSubmit()">{{ $t('confirm') }} </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import debounce from "lodash/debounce";
|
||||||
|
import basicAdd from "@/mixins/basic-add";
|
||||||
|
// import InnerTable from "./innerTable"
|
||||||
|
// import available from "./available";
|
||||||
|
// const tableProps = [
|
||||||
|
// {
|
||||||
|
// prop: 'equipmentName',
|
||||||
|
// label: '设备名称'
|
||||||
|
// },
|
||||||
|
// // {
|
||||||
|
// // prop: 'lineA',
|
||||||
|
// // label: '有效时间(h)',
|
||||||
|
// // children: [
|
||||||
|
// // {
|
||||||
|
// // prop: 'workTime',
|
||||||
|
// // label: '工作时长'
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'workTimeRate',
|
||||||
|
// // label: '工作时长比率'
|
||||||
|
// // }
|
||||||
|
// // ]
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'lineB',
|
||||||
|
// // label: '关机时间(h)',
|
||||||
|
// // children: [
|
||||||
|
// // {
|
||||||
|
// // prop: 'downTime',
|
||||||
|
// // label: '停机时长'
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'downTimeRate',
|
||||||
|
// // label: '停机时长比率'
|
||||||
|
// // }
|
||||||
|
// // ]
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'lineC',
|
||||||
|
// // label: '中断损失',
|
||||||
|
// // children: [
|
||||||
|
// // {
|
||||||
|
// // prop: 'faultTime',
|
||||||
|
// // label: '故障时长'
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'faultTimeRate',
|
||||||
|
// // label: '故障时长比率'
|
||||||
|
// // }
|
||||||
|
// // ]
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'lineD',
|
||||||
|
// // label: '速度损失',
|
||||||
|
// // children: [
|
||||||
|
// // {
|
||||||
|
// // prop: 'actualProcessingSpeed',
|
||||||
|
// // label: '实际加工速度'
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'theoreticalProcessingSpeed',
|
||||||
|
// // label: '理论加工速度'
|
||||||
|
// // },
|
||||||
|
// // {
|
||||||
|
// // prop: 'speedActuationRate',
|
||||||
|
// // label: '速度开动率'
|
||||||
|
// // }
|
||||||
|
// // ]
|
||||||
|
// // }
|
||||||
|
// ]
|
||||||
|
export default {
|
||||||
|
mixins: [basicAdd],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
urlOptions: {
|
||||||
|
submitURL: "/gage/qmsGageGrrTester",
|
||||||
|
// infoURL: "/gage/qmsGageGrr/{ id }",
|
||||||
|
// dictionaryDetailList: '/mutual/qmsDataDictionaryDetail/page',
|
||||||
|
getUserList: '/sys/user/page',
|
||||||
|
// getGageTypeList: '/gage/qmsGageType/page',
|
||||||
|
// getGageList: '/gage/qmsGage/page',
|
||||||
|
// getCustomerListURL: '/basic/qmsCustomer/page',
|
||||||
|
// getTabularComputationsURL: '/gage/qmsGageGrrTester/table'
|
||||||
|
},
|
||||||
|
userList:[],
|
||||||
|
drawer: false,
|
||||||
|
form: {
|
||||||
|
gageGrrId:null,
|
||||||
|
list: [
|
||||||
|
{ gageGrrTesterId: null, orderNumber: null, part: null, measuredData: null },
|
||||||
|
{ gageGrrTesterId: null, orderNumber: null, part: null, measuredData: null }
|
||||||
|
],//默认展示一行部门数据
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
dataRule() {
|
||||||
|
return {
|
||||||
|
publicErrand: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t("validate.required"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
gageId: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t("validate.required"),
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
measurementNumber: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t("validate.required"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
partNumber: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t("validate.required"),
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(id, ) {
|
||||||
|
this.form.gageGrrId = id || ""
|
||||||
|
// console.log(11111)
|
||||||
|
// this.dataForm.dictTypeId = dictTypeId || "";
|
||||||
|
this.drawer = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs["dataForm"].resetFields()
|
||||||
|
// if (this.dataForm.id) {
|
||||||
|
// // this.getInfo()
|
||||||
|
// } else {
|
||||||
|
// // this.getCode()
|
||||||
|
// }
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getPart(val) {
|
||||||
|
let arr = []
|
||||||
|
this.form.list.forEach(ele => {
|
||||||
|
arr.push(item.orderNumber)
|
||||||
|
})
|
||||||
|
const uniqueArr = [...new Set(arr)]
|
||||||
|
sortArr = uniqueArr.sort()
|
||||||
|
const maxValue = sortArr[sortArr.length - 1]
|
||||||
|
this.$message({
|
||||||
|
message: '当前零件最大值为' + maxValue + '请保持其他测量人员零件最大值一致',
|
||||||
|
type: 'warning'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getOrderNumber(val) {
|
||||||
|
let arr = []
|
||||||
|
this.form.list.forEach(ele => {
|
||||||
|
arr.push(item.orderNumber)
|
||||||
|
})
|
||||||
|
const uniqueArr = [...new Set(arr)]
|
||||||
|
sortArr = uniqueArr.sort()
|
||||||
|
const maxValue = sortArr[sortArr.length - 1]
|
||||||
|
this.$message({
|
||||||
|
message: '当前序号最大值为'+maxValue+'请保持其他测量人员序号最大值一致',
|
||||||
|
type: 'warning'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addDept() {
|
||||||
|
this.form.list.push({ bm: "", bmrs: "", bz: "" });
|
||||||
|
},
|
||||||
|
delDept(index) {
|
||||||
|
this.form.list.splice(index, 1);
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
this.$http
|
||||||
|
.get(this.urlOptions.getUserList, this.listQuery)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
console.log(res.data);
|
||||||
|
this.userList = res.data.list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// getCode() {
|
||||||
|
// this.$http.post(this.urlOptions.getCodeURL)
|
||||||
|
// .then(({ data: res }) => {
|
||||||
|
// if (res.code === 0) {
|
||||||
|
// console.log(res);
|
||||||
|
// this.dataForm.customSamplingCode = res.data
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .catch(() => {
|
||||||
|
// });
|
||||||
|
// },
|
||||||
|
// 获取信息
|
||||||
|
handleClose() {
|
||||||
|
this.drawer = false
|
||||||
|
this.$refs.dataForm.resetFields()
|
||||||
|
},
|
||||||
|
dataFormSubmit() {
|
||||||
|
console.log(this.form)
|
||||||
|
this.$refs["dataForm"].validate((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.$http.post(this.urlOptions.submitURL, this.form)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
return this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t("prompt.success"),
|
||||||
|
type: "success",
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.drawer = false
|
||||||
|
this.$refs.dataForm.resetFields()
|
||||||
|
this.$emit("refreshDataList")
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 表单提交
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-01-11 09:24:58
|
* @Date: 2023-01-11 09:24:58
|
||||||
* @LastEditTime: 2023-07-13 09:31:24
|
* @LastEditTime: 2023-07-21 15:39:23
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -20,11 +20,11 @@
|
|||||||
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
|
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
|
||||||
@pagination="getDataList" />
|
@pagination="getDataList" />
|
||||||
<!-- 弹窗, 新增 / 修改 -->
|
<!-- 弹窗, 新增 / 修改 -->
|
||||||
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
|
<!-- <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
|
||||||
@confirm="handleConfirm" :before-close="handleCancel">
|
@confirm="handleConfirm" :before-close="handleCancel">
|
||||||
<gapeGrs-add ref="addOrUpdate" @refreshDataList="successSubmit">
|
<gapeGrs-add ref="addOrUpdate" @refreshDataList="successSubmit">
|
||||||
</gapeGrs-add>
|
</gapeGrs-add>
|
||||||
</base-dialog>
|
</base-dialog> -->
|
||||||
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
|
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
|
||||||
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
|
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
|
||||||
<gage-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></gage-search>
|
<gage-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></gage-search>
|
||||||
@ -42,6 +42,8 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</base-dialog>
|
</base-dialog>
|
||||||
<report-show ref="reportOrUpdate" v-if="reportShow"></report-show>
|
<report-show ref="reportOrUpdate" v-if="reportShow"></report-show>
|
||||||
|
<gapeGrs-add ref="gapeGrsAddOrUpdate" v-if="gapeGrsAddShow" @refreshDataList="getDataList">
|
||||||
|
</gapeGrs-add>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
@ -52,6 +54,7 @@ import gapeGrsAdd from "./components/gageGrs-add"
|
|||||||
import reportShow from "./components/report-show"
|
import reportShow from "./components/report-show"
|
||||||
import gageSearch from "./components/gageSearch"
|
import gageSearch from "./components/gageSearch"
|
||||||
import basicSearch from "@/mixins/basic-search"
|
import basicSearch from "@/mixins/basic-search"
|
||||||
|
|
||||||
import { timeFormatter } from '@/filters'
|
import { timeFormatter } from '@/filters'
|
||||||
import i18n from "@/i18n"
|
import i18n from "@/i18n"
|
||||||
const tableProps = [
|
const tableProps = [
|
||||||
@ -160,6 +163,7 @@ export default {
|
|||||||
deleteURL: "/gage/qmsGageGrr",
|
deleteURL: "/gage/qmsGageGrr",
|
||||||
exportUrl: '/gage/qmsGageGrr/export'
|
exportUrl: '/gage/qmsGageGrr/export'
|
||||||
},
|
},
|
||||||
|
gapeGrsAddShow:false,
|
||||||
grrReportData:{},
|
grrReportData:{},
|
||||||
dialogTableVisible:false,
|
dialogTableVisible:false,
|
||||||
tableProps,
|
tableProps,
|
||||||
@ -295,11 +299,11 @@ export default {
|
|||||||
})
|
})
|
||||||
.catch(() => { });
|
.catch(() => { });
|
||||||
} else if (val.type === 'edit') {
|
} else if (val.type === 'edit') {
|
||||||
this.addOrUpdateVisible = true
|
this.gapeGrsAddShow = true
|
||||||
this.addOrEditTitle = this.$t('edit')
|
// this.addOrEditTitle = this.$t('edit')
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.addOrUpdate.init(val.data.id);
|
this.$refs.gapeGrsAddOrUpdate.init(val.data.id);
|
||||||
});
|
})
|
||||||
} else if (val.type === 'parameter') {
|
} else if (val.type === 'parameter') {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: 'gage-qmsGageTypeDifferenceParameter',
|
name: 'gage-qmsGageTypeDifferenceParameter',
|
||||||
@ -332,9 +336,11 @@ export default {
|
|||||||
this.exportHandle();
|
this.exportHandle();
|
||||||
break;
|
break;
|
||||||
case "add":
|
case "add":
|
||||||
this.addOrEditTitle = '新增'
|
this.gapeGrsAddShow = true
|
||||||
this.addOrUpdateVisible = true;
|
// this.addOrEditTitle = this.$t('edit')
|
||||||
this.addOrUpdateHandle()
|
this.$nextTick(() => {
|
||||||
|
this.$refs.gapeGrsAddOrUpdate.init()
|
||||||
|
})
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log(val)
|
console.log(val)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-04-17 14:23:17
|
* @Date: 2023-04-17 14:23:17
|
||||||
* @LastEditTime: 2023-07-17 14:33:44
|
* @LastEditTime: 2023-07-21 14:21:04
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -9,9 +9,9 @@
|
|||||||
<el-card shadow="never" class="aui-card--fill">
|
<el-card shadow="never" class="aui-card--fill">
|
||||||
<div class="mod-sys__user">
|
<div class="mod-sys__user">
|
||||||
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
|
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
|
||||||
<el-badge :value="5" class="item">
|
<!-- <el-badge :value="5" class="item">
|
||||||
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
|
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
|
||||||
</el-badge>
|
</el-badge> -->
|
||||||
</SearchBar>
|
</SearchBar>
|
||||||
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
|
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
|
||||||
:limit="listQuery.limit" :table-data="tableData">
|
:limit="listQuery.limit" :table-data="tableData">
|
||||||
@ -27,32 +27,14 @@
|
|||||||
</qualityChange-add>
|
</qualityChange-add>
|
||||||
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
|
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
|
||||||
</base-dialog>
|
</base-dialog>
|
||||||
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
|
|
||||||
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
|
|
||||||
<qualityChange-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
|
|
||||||
</qualityChange-search>
|
|
||||||
<el-row slot="footer" type="flex" justify="end">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
|
|
||||||
{{ $t("close") }}
|
|
||||||
</el-button>
|
|
||||||
<el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{
|
|
||||||
$t("reset")
|
|
||||||
}}</el-button>
|
|
||||||
<el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm">
|
|
||||||
{{ $t("search") }}
|
|
||||||
</el-button>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</base-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import basicPage from "@/mixins/basic-page"
|
import basicPage from "@/mixins/basic-page"
|
||||||
import basicSearch from "@/mixins/basic-search"
|
// import basicSearch from "@/mixins/basic-search"
|
||||||
import qualityChangeSearch from "./components/qualityChangeSearch.vue"
|
// import qualityChangeSearch from "./components/qualityChangeSearch.vue"
|
||||||
import qualityChangeAdd from "./components/qualityChange-add.vue"
|
import qualityChangeAdd from "./components/qualityChange-add.vue"
|
||||||
import InnerTable from "./components/innerTable"
|
import InnerTable from "./components/innerTable"
|
||||||
import { timeFormatter, handleProcess, handleProductType } from '@/filters'
|
import { timeFormatter, handleProcess, handleProductType } from '@/filters'
|
||||||
@ -127,7 +109,7 @@ const tableBtn = [
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
export default {
|
export default {
|
||||||
mixins: [basicPage, basicSearch],
|
mixins: [basicPage],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
urlOptions: {
|
urlOptions: {
|
||||||
@ -156,15 +138,85 @@ export default {
|
|||||||
addOrUpdateVisible: false,
|
addOrUpdateVisible: false,
|
||||||
productOrUpdateVisible: false,
|
productOrUpdateVisible: false,
|
||||||
formConfig: [
|
formConfig: [
|
||||||
// {
|
{
|
||||||
// type: "",
|
type: 'select',
|
||||||
// label: i18n.t("params.paramCode"),
|
label: i18n.t('researchquality.changeSource'),
|
||||||
// placeholder: i18n.t("params.paramCode"),
|
placeholder: i18n.t('researchquality.changeSource'),
|
||||||
// param: "paramCode",
|
selectOptions: [
|
||||||
// },
|
{
|
||||||
// {
|
id: '0',
|
||||||
// type: "separate",
|
name: '工程变更'
|
||||||
// },
|
},
|
||||||
|
{
|
||||||
|
id: '1',
|
||||||
|
name: '设计变更'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2',
|
||||||
|
name: 'CCB'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
param: 'changeSource'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('researchquality.phase'),
|
||||||
|
placeholder: i18n.t('researchquality.phase'),
|
||||||
|
selectOptions: [
|
||||||
|
{
|
||||||
|
id: '0',
|
||||||
|
name: '设计'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '1',
|
||||||
|
name: '计划'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2',
|
||||||
|
name: '验证'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '3',
|
||||||
|
name: '发布'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
param: 'phase'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('researchquality.qualityChangeStatus'),
|
||||||
|
placeholder: i18n.t('researchquality.qualityChangeStatus'),
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'status'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: i18n.t('researchquality.temporaryChange'),
|
||||||
|
placeholder: i18n.t('researchquality.temporaryChange'),
|
||||||
|
selectOptions: [
|
||||||
|
{
|
||||||
|
id: '0',
|
||||||
|
name: '是'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '1',
|
||||||
|
name: '否'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
param: 'temporaryChange'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'datePicker',
|
||||||
|
label: i18n.t('time'),
|
||||||
|
dateType: 'datetimerange',
|
||||||
|
format: 'yyyy-MM-dd HH:mm:ss',
|
||||||
|
valueFormat: 'yyyy-MM-ddTHH:mm:ss',
|
||||||
|
rangeSeparator: '-',
|
||||||
|
startPlaceholder: '开始时间',
|
||||||
|
endPlaceholder: '结束时间',
|
||||||
|
param: 'timeSlot',
|
||||||
|
width: 350
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "button",
|
type: "button",
|
||||||
btnName: i18n.t('search'),
|
btnName: i18n.t('search'),
|
||||||
@ -190,7 +242,7 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
qualityChangeSearch,
|
// qualityChangeSearch,
|
||||||
// supplierProduct,
|
// supplierProduct,
|
||||||
qualityChangeAdd
|
qualityChangeAdd
|
||||||
},
|
},
|
||||||
@ -279,10 +331,11 @@ export default {
|
|||||||
switch (val.btnName) {
|
switch (val.btnName) {
|
||||||
case "search":
|
case "search":
|
||||||
// this.listQuery.paramCode = val.paramCode;
|
// this.listQuery.paramCode = val.paramCode;
|
||||||
this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined
|
this.listQuery.changeSource = val.changeSource ? val.changeSource : undefined
|
||||||
this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined
|
this.listQuery.qualityChangeStatus = val.qualityChangeStatus ? val.qualityChangeStatus : undefined
|
||||||
this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined
|
this.listQuery.qualityChangeStatus = val.qualityChangeStatus ? val.qualityChangeStatus : undefined
|
||||||
this.listQuery.ment = this.ment ? this.ment : undefined
|
this.listQuery.startTime = val.timeSlot ? val.timeSlot[0] : null
|
||||||
|
this.listQuery.endTime = val.timeSlot ? val.timeSlot[1] : null
|
||||||
// console.log(i18n);
|
// console.log(i18n);
|
||||||
this.listQuery.page = 1;
|
this.listQuery.page = 1;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
|
Loading…
Reference in New Issue
Block a user