This commit is contained in:
helloDy 2023-07-21 16:46:28 +08:00
commit bcdb04059b
105 changed files with 5035 additions and 1988 deletions

View File

@ -15,7 +15,7 @@
"axios": "^0.19.2", "axios": "^0.19.2",
"babel-eslint": "^8.0.1", "babel-eslint": "^8.0.1",
"babel-plugin-component": "^1.1.1", "babel-plugin-component": "^1.1.1",
"code-brick-zj": "0.0.7", "code-brick-zj": "1.0.2",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"echarts": "^5.4.2", "echarts": "^5.4.2",
"element-theme": "^2.0.1", "element-theme": "^2.0.1",

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: DY * @LastEditors: DY
* @LastEditTime: 2023-07-17 14:23:36 * @LastEditTime: 2023-07-21 16:45:57
* @Description: * @Description:
--> -->
<!DOCTYPE html> <!DOCTYPE html>

View File

@ -599,13 +599,19 @@ img {
display: none; display: none;
} }
& > .el-tabs__item { & > .el-tabs__item {
height: $content--tabs-header-height;
border: 0; border: 0;
padding: 0 10px; padding: 0 10px;
color: rgba(89, 89, 89, 1); margin: 6px 5px 6px 0px;
height: 24px;
font-size: 12px;
line-height: 24px;
border-radius: 5px;
background-color: rgba(239, 239, 239, 1);
&:focus, &:focus,
&:hover, &:hover,
&.is-active { &.is-active {
color: rgba(255, 255, 255, 1);
background-color: rgba(62, 142, 247, 1);
&:after { &:after {
display: block; display: block;
} }
@ -630,6 +636,7 @@ img {
line-height: 24px; line-height: 24px;
border-radius: 5px; border-radius: 5px;
background-color: rgba(239, 239, 239, 1); background-color: rgba(239, 239, 239, 1);
&:hover,
&.is-active { &.is-active {
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
background-color: rgba(62, 142, 247, 1); background-color: rgba(62, 142, 247, 1);

View File

@ -18,6 +18,10 @@ const table = {
1: '需要审批', 1: '需要审批',
0: '不需要审批', 0: '不需要审批',
}, },
gradeFinish: {
1: '已打分',
0: '未打分',
},
step: { step: {
0: 'D0', 0: 'D0',
1: 'D1', 1: 'D1',

View File

@ -0,0 +1,29 @@
/*
* @Date: 2020-12-29 16:49:28
* @LastEditors: zhp
* @LastEditTime: 2023-07-17 09:36:52
* @FilePath: \basic-admin\src\filters\DataDict\index.js
* @Description: 部分常量的数据字典定义
*/
import i18n from "@/i18n"
const table = {
upload: {
0: '未上传',
1:' 已上传',
},
VerifyType: {
0: i18n.t('gage.insideVerify'),
1: i18n.t('gage.outsideVerify')
},
judgmentResult: {
0: '未判定 ',
1: '合格',
2: '不合格'
},
}
export default function (dictTable) {
return function (val) {
return table?.[dictTable]?.[val]
}
}

View File

@ -1,7 +1,7 @@
/* /*
* @Date: 2020-12-14 09:07:03 * @Date: 2020-12-14 09:07:03
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-04-18 15:14:26 * @LastEditTime: 2023-07-17 14:34:42
* @FilePath: \basic-admin\src\filters\index.js * @FilePath: \basic-admin\src\filters\index.js
* @Description: 过滤器定义多语言过滤器修改 * @Description: 过滤器定义多语言过滤器修改
*/ */
@ -146,6 +146,22 @@ export function handleLimit(string) {
} }
} }
export function handleProductType(Array) {
let arr = []
Array.forEach(ele => {
arr.push(ele.productTypeName)
})
return arr.join(',')
}
export function handleProcess(Array) {
let arr = []
Array.forEach(ele => {
arr.push(ele.processName)
})
return arr.join(',')
}
export function getSimpleText(html) { export function getSimpleText(html) {
var re1 = new RegExp('<.+?>', 'g') var re1 = new RegExp('<.+?>', 'g')
var msg = html.replace(re1, '') var msg = html.replace(re1, '')

View File

@ -0,0 +1,46 @@
/*
* @Date: 2020-12-29 16:49:28
* @LastEditors: zhp
* @LastEditTime: 2023-07-18 14:08:41
* @FilePath: \basic-admin\src\filters\DataDict\index.js
* @Description: 部分常量的数据字典定义
*/
import i18n from "@/i18n"
const table = {
monitor: {
0: '否',
1:'是',
},
characteristicsType: {
0: '计量',
1:'计数',
},
VerifyType: {
0: i18n.t('gage.insideVerify'),
1: i18n.t('gage.outsideVerify')
},
inspectionType: {
0: '监控',
1:'电芯来料检验',
2: 'IQC抽检',
3: 'IQC抽检2',
4: '原料抽检',
5: '进货外观检验',
6: '库内原料检验',
7: '来料检验',
8: '胶片',
9: '抽检',
10: '巡检',
11: '首检',
12: '末检',
13: '实时监测',
14: 'FQC抽检',
15: 'OQC抽检'
}
}
export default function (dictTable) {
return function (val) {
return table?.[dictTable]?.[val]
}
}

View File

@ -43,6 +43,9 @@ t.notAvailable = '不可用'
t.time = '时间段' t.time = '时间段'
t.parameter = '台差参数' t.parameter = '台差参数'
t.configuration = '配置' t.configuration = '配置'
t.uploadFile = '上传'
t.detail = '查看详情'
@ -300,6 +303,10 @@ t.basic.course = '过程检验'
t.basic.shipment = '出货检验' t.basic.shipment = '出货检验'
t.basic.userName = '用户名' t.basic.userName = '用户名'
t.basic.departName = '部门名' t.basic.departName = '部门名'
t.basic.productCode = '产品编码'
t.basic.productName = '产品名称'
@ -360,7 +367,23 @@ t.quality.sampleRangeHigh = '取样范围高'
t.quality.inspectionLevel = '检验水平' t.quality.inspectionLevel = '检验水平'
t.quality.sampleSizeCode = '样本量字码' t.quality.sampleSizeCode = '样本量字码'
t.quality.sampleSize = '样本量' t.quality.sampleSize = '样本量'
t.quality.inspectionPlan = '是否有检验计划'
t.quality.analyzeDrawings = '分析图形'
t.quality.characteristicsType = '特性类型'
t.quality.company = '单位'
t.quality.decimalDigits = '小数位数'
t.quality.measuringToolsType = '量具类型'
t.quality.monitor = '是否监控'
t.quality.parameterName = '参数名称'
t.quality.parameterCode = ' 参数编码'
t.quality.sampleSize = '样本大小'
t.quality.source = '来源'
t.quality.specificationCenterline = 'SL'
t.quality.specificationOffline = 'LSL'
t.quality.specifications = '规格'
t.quality.targetCpk = '目标CPK'
t.quality.targetPpk = '目标PPK'
t.quality.upperSpecificationLimit = 'USL'
@ -581,7 +604,9 @@ t.laboratory.title = '主题'
t.laboratory.trainContent = '培训内容' t.laboratory.trainContent = '培训内容'
t.laboratory.trainDate = '培训日期' t.laboratory.trainDate = '培训日期'
t.laboratory.trainDuration = '培训时长' t.laboratory.trainDuration = '培训时长'
t.laboratory.trainType = '培训类型' t.laboratory.trainType = '培训类型'
t.laboratory.timeSlot = '时间段'
t.code = {} t.code = {}
@ -694,6 +719,9 @@ t.researchquality.stageTwoDate = '阶段2时间'
t.researchquality.stageThreeDate = '阶段3时间' t.researchquality.stageThreeDate = '阶段3时间'
t.researchquality.stageFourDate = '阶段4时间' t.researchquality.stageFourDate = '阶段4时间'
t.researchquality.approvedMemo = '审核记录' t.researchquality.approvedMemo = '审核记录'
t.researchquality.phase = '阶段'
t.researchquality.realTime = '实际完成时间'
@ -718,7 +746,19 @@ t.customerquality.qualityAcceptanceDate = '质量接收日期'
t.customerquality.confirmDeliveryDate = '确认交付日期' t.customerquality.confirmDeliveryDate = '确认交付日期'
t.customerquality.deliveryRequiredDate = '要求交付日期' t.customerquality.deliveryRequiredDate = '要求交付日期'
t.customerquality.status = '状态' t.customerquality.status = '状态'
t.customerquality.file = '清单文件'
t.customerquality.previousVersionCode = '上一版本号'
t.customerquality.first = '首次'
t.customerquality.confidentialityAgreement = '保密协议'
t.customerquality.ppapGrade = ' ppap等级'
t.customerquality.version = ' 版本'
t.customerquality.amendment = ' 修订'

12
src/icons/svg/首页.svg Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" 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(-506.000000, -176.000000)" fill-rule="nonzero">
<g id="首页" transform="translate(506.000000, 176.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="24"></rect>
<path d="M11.1710783,2.42919989 C11.7298936,2.09409047 12.4328291,2.12455473 12.9654367,2.52059014 L12.9654367,2.52059014 L20.3218013,7.99000647 L20.4665209,8.10559268 C21.0744501,8.62656431 21.4302636,9.40344805 21.4302636,10.227099 L21.4302636,10.227099 L21.4302636,19.0470569 L21.4250327,19.2212289 C21.3382831,20.6611171 20.1833875,21.8011882 18.7715031,21.8011882 L18.7715031,21.8011882 L5.2284969,21.8011882 L5.06035624,21.7957697 C3.67032883,21.7059084 2.56973638,20.5095861 2.56973638,19.0470569 L2.56973638,19.0470569 L2.56973638,10.2273587 L2.57600507,10.0381789 C2.63012926,9.22282649 3.03207443,8.47038558 3.67819781,7.99000711 L3.67819781,7.99000711 L11.034559,2.52059336 Z M12.0713092,3.55793652 C11.9772762,3.53774358 11.8769764,3.55793433 11.7954857,3.6185066 L11.7954857,3.6185066 L4.43911542,9.0879271 L4.32641124,9.18150853 C4.04059293,9.44596068 3.87451485,9.82573182 3.87451485,10.2273587 L3.87451485,10.2273587 L3.87451485,19.0470569 L3.880713,19.1821318 C3.94632222,19.8933667 4.52470053,20.4496068 5.2284969,20.4496068 L5.2284969,20.4496068 L11.2507497,20.4487759 L11.3507364,20.3451977 L11.3512202,14.4627186 L11.3582338,14.3683764 C11.4044406,14.0603828 11.6734228,13.8227675 12,13.8227675 C12.3345637,13.8227675 12.6123182,14.0734451 12.6454705,14.3976012 L12.6454705,14.3976012 L12.6489183,14.4681588 L12.6487364,20.3451881 L12.7487231,20.4487759 L18.7714898,20.4496068 L18.9018895,20.4431864 C19.5885066,20.3752237 20.1254851,19.7760987 20.1254851,19.0470569 L20.1254851,19.0470569 L20.1254851,10.2273587 L20.1177907,10.0779557 C20.0769951,9.68325297 19.8759128,9.32208831 19.5608746,9.08791971 L19.5608746,9.08791971 L12.2045243,3.61851399 L12.1402672,3.58065321 Z" id="形状结合" fill="#000"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-01-04 10:29:39 * @Date: 2023-01-04 10:29:39
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-01-05 16:14:45 * @LastEditTime: 2023-07-19 16:33:56
* @Description: * @Description:
*/ */
import Vue from 'vue' import Vue from 'vue'
@ -28,11 +28,11 @@ export default new Vuex.Store({
contentIsNeedRefresh: false, contentIsNeedRefresh: false,
// 内容, 标签页(默认添加首页) // 内容, 标签页(默认添加首页)
contentTabs: [ contentTabs: [
{ // {
...window.SITE_CONFIG['contentTabDefault'], // ...window.SITE_CONFIG['contentTabDefault'],
'name': 'home', // 'name': 'home',
'title': '首页' // 'title': '首页'
} // }
], ],
contentTabsActiveName: 'home' contentTabsActiveName: 'home'
}, },

View File

@ -1,3 +1,10 @@
<!--
* @Author: zwq
* @Date: 2023-07-13 15:31:21
* @LastEditors: zwq
* @LastEditTime: 2023-07-20 09:05:48
* @Description:
-->
<template> <template>
<main :class="['aui-content', { 'aui-content--tabs': $route.meta.isTab }]"> <main :class="['aui-content', { 'aui-content--tabs': $route.meta.isTab }]">
<!-- tab展示内容 --> <!-- tab展示内容 -->
@ -16,11 +23,13 @@
:key="item.name" :key="item.name"
:name="item.name" :name="item.name"
:label="item.title" :label="item.title"
:closable="item.name !== 'home'" closable
:class="{ 'is-iframe': tabIsIframe(item.iframeURL) }"> :class="{ 'is-iframe': tabIsIframe(item.iframeURL) }">
<template v-if="item.name === 'home'"> <!-- <template v-if="item.name === 'home'">
<svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"><use xlink:href="#icon-home"></use></svg> <svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true">
</template> <use xlink:href="#首页"></use>
</svg>
</template> -->
<iframe v-if="tabIsIframe(item.iframeURL)" :src="item.iframeURL" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe> <iframe v-if="tabIsIframe(item.iframeURL)" :src="item.iframeURL" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe>
<!-- <keep-alive > --> <!-- <keep-alive > -->
<router-view v-if="item.name === $store.state.contentTabsActiveName" /> <router-view v-if="item.name === $store.state.contentTabsActiveName" />
@ -62,9 +71,9 @@ export default {
}, },
// tabs, tab // tabs, tab
tabRemoveHandle (tabName) { tabRemoveHandle (tabName) {
if (tabName === 'home') { // if (tabName === 'home') {
return false // return false
} // }
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
if (this.$store.state.contentTabs.length <= 0) { if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home' this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home'

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-08-22 14:57:51 * @Date: 2022-08-22 14:57:51
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-05-12 12:46:50 * @LastEditTime: 2023-07-19 09:27:53
* @Description: * @Description:
--> -->
<template> <template>
@ -36,10 +36,11 @@
<el-menu-item index="6" @click="$router.push({ name: 'home' })"> <el-menu-item index="6" @click="$router.push({ name: 'home' })">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
<use xlink:href="#icon-home"></use> <use xlink:href="#首页"></use>
</svg> </svg>
</el-menu-item> </el-menu-item>
<el-menu-item index="7"> <!-- 中英文 -->
<!-- <el-menu-item index="7">
<el-dropdown trigger="click" class="international" @command="handleSetLanguage"> <el-dropdown trigger="click" class="international" @command="handleSetLanguage">
<div> <div>
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
@ -55,7 +56,7 @@
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-menu-item> </el-menu-item> -->
<el-menu-item index="4" @click="fullscreenHandle()"> <el-menu-item index="4" @click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"> <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use> <use xlink:href="#icon-fullscreen"></use>

View File

@ -1,20 +1,21 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 13:49:47 * @LastEditTime: 2023-07-18 16:55:42
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="controlCode" :label="$t('basic.code')"> <el-form-item prop="controlCode" :label="$t('basic.code')">
<el-input v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input> <el-input clearable v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="controlName" :label="$t('basic.name')"> <el-form-item prop="controlName" :label="$t('basic.name')">
<el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input> <el-input clearable v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="specifications" :label="$t('basic.specification')"> <el-form-item prop="specifications" :label="$t('basic.specification')">
<el-input v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></el-input> <el-input clearable v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="incomingInspection" :label="$t('basic.stock')"> <el-form-item prop="incomingInspection" :label="$t('basic.stock')">
<el-switch v-model="dataForm.incomingInspection" :active-value="1" :inactive-value="0"> <el-switch v-model="dataForm.incomingInspection" :active-value="1" :inactive-value="0">
@ -33,13 +34,13 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item prop="controlStatus" :label="$t('basic.status')"> <el-form-item prop="controlStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.controlStatus" :placeholder="$t('basic.status')"> <el-select clearable v-model="dataForm.controlStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="remark" :label="$t('basic.remark')"> <el-form-item prop="remark" :label="$t('basic.remark')">
<el-input v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input> <el-input clearable v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>

View File

@ -1,26 +1,27 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 13:57:14 * @LastEditTime: 2023-07-18 16:55:57
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="customerCode" :label="$t('basic.code')"> <el-form-item prop="customerCode" :label="$t('basic.code')">
<el-input v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input> <el-input clearable v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="customerName" :label="$t('basic.name')"> <el-form-item prop="customerName" :label="$t('basic.name')">
<el-input v-model="dataForm.customerName" :placeholder="$t('basic.name')"></el-input> <el-input v-model="dataForm.customerName" :placeholder="$t('basic.name')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="customerTypeId" :label="$t('basic.customerTypeName')"> <el-form-item prop="customerTypeId" :label="$t('basic.customerTypeName')">
<el-select v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')"> <el-select clearable v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')">
<el-option v-for="item in customerTypeList" :key="item.id" :label="item.customerTypeName" :value="item.id"> <el-option v-for="item in customerTypeList" :key="item.id" :label="item.customerTypeName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="customerTypeStatus" :label="$t('basic.status')"> <el-form-item prop="customerTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> <el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 13:55:20 * @LastEditTime: 2023-07-18 16:56:08
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,13 +9,13 @@
<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="customerTypeCode" :label="$t('basic.code')"> <el-form-item prop="customerTypeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input> <el-input clearable v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="customerTypeName" :label="$t('basic.name')"> <el-form-item prop="customerTypeName" :label="$t('basic.name')">
<el-input v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input> <el-input clearable v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="customerTypeStatus" :label="$t('basic.status')"> <el-form-item prop="customerTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')"> <el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 13:52:25 * @LastEditTime: 2023-07-18 16:56:16
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,13 +9,13 @@
<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="failureTypeCode" :label="$t('basic.code')"> <el-form-item prop="failureTypeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input> <el-input clearable v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="failureTypeName" :label="$t('basic.name')"> <el-form-item prop="failureTypeName" :label="$t('basic.name')">
<el-input v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input> <el-input clearable v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="failureTypeStatus" :label="$t('basic.status')"> <el-form-item prop="failureTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')"> <el-select clearable v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -121,13 +121,6 @@ export default {
param: 'name', param: 'name',
clearable:true clearable:true
}, },
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain:true
},
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "搜索",
@ -135,6 +128,13 @@ export default {
color: "primary", color: "primary",
// plain: true, // plain: true,
}, },
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain:true
},
{ {
type: "button", type: "button",
btnName: "关联产品列表", btnName: "关联产品列表",

View File

@ -147,17 +147,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
}, },
{ {

View File

@ -128,17 +128,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
}, },
{ {

View File

@ -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-11 10:07:22 * @LastEditTime: 2023-07-18 10:19:11
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -128,17 +128,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
} }
], ],

View File

@ -120,17 +120,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
}, },
{ {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-21 14:30:17 * @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-07-11 10:24:01 * @LastEditTime: 2023-07-18 10:19:37
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -135,17 +135,17 @@ export default {
// }, // },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
}, },
{ {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-21 14:30:17 * @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-07-11 10:16:26 * @LastEditTime: 2023-07-18 10:19:49
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -151,17 +151,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
}, },
{ {

View File

@ -1,109 +0,0 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-26 13:39:19
* @LastEditors: zhp
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<!-- <el-button type="primary" size="small" plain>导入</el-button> -->
</SearchBar>
<base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<!-- 弹窗, 新增 / 修改 -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<teamMember-add ref="addOrUpdate" @successSubmit="successSubmit"></teamMember-add>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import teamMemberAdd from './components/teamMember-add'
import i18n from "@/i18n";
const tableProps = [
{
prop: "paramCode",
label: i18n.t("params.paramCode"),
},
{
prop: "paramValue",
label: i18n.t("params.paramValue"),
},
{
prop: "remark",
label: i18n.t("params.remark"),
},
];
const tableBtn = [
{
type: "edit",
btnName: "编辑",
},
{
type: "delete",
btnName: "删除",
},
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsTeamMember/page",
deleteURL: "/basic/qmsControlMode",
},
tableProps,
tableBtn,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
],
};
},
components: {
teamMemberAdd,
},
methods:{
//search-bar
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.getDataList();
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:17:26 * @LastEditTime: 2023-07-17 10:24:03
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -10,7 +10,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -18,26 +18,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -53,7 +53,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -61,7 +61,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -69,31 +69,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -101,15 +104,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -119,7 +122,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -331,23 +334,13 @@ export default {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
;console.log(res.data.list)
if (res.code === 0) { if (res.code === 0) {
this.userList = res.data.list this.userList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
}) })
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http this.$http
.get(this.urlOptions.getDictDataList, { .get(this.urlOptions.getDictDataList, {
params: { params: {
@ -385,6 +378,17 @@ export default {
}) })
.catch(() => { .catch(() => {
}) })
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
// console.log(111111); // console.log(111111);
}, },
// //

View File

@ -1,15 +1,20 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:17:44 * @LastEditTime: 2023-07-17 10:21:47
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px"> <el-form
:model="dataForm"
ref="dataForm"
:rules="dataRule"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="130px"
>
<el-form-item prop="name" :label="$t('code.name')"> <el-form-item prop="name" :label="$t('code.name')">
<el-input v-model="dataForm.name" :placeholder="$t('code.name')"> <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> </el-input>
</el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code" :label="$t('code.code')"> <el-form-item prop="code" :label="$t('code.code')">
<el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input> <el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input>
@ -19,8 +24,16 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')"> <el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')">
<el-select v-model="dataForm.eightDisciplineType" :placeholder="$t('code.eightDisciplineType')"> <el-select
<el-option v-for="item in eightDisciplineTypeList" :key="item.value" :label="item.label" :value="item.value"> v-model="dataForm.eightDisciplineType"
:placeholder="$t('code.eightDisciplineType')"
>
<el-option
v-for="item in eightDisciplineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -36,36 +49,38 @@ export default {
return { return {
urlOptions: { urlOptions: {
submitURL: "/code/eightDiscipline", submitURL: "/code/eightDiscipline",
infoURL: "/code/eightDiscipline" infoURL: "/code/eightDiscipline",
}, },
options: [{ options: [
value: 0, {
label: '不可用' value: 0,
}, label: "不可用",
{ },
value: 1, {
label: '可用' value: 1,
}], label: "可用",
},
],
eightDisciplineTypeList: [ eightDisciplineTypeList: [
{ {
value: '0', value: "0",
label: '重复发生问题 ' label: "重复发生问题 ",
}, },
{ {
value: '1', value: "1",
label: '客诉问题' label: "客诉问题",
}, },
{ {
value: '2', value: "2",
label: '重大质量问题' label: "重大质量问题",
} },
], ],
visible: false, visible: false,
dataForm: { dataForm: {
id: null, id: null,
name: null, name: null,
code:null, code: null,
eightDisciplineType:null, eightDisciplineType: null,
eightDisciplineStatus: 0, eightDisciplineStatus: 0,
}, },
}; };
@ -73,40 +88,33 @@ export default {
computed: { computed: {
dataRule() { dataRule() {
return { return {
// dictLabel: [ code: [
// { {
// required: true, required: true,
// message: this.$t("validate.required"), message: "请输入编码",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// dictValue: [ name: [
// { {
// required: true, required: true,
// message: this.$t("validate.required"), message: "请输入名称",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// sort: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
}; };
}, },
}, },
methods: { methods: {
init(id, ) { init(id) {
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.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields(); this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} else { } else {
// this.getCode() // this.getCode()
} }

View File

@ -1,78 +1,74 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 13:41:37 * @LastEditTime: 2023-07-17 10:23:23
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px"> <el-form
<el-form-item prop="name" :label="$t('code.name')"> :model="dataForm"
<el-input v-model="dataForm.name" :placeholder="$t('code.name')"> :rules="dataRule"
</el-input> ref="dataForm"
</el-form-item> @keyup.enter.native="dataFormSubmitHandle()"
<el-form-item prop="code" :label="$t('code.code')"> label-width="130px"
<el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input> >
</el-form-item> <el-form-item prop="name" :label="$t('code.name')">
<el-form-item prop="problemStatus" label="状态"> <el-input v-model="dataForm.name" :placeholder="$t('code.name')"> </el-input>
<el-switch v-model="dataForm.problemStatus" :active-value="1" :inactive-value="0"> </el-form-item>
</el-switch> <el-form-item prop="code" :label="$t('code.code')">
</el-form-item> <el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input>
<el-form-item prop="description" label="描述"> </el-form-item>
<el-input v-model="dataForm.description" placeholder="描述"></el-input> <el-form-item prop="problemStatus" label="状态">
</el-form-item> <el-switch v-model="dataForm.problemStatus" :active-value="1" :inactive-value="0">
</el-form> </el-switch>
</template> </el-form-item>
<el-form-item prop="description" label="描述">
<script> <el-input v-model="dataForm.description" placeholder="描述"></el-input>
import basicAdd from "@/mixins/basic-add"; </el-form-item>
export default { </el-form>
mixins: [basicAdd], </template>
data() {
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/problemType",
infoURL: "/code/problemType",
},
visible: false,
dataForm: {
id: null,
name: null,
code: null,
description: null,
problemStatus: 0,
},
};
},
computed: {
dataRule() {
return { return {
urlOptions: { code: [
submitURL: "/code/problemType", {
infoURL: "/code/problemType" required: true,
}, message: "请输入编码",
visible: false, trigger: "blur",
dataForm: { },
id: null, ],
name: null, name: [
code:null, {
description:null, required: true,
problemStatus: 0, message: "请输入名称",
}, trigger: "blur",
},
],
}; };
}, },
computed: { },
dataRule() { methods: {},
return { };
// dictLabel: [ </script>
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// dictValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// sort: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
};
},
},
methods: {
}
};
</script>

View File

@ -2,8 +2,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:18:03 * @LastEditTime: 2023-07-17 10:24:07
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -11,7 +11,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -19,26 +19,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -54,7 +54,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -62,7 +62,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -70,31 +70,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -102,15 +105,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -120,7 +123,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:18:33 * @LastEditTime: 2023-07-17 10:24:12
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -11,7 +11,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -19,26 +19,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -54,7 +54,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -62,7 +62,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -70,31 +70,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -102,15 +105,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -120,7 +123,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -133,27 +136,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="critical" label="CR" label-width="50px"> <el-form-item prop="critical" label="CR" label-width="50px">
<el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalAccept" label="Accept"> <el-form-item prop="criticalAccept" label="Accept">
<el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalReject" label="Reject" label-width="60px"> <el-form-item prop="criticalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.criticalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -161,27 +166,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="major" label="MA" label-width="50px"> <el-form-item prop="major" label="MA" label-width="50px">
<el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorAccept" label="Accept"> <el-form-item prop="majorAccept" label="Accept">
<el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorReject" label="Reject" label-width="60px"> <el-form-item prop="majorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.majorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -189,27 +196,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="minor" label="MI" label-width="50px"> <el-form-item prop="minor" label="MI" label-width="50px">
<el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorAccept" label="Accept"> <el-form-item prop="minorAccept" label="Accept">
<el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorReject" label="Reject" label-width="60px"> <el-form-item prop="minorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.minorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -217,27 +226,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="total" label="total" label-width="50px"> <el-form-item prop="total" label="total" label-width="50px">
<el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalAccept" label="Accept"> <el-form-item prop="totalAccept" label="Accept">
<el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalReject" label="Reject" label-width="60px"> <el-form-item prop="totalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.totalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -475,7 +486,7 @@ export default {
}, },
getDict() { getDict() {
this.$http this.$http
.post(this.urlOptions.getSamplingPlanURL, { .get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -486,7 +497,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getUserURL, { .get(this.urlOptions.getUserURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -497,7 +508,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getProductURL, { .get(this.urlOptions.getProductURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -508,7 +519,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getDictDataList, { .get(this.urlOptions.getDictDataList, {
params: { params: {
limit: 999, limit: 999,
page: 1, page: 1,
@ -523,7 +534,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getSupplierURL, { .get(this.urlOptions.getSupplierURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -534,7 +545,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getFactoryURL, { .get(this.urlOptions.getFactoryURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:19:44 * @LastEditTime: 2023-07-17 10:24:16
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -11,7 +11,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -19,26 +19,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -54,7 +54,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -62,7 +62,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -70,31 +70,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -102,15 +105,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -120,7 +123,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -133,27 +136,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="critical" label="CR" label-width="50px"> <el-form-item prop="critical" label="CR" label-width="50px">
<el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalAccept" label="Accept"> <el-form-item prop="criticalAccept" label="Accept">
<el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalReject" label="Reject" label-width="60px"> <el-form-item prop="criticalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.criticalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -161,27 +166,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="major" label="MA" label-width="50px"> <el-form-item prop="major" label="MA" label-width="50px">
<el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorAccept" label="Accept"> <el-form-item prop="majorAccept" label="Accept">
<el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorReject" label="Reject" label-width="60px"> <el-form-item prop="majorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.majorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -189,27 +196,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="minor" label="MI" label-width="50px"> <el-form-item prop="minor" label="MI" label-width="50px">
<el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorAccept" label="Accept"> <el-form-item prop="minorAccept" label="Accept">
<el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorReject" label="Reject" label-width="60px"> <el-form-item prop="minorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.minorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -217,27 +226,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="total" label="total" label-width="50px"> <el-form-item prop="total" label="total" label-width="50px">
<el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalAccept" label="Accept"> <el-form-item prop="totalAccept" label="Accept">
<el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalReject" label="Reject" label-width="60px"> <el-form-item prop="totalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.totalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -475,7 +486,7 @@ export default {
}, },
getDict() { getDict() {
this.$http this.$http
.post(this.urlOptions.getSamplingPlanURL, { .get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -486,7 +497,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getUserURL, { .get(this.urlOptions.getUserURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -497,7 +508,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getProductURL, { .get(this.urlOptions.getProductURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -508,7 +519,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getDictDataList, { .get(this.urlOptions.getDictDataList, {
params: { params: {
limit: 999, limit: 999,
page: 1, page: 1,
@ -523,7 +534,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getSupplierURL, { .get(this.urlOptions.getSupplierURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
@ -534,7 +545,7 @@ export default {
.catch(() => { .catch(() => {
}) })
this.$http this.$http
.post(this.urlOptions.getFactoryURL, { .get(this.urlOptions.getFactoryURL, {
params: this.listQuery params: this.listQuery
}) })
.then(({ data: res }) => { .then(({ data: res }) => {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:20:02 * @LastEditTime: 2023-07-17 10:27:00
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -9,6 +9,7 @@
<el-form <el-form
:model="dataForm" :model="dataForm"
ref="dataForm" ref="dataForm"
:rules="dataRule"
@keyup.enter.native="dataFormSubmitHandle()" @keyup.enter.native="dataFormSubmitHandle()"
label-width="100px" label-width="100px"
> >
@ -271,7 +272,7 @@ export default {
}, },
{ {
value: '1', value: '1',
label: "1客诉问题", label: "客诉问题",
}, },
{ {
value: '2', value: '2',
@ -317,27 +318,48 @@ export default {
computed: { computed: {
dataRule() { dataRule() {
return { return {
// dictLabel: [ code: [
// { {
// required: true, required: true,
// message: this.$t("validate.required"), message: "请输入编码",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// dictValue: [ title: [
// { {
// required: true, required: true,
// message: this.$t("validate.required"), message: "请输入标题",
// trigger: "blur", trigger: "blur",
// }, },
// ], ],
// sort: [ eightDisciplineType: [
// { {
// required: true, required: true,
// message: this.$t("validate.required"), message: "请选择8D类型",
// trigger: "blur", trigger: "change",
// }, },
// ], ],
defectSourceId: [
{
required: true,
message: "请选择缺陷来源",
trigger: "change",
},
],
occurrenceDate: [
{
required: true,
message: "请选择发生日期",
trigger: "change",
},
],
product: [
{
required: true,
message: "请选择产品",
trigger: "change",
},
],
}; };
}, },
}, },

View File

@ -2,11 +2,17 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-06-29 14:12:48 * @Date: 2023-06-29 14:12:48
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-06-30 10:58:16 * @LastEditTime: 2023-07-17 13:30:04
* @Description: * @Description:
--> -->
<template> <template>
<base-table border show-summary :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" /> <base-table
border
show-summary
:table-props="tableProps"
:table-data="tableData"
@emitFun="inputChange"
/>
</template> </template>
<script> <script>
@ -134,7 +140,7 @@ export default {
if (this.tableData[data._pageIndex - 1].gradeStatus) { if (this.tableData[data._pageIndex - 1].gradeStatus) {
this.$set( this.$set(
this.tableData[data._pageIndex - 1], this.tableData[data._pageIndex - 1],
'grade', "grade",
this.score[this.tableData[data._pageIndex - 1].gradeStatus - 1] this.score[this.tableData[data._pageIndex - 1].gradeStatus - 1]
); );
} }
@ -146,24 +152,33 @@ export default {
formClear() {}, formClear() {},
// //
dataFormSubmit() { dataFormSubmit() {
this.tableData.forEach((item) => { this.tableData.forEach((item) => {
item.startEightDisciplineId = this.id; item.startEightDisciplineId = this.id;
});
let putData = {
gradeFinish: 1,
id: this.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http.post("/code/startEightGrade/save/list", this.tableData).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.visible = false;
this.$emit("refreshDataList");
},
}); });
this.$http.post("/code/startEightGrade/save/list", this.tableData) });
.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.visible = false;
this.$emit("refreshDataList");
},
});
});
}, },
}, },
}; };

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-06-19 15:52:51 * @Date: 2023-06-19 15:52:51
* @LastEditTime: 2023-07-14 10:15:12 * @LastEditTime: 2023-07-17 10:31:16
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -21,14 +21,14 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<deliveryInspection-add ref="addOrUpdate" @successSubmit="successSubmit"> <deliveryInspection-add ref="addOrUpdate" @successSubmit="successSubmit">
</deliveryInspection-add> </deliveryInspection-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<deliveryInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> <deliveryInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</deliveryInspection-search> </deliveryInspection-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">

View File

@ -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-14 14:06:53 * @LastEditTime: 2023-07-17 09:08:38
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -9,9 +9,6 @@
<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="3" class="item">
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button>
</el-badge>
</SearchBar> </SearchBar>
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
@ -35,7 +32,7 @@
@pagination="getDataList" @pagination="getDataList"
/> />
<!-- 弹窗, 条件搜索--> <!-- 弹窗, 条件搜索-->
<base-dialog <!-- <base-dialog
:dialogTitle="searchsTitle" :dialogTitle="searchsTitle"
:dialogVisible="searchsVisible" :dialogVisible="searchsVisible"
@cancel="searchsCancel" @cancel="searchsCancel"
@ -43,7 +40,7 @@
:before-close="searchsCancel" :before-close="searchsCancel"
> >
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
</base-dialog> </base-dialog> -->
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<base-dialog <base-dialog
:dialogTitle="addOrEditTitle" :dialogTitle="addOrEditTitle"
@ -64,7 +61,7 @@
import basicPage from "@/mixins/basic-page"; import basicPage from "@/mixins/basic-page";
import eightDisciplineAdd from "./components/eightDiscipline-add"; import eightDisciplineAdd from "./components/eightDiscipline-add";
import available from "./components/available.vue"; import available from "./components/available.vue";
import Searchs from "./components/eightDiscipline-searchs"; // import Searchs from "./components/eightDiscipline-searchs";
import codeFilter from "@/filters/code-filter"; import codeFilter from "@/filters/code-filter";
import i18n from "@/i18n"; import i18n from "@/i18n";
const tableProps = [ const tableProps = [
@ -105,7 +102,7 @@ export default {
mixins: [basicPage], mixins: [basicPage],
components: { components: {
eightDisciplineAdd, eightDisciplineAdd,
Searchs // Searchs,
}, },
data() { data() {
return { return {
@ -117,10 +114,26 @@ export default {
tableBtn, tableBtn,
formConfig: [ formConfig: [
{ {
type: "button", type: "input",
btnName: "新增", label: i18n.t("code.name"),
name: "add", placeholder: i18n.t("code.name"),
color: "primary", param: "name",
},
{
type: "input",
label: i18n.t("code.code"),
placeholder: i18n.t("code.code"),
param: "code",
},
{
type: "select",
label: i18n.t('code.eightDisciplineStatus'),
selectOptions: [
{ id: 1, name: "可用" },
{ id: 0, name: "不可用" },
],
param: "eightDisciplineStatus",
defaultSelect: "",
}, },
{ {
type: "button", type: "button",
@ -128,6 +141,12 @@ export default {
name: "search", name: "search",
color: "primary", color: "primary",
}, },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
], ],
}; };
}, },
@ -142,9 +161,9 @@ export default {
case "search": case "search":
// this.listQuery.paramCode = val.paramCode; // this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1; this.listQuery.page = 1;
this.listQuery.code = null; this.listQuery.code = val.code;
this.listQuery.name = null; this.listQuery.name = val.name;
this.listQuery.eightDisciplineStatus = null; this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus;
this.getDataList(); this.getDataList();
break; break;
case "add": case "add":

View File

@ -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-14 10:15:45 * @LastEditTime: 2023-07-17 10:38:22
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -66,20 +66,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "approve", type: "approve",
btnName: "审批", btnName: "审批",

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-06-19 15:52:51 * @Date: 2023-06-19 15:52:51
* @LastEditTime: 2023-07-14 10:16:01 * @LastEditTime: 2023-07-17 10:30:40
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -21,13 +21,13 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<productInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></productInspection-add> <productInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></productInspection-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<productInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> <productInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</productInspection-search> </productInspection-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-06-12 13:22:50 * @Date: 2023-06-12 13:22:50
* @LastEditTime: 2023-07-14 10:16:14 * @LastEditTime: 2023-07-17 10:29:25
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -21,40 +21,41 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<productRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> <productRegistration-add ref="addOrUpdate" @successSubmit="successSubmit">
</productRegistration-add> </productRegistration-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<productRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> <productRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</productRegistration-search> </productRegistration-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">
<el-col :span="12"> <el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
{{ $t("close") }} {{ $t("close") }}
</el-button> </el-button>
<el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{ <el-button size="small" class="btnTextStyle" type="primary" plain @click="handleSearchReset">{{
$t("reset") $t("reset")
}}</el-button> }}</el-button>
<el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm"> <el-button type="primary" size="small" class="btnTextStyle" @click="handleSearchConfirm">
{{ $t("search") }} {{ $t("search") }}
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
</base-dialog> </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 productRegistrationSearch from "./components/productRegistrationSearch.vue"; import productRegistrationSearch from "./components/productRegistrationSearch.vue"
import productRegistrationAdd from "./components/productRegistration-add.vue"; import productRegistrationAdd from "./components/productRegistration-add.vue"
import i18n from "@/i18n"; import i18n from "@/i18n"
import incoming from "@/filters/incoming"
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [ const tableProps = [
{ {
@ -76,10 +77,12 @@ const tableProps = [
{ {
prop: "upload", prop: "upload",
label: i18n.t('code.upload'), label: i18n.t('code.upload'),
filter: incoming('upload'),
}, },
{ {
prop: "judgmentResult", prop: "judgmentResult",
label: i18n.t('code.judgmentResult'), label: i18n.t('code.judgmentResult'),
filter: incoming('judgmentResult'),
}, },
{ {
prop: "productCode", prop: "productCode",
@ -149,7 +152,7 @@ export default {
data() { data() {
return { return {
urlOptions: { urlOptions: {
getDataListURL: "code/productRegistration/page/term", getDataListURL: "/code/productRegistration/page/term",
deleteURL: "/code/productRegistration", deleteURL: "/code/productRegistration",
exportURL: "/code/productRegistration/export", exportURL: "/code/productRegistration/export",
}, },

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-06-12 13:22:50 * @Date: 2023-06-12 13:22:50
* @LastEditTime: 2023-07-14 10:16:28 * @LastEditTime: 2023-07-17 10:29:35
* @LastEditors: zwq * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
@ -21,14 +21,14 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<shipmentRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> <shipmentRegistration-add ref="addOrUpdate" @successSubmit="successSubmit">
</shipmentRegistration-add> </shipmentRegistration-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<shipmentRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> <shipmentRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</shipmentRegistration-search> </shipmentRegistration-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">
@ -55,6 +55,7 @@ import basicSearch from "@/mixins/basic-search";
import shipmentRegistrationSearch from "./components/shipmentRegistrationSearch.vue"; import shipmentRegistrationSearch from "./components/shipmentRegistrationSearch.vue";
import shipmentRegistrationAdd from "./components/shipmentRegistration-add.vue"; import shipmentRegistrationAdd from "./components/shipmentRegistration-add.vue";
import i18n from "@/i18n"; import i18n from "@/i18n";
import incoming from "@/filters/incoming";
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [ const tableProps = [
{ {
@ -76,10 +77,12 @@ const tableProps = [
{ {
prop: "upload", prop: "upload",
label: i18n.t('code.upload'), label: i18n.t('code.upload'),
filter: incoming('upload'),
}, },
{ {
prop: "judgmentResult", prop: "judgmentResult",
label: i18n.t('code.judgmentResult'), label: i18n.t('code.judgmentResult'),
filter: incoming('judgmentResult'),
}, },
{ {
prop: "productCode", prop: "productCode",
@ -149,7 +152,7 @@ export default {
data() { data() {
return { return {
urlOptions: { urlOptions: {
getDataListURL: "code/shipmentRegistration/page/term", getDataListURL: "/code/shipmentRegistration/page/term",
deleteURL: "/code/shipmentRegistration", deleteURL: "/code/shipmentRegistration",
exportURL: "/code/shipmentRegistration/export", exportURL: "/code/shipmentRegistration/export",
}, },

View File

@ -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-14 10:16:41 * @LastEditTime: 2023-07-20 10:50:58
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -41,6 +41,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
:destroy-on-close="true"
> >
<add-or-update <add-or-update
ref="teamSet" ref="teamSet"
@ -96,20 +97,20 @@ const tableProps = [
align: "center", align: "center",
}, },
{ {
prop: "userId", prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: "center", align: "center",
}, },
]; ];
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "team", type: "team",
btnName: "团队", btnName: "团队",

View File

@ -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-14 10:16:46 * @LastEditTime: 2023-07-17 10:38:45
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -84,20 +84,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "corrective", type: "corrective",
btnName: "纠正", btnName: "纠正",

View File

@ -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-14 10:16:53 * @LastEditTime: 2023-07-17 10:39:03
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -82,7 +82,7 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
@ -92,10 +92,10 @@ const tableBtn = [
// type: "edit", // type: "edit",
// btnName: "", // btnName: "",
// }, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "analysis", type: "analysis",
btnName: "分析", btnName: "分析",

View File

@ -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-14 10:16:58 * @LastEditTime: 2023-07-17 10:38:34
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -84,20 +84,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "prevent", type: "prevent",
btnName: "预防", btnName: "预防",

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-11 09:24:58 * @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-30 09:21:25 * @LastEditTime: 2023-07-17 10:38:50
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -83,20 +83,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "analysis", type: "analysis",
btnName: "分析", btnName: "分析",

View File

@ -2,7 +2,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-11 09:24:58 * @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-30 09:37:58 * @LastEditTime: 2023-07-17 10:38:29
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -84,20 +84,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "summary", type: "summary",
btnName: "总结", btnName: "总结",

View File

@ -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-14 10:17:04 * @LastEditTime: 2023-07-20 10:49:29
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -27,6 +27,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
:destroy-on-close="true"
width=70% width=70%
> >
<add-or-update <add-or-update
@ -89,20 +90,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "measure", type: "measure",
btnName: "措施", btnName: "措施",

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-11 09:24:58 * @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-30 09:31:04 * @LastEditTime: 2023-07-17 10:38:40
* @LastEditors: zwq * @LastEditors: zwq
* @Description: * @Description:
--> -->
@ -83,20 +83,20 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'userId', prop: 'userName',
label: i18n.t("code.userId"), label: i18n.t("code.userId"),
align: 'center' align: 'center'
} }
] ]
const tableBtn = [ const tableBtn = [
{ // {
type: "edit", // type: "edit",
btnName: "编辑", // btnName: "",
}, // },
{ // {
type: "delete", // type: "delete",
btnName: "删除", // btnName: "",
}, // },
{ {
type: "validation", type: "validation",
btnName: "验证", btnName: "验证",

View File

@ -1,7 +1,7 @@
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> <!-- <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> -->
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.page" :page="listQuery.page"
@ -30,6 +30,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
:destroy-on-close="true"
> >
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog> </base-dialog>
@ -73,10 +74,10 @@ const tableProps = [
align: "center", align: "center",
}, },
{ {
prop: "examineStatus", prop: "gradeFinish",
label: i18n.t("code.examineStatus"), label: "打分状态",
align: "center", align: "center",
filter: codeFilter("examineStatus"), filter: codeFilter("gradeFinish"),
}, },
]; ];
const tableBtn = [ const tableBtn = [
@ -130,9 +131,16 @@ export default {
} }
}, },
otherMethods(val) { otherMethods(val) {
if(val.data.gradeFinish){
this.$message({
message: '该数据已完成打分操作,请勿重复打分!',
type: 'warning'
});
}else{
this.addOrEditTitle = "打分"; this.addOrEditTitle = "打分";
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.addOrUpdateHandle(val.data.id); this.addOrUpdateHandle(val.data.id);
}
}, },
}, },
}; };

View File

@ -0,0 +1,177 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-18 16:53:52
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-drawer close-on-press-escape:title="$t('add')" :append-to-body="true" :before-close="handleClose"
:visible.sync="innerDrawer">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="requirementListId" :label="$t('customerquality.requirementListName')">
<el-select clearable v-model="dataForm.requirementListId"
:placeholder="$t('customerquality.requirementListName')">
<el-option v-for="item in requirementList" :key="item.id" :label="item.requirementListName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="knowledgeBaseId" :label="$t('customerquality.knowledgeBaseName')">
<el-select clearable v-model="dataForm.knowledgeBaseId"
:placeholder="$t('customerquality.knowledgeBaseName')">
<el-option v-for="item in knowledgeBaseList" :key="item.id" :label="item.knowledgeBaseName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button>
<el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button>
</el-form-item>
</el-form>
</el-drawer>
</div>
</template>
<script>
import i18n from "@/i18n"
import basicAdd from "@/mixins/basic-add"
import debounce from "lodash/debounce"
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/customerquality/qmsKnowledgeBaseRequirementList",
getRequirementListURL: "/customerquality/qmsCustomerQualityRequirementList/page",
getKnowledgeBaseURL: "/customerquality/qmsKnowledgeBase/page"
},
dataForm: {
knowledgeBaseId: null,
requirementListId:null
},
innerDrawer: false,
listQuery: {
limit: 10,
page:1,
},
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
dataRule() {
return {
knowledgeBaseId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
requirementListId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},
mounted () {
this.getDict()
},
methods: {
init(obj) {
this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || ''
this.dataForm.requirementListId = obj.requirementListId || ''
this.dataForm.id = obj.id || ''
this.innerDrawer = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo()
} else {
// this.getCode()
}
})
},
handleClose() {
this.innerDrawer = true
this.$refs.dataForm.resetFields()
},
getInfo() {
this.$http
.get(`/customerquality/qmsKnowledgeBaseRequirementList/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { });
},
getDict() {
this.$http
.get(this.urlOptions.getRequirementListURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.requirementList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getKnowledgeBaseURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.knowledgeBaseList = res.data.list
}
})
.catch(() => {
})
},
//
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.innerDrawer = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-07-14 13:44:46 * @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-14 13:59:46 * @LastEditTime: 2023-07-18 14:25:05
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,6 +9,11 @@
<div> <div>
<el-drawer :title="$t('customerquality.knowledgeBase')" :visible.sync="drawer" size="50%"> <el-drawer :title="$t('customerquality.knowledgeBase')" :visible.sync="drawer" size="50%">
<div> <div>
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<!-- <el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge> -->
</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">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@ -17,6 +22,7 @@
<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" />
</div> </div>
<baseConfig-add ref="baseConfigAddList" v-if="baseConfigAddShow" @refreshDataList="getDataList"></baseConfig-add>
</el-drawer> </el-drawer>
</div> </div>
</template> </template>
@ -25,8 +31,10 @@
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 projectTypeSearch from "./components/projectTypeSearch.vue" // import projectTypeSearch from "./components/projectTypeSearch.vue"
import baseConfigAdd from "./baseConfig-add"
import customerquality from '@/filters/customerquality' import customerquality from '@/filters/customerquality'
// import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue" // import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue"
import InnerTable from "./innerTable"
import i18n from "@/i18n" import i18n from "@/i18n"
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [ const tableProps = [
@ -40,8 +48,13 @@ const tableProps = [
}, },
{ {
prop: "categoryName", prop: "categoryName",
label: i18n.t('customerquality.category'), label: i18n.t('uploadFile'),
} },
{
prop: "code",
label: i18n.t('customerquality.file'),
subcomponent: InnerTable
},
]; ];
const tableBtn = [ const tableBtn = [
{ {
@ -51,14 +64,13 @@ const tableBtn = [
{ {
type: "delete", type: "delete",
btnName: i18n.t('delete'), btnName: i18n.t('delete'),
},
{
type: "configuration",
btnName: i18n.t('delete'),
} }
]; ];
export default { export default {
mixins: [basicPage], mixins: [basicPage],
components: {
baseConfigAdd,
},
data() { data() {
return { return {
urlOptions: { urlOptions: {
@ -67,7 +79,23 @@ export default {
exportURL: '/customerquality/qmsKnowledgeBase/export' exportURL: '/customerquality/qmsKnowledgeBase/export'
}, },
tableBtn, tableBtn,
baseConfigAddShow:[],
formConfig: [
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain: true
},
],
tableProps, tableProps,
tableData: [], tableData: [],
drawer: false, drawer: false,
@ -78,16 +106,105 @@ export default {
} }
}, },
methods: { methods: {
init(id) { init(obj) {
this.listQuery.knowledgeBaseId = id || "" this.listQuery.knowledgeBaseId = obj.knowledgeBaseId || ""
this.listQuery.requirementListId = obj.requirementListId || ""
// this.dataForm.dictTypeId = dictTypeId || ""; // this.dataForm.dictTypeId = dictTypeId || "";
this.drawer = true this.drawer = true
this.$nextTick(() => { this.$nextTick(() => {
this.getDataList()
}); });
}, },
handleClick(){ buttonClick(val) {
console.log(val)
} switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
// this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined
// this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined
// this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined
// this.listQuery.ment = this.ment ? this.ment : undefined
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList()
break;
// case "export":
// // this.listQuery.paramCode = val.paramCode;
// this.exportHandle()
// break;
case "add":
// this.addOrEditTitle = ''
// this.addOrUpdateVisible = true;
this.baseConfigAddShow = true
const obj = {
knowledgeBaseId: this.listQuery.knowledgeBaseId,
requirementListId: this.listQuery.requirementListId
}
this.$nextTick(() => {
this.$refs.baseConfigAddList.init(obj)
})
// this.addOrUpdateHandle()
break;
default:
}
},
getDataList() {
this.dataListLoading = true;
this.$http
.get(this.urlOptions.getDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.baseConfigAddShow = true
const obj = {
knowledgeBaseId: this.listQuery.knowledgeBaseId,
requirementListId: this.listQuery.requirementListId,
id:val.data.id
}
this.$nextTick(() => {
this.$refs.baseConfigAddList.init(obj)
})
}
},
}, },
} }
</script> </script>

View File

@ -0,0 +1,187 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-18 16:53:36
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-drawer close-on-press-escape :title="$t('add')" :append-to-body="true" :before-close="handleClose"
:visible.sync="innerDrawer">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="knowledgeBaseFileId" :label="$t('customerquality.knowledgeBaseFileId')">
<el-select clearable v-model="dataForm.knowledgeBaseFileId"
:placeholder="$t('customerquality.knowledgeBaseFileId')">
<el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="title" :label="$t('customerquality.title')">
<el-input clearable v-model="dataForm.title" :placeholder="$t('customerquality.title')">
</el-input>
</el-form-item>
<el-form-item prop="accessPath" :label="$t('customerquality.accessPath')">
<el-input clearable v-model="dataForm.accessPath" :placeholder="$t('customerquality.accessPath')">
</el-input>
</el-form-item>
<el-form-item>
<el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button>
<el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button>
</el-form-item>
</el-form>
</el-drawer>
</div>
</template>
<script>
import i18n from "@/i18n"
import basicAdd from "@/mixins/basic-add"
import debounce from "lodash/debounce"
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/customerquality/knowledgeBaseRequirementListData",
getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page'
},
dataForm: {
accessPath:null,
id: null,
knowledgeBaseFileId: null,
knowledgeBaseRequirementListId: null,
title: null,
},
innerDrawer: false,
listQuery: {
limit: 10,
page:1,
},
categoryList:[],
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
dataRule() {
return {
knowledgeBaseId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
requirementListId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},
mounted () {
this.getDict()
this.getAccessPath()
},
methods: {
init(obj) {
this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || ''
this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || ''
this.dataForm.id = obj.id || ''
this.innerDrawer = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo()
} else {
// this.getCode()
}
})
},
getDict() {
this.$http
.get(this.urlOptions.getDictDataDetail, {
params: {
limit: 999,
page: 1,
dataDictionaryId: '1679670942635122690',
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.categoryList = res.data.list
}
})
},
getAccessPath() {
const now = new Date();
const year = now.getFullYear();
const month = ('0' + (now.getMonth() + 1)).slice(-2);
const day = ('0' + now.getDate()).slice(-2);
const hours = ('0' + now.getHours()).slice(-2);
const minutes = ('0' + now.getMinutes()).slice(-2);
const formattedTime = year + month + day + hours + minutes
console.log(formattedTime)
var str = Math.random().toString(36).slice(-5)
// console.log(str)
this.dataForm.accessPath = formattedTime+ str
},
handleClose() {
this.innerDrawer = true
this.$refs.dataForm.resetFields()
},
getInfo() {
this.$http
.get(`/customerquality/knowledgeBaseRequirementListData/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { });
},
//
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.innerDrawer = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,146 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-19 14:48:19
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('edit')" size="40%" :append-to-body="true"
:closed="handleClose" :visible.sync="innerDrawer">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="140px">
<el-form-item prop="changeHistory" label="Change History of this PPAP record">
<el-input clearable v-model="dataForm.changeHistory" placeholder="Change History of this PPAP record">
</el-input>
</el-form-item>
<el-form-item prop="name" label=" name">
<el-input clearable v-model="dataForm.name" placeholder="name">
</el-input>
</el-form-item>
<el-form-item prop="date" label="date">
<el-date-picker v-model="dataForm.date" type="datetime" format='yyyy-MM-dd HH:mm:ss'
valueFormat='yyyy-MM-ddTHH:mm:ss' placeholder="date">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button>
<el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button>
</el-form-item>
</el-form>
</el-drawer>
</div>
</template>
<script>
import i18n from "@/i18n"
import basicAdd from "@/mixins/basic-add"
import debounce from "lodash/debounce"
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/customerquality/qmsCustomerQualityProjectListChangeRecord",
},
dataForm: {
date:null,
name: null,
id: null,
changeHistory: null,
},
innerDrawer: false,
listQuery: {
limit: 10,
page:1,
},
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
dataRule() {
return {
knowledgeBaseId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
requirementListId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},
methods: {
init(obj) {
// this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || ''
// this.dataForm.requirementListId = obj.requirementListId || ''
this.dataForm.id = obj.id? obj.id :null
this.dataForm.customerQualityProjectListId = obj.customerQualityProjectListId ? obj.customerQualityProjectListId :null
this.innerDrawer = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo()
} else {
// this.getCode()
}
})
},
handleClose() {
this.innerDrawer = true
this.$refs.dataForm.resetFields()
},
getInfo() {
this.$http
.get(`/customerquality/qmsCustomerQualityProjectListChangeRecord/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { });
},
//
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.innerDrawer = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,85 +1,423 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 14:28:32 * @LastEditTime: 2023-07-19 16:17:25
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" <el-drawer close-on-press-escape title="提示" :visible.sync="visible" size="50%" :before-close="handleClose()">
label-width="120px"> <el-tabs @tab-click="handleClickTab" v-model="title" tab-position="left" style="margin-bottom: 30px;">
<el-form-item prop="code" :label="$t('customerquality.code')"> <el-tab-pane label="项目概述" name="first">
<el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> <el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
</el-form-item> label-width="120px">
<el-form-item prop="knowledgeBaseName" :label="$t('customerquality.knowledgeBaseName')"> <el-form-item prop="productId" :label="$t('basic.productName')">
<el-input v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')"></el-input> <el-select v-model="dataForm.productId" :placeholder="$t('basic.productName')" clearable>
</el-form-item> <el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
<!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')"> </el-option>
<el-select v-model="dataForm.currentStage" :placeholder="$t('basic.status')"> </el-select>
<el-option v-for="item in currentStageList" :key="item.value" :label="item.label" :value="item.value"> </el-form-item>
</el-option> <el-form-item prop="knowledgeBaseId" :label="$t('customerquality.knowledgeBase')">
</el-select> <el-select v-model="dataForm.knowledgeBaseId" :placeholder="$t('customerquality.knowledgeBase')" clearable>
</el-form-item> <el-option v-for="item in knowledgeBaseList" :key="item.id" :label="item.knowledgeBaseName"
<el-form-item prop="serialNumber" :label="$t('customerquality.serialNumber')"> :value="item.id">
<el-input v-model="dataForm.serialNumber" :placeholder="$t('customerquality.serialNumber')"></el-input> </el-option>
</el-form-item> </el-select>
<el-form-item prop="description" :label="$t('customerquality.description')"> </el-form-item>
<el-input v-model="dataForm.description" :placeholder="$t('customerquality.description')"></el-input> <el-form-item prop="customerId" :label="$t('customerquality.customerName')">
</el-form-item> <el-select v-model="dataForm.customerId" :placeholder="$t('customerquality.customerName')" clearable>
<el-form-item prop="questionType" :label="$t('customerquality.questionType')"> <el-option v-for="item in customerList" :key="item.id" :label="item.customerName" :value="item.id">
<el-select v-model="dataForm.questionType" :placeholder="$t('customerquality.questionType')"> </el-option>
<el-option v-for="item in questionTypeList" :key="item.value" :label="item.label" :value="item.value"> </el-select>
</el-option> </el-form-item>
</el-select> <el-form-item prop="qualityAcceptanceDate" :label="$t('customerquality.qualityAcceptanceDate')">
</el-form-item> --> <el-date-picker clearable v-model="dataForm.qualityAcceptanceDate" type="datetime"
<el-form-item prop="category" :label="$t('customerquality.category')"> :placeholder="$t('customerquality.qualityAcceptanceDate')">
<el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> </el-date-picker>
<el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" </el-form-item>
:value="item.id"> <el-form-item prop="deliveryRequiredDate" :label="$t('customerquality.deliveryRequiredDate')">
</el-option> <el-date-picker clearable v-model="dataForm.deliveryRequiredDate" type="datetime"
</el-select> :placeholder="$t('customerquality.deliveryRequiredDate')">
</el-form-item> </el-date-picker>
</el-form> </el-form-item>
<el-form-item prop="confirmDeliveryDate" :label="$t('customerquality.confirmDeliveryDate')">
<el-date-picker clearable v-model="dataForm.confirmDeliveryDate" type="datetime"
:placeholder="$t('customerquality.confirmDeliveryDate')">
</el-date-picker>
</el-form-item>
<el-form-item prop="first" :label="$t('customerquality.first')">
<el-select clearable v-model="dataForm.first" :placeholder="$t('customerquality.first')">
<el-option v-for="item in firstList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="previousVersionCode" :label="$t('customerquality.previousVersionCode')">
<el-input clearable v-model="dataForm.previousVersionCode"
:placeholder="$t('customerquality.previousVersionCode')">
</el-input>
</el-form-item>
<el-form-item prop="author" label="Author/Owner">
<el-input clearable v-model="dataForm.author" placeholder="Author/Owner">
</el-input>
</el-form-item>
<el-form-item prop="releaser" label="releaser">
<el-input clearable v-model="dataForm.releaser" placeholder="releaser">
</el-input>
</el-form-item>
<el-form-item prop="confidentialityAgreement" :label="$t('customerquality.first')">
<el-select clearable v-model="dataForm.confidentialityAgreement" :placeholder="$t('customerquality.first')">
<el-option v-for="item in confidentialityAgreementList" :key="item.id" :label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="nda" label="nda">
<el-select clearable v-model="dataForm.nda" placeholder="nda">
<el-option v-for="item in ndaList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="status" label="状态">
<el-select clearable v-model="dataForm.status" placeholder="状态">
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="ppapGrade" :label="$t('customerquality.ppapGrade')">
<el-select clearable v-model="dataForm.ppapGrade" :placeholder="$t('customerquality.ppapGrade')">
<el-option v-for="item in ppapGradeList" :key="item.id" :label="item.dataDictionaryDetailName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="version" :label="$t('customerquality.version')">
<el-input clearable v-model="dataForm.version" :placeholder="$t('customerquality.version')">
</el-input>
</el-form-item>
<el-form-item prop="amendment" :label="$t('customerquality.amendment')">
<el-input clearable v-model="dataForm.amendment" :placeholder="$t('customerquality.amendment')">
</el-input>
</el-form-item>
<el-form-item prop="description" :label="$t('customerquality.description')">
<el-input clearable v-model="dataForm.description" :placeholder="$t('customerquality.description')">
</el-input>
</el-form-item>
</el-form>
<span style="float: right;" class="dialog-footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmit()"> {{ $t('save') }} </el-button>
</span>
</el-tab-pane>
<el-tab-pane :disabled="tabDisable" label="要求清单" name="second">
<el-tree :default-checked-keys="defaultData" :data="treeData" show-checkbox @check="handleCheckChange"
node-key="id">
</el-tree>
<span style="float: right;" class="dialog-footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="projectListRequirementListDataFormSubmit()"> {{ $t('save')
}} </el-button>
</span>
</el-tab-pane>
<el-tab-pane :disabled="tabDisable" label="封面生成" name="three">
<el-divider content-position="center">修订记录</el-divider>
<SearchBar :formConfigs="reviseFormConfig" ref="ruleForm" @headBtnClick="buttonClick">
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<revise-add ref="reviseAddList" v-if="reviseAddShow" @refreshDataList="getDataList">
</revise-add>
<el-divider content-position="center">变更记录</el-divider>
<SearchBar :formConfigs="changeFormConfig" ref="ruleForm" @headBtnClick="changeButtonClick">
</SearchBar>
<base-table id="palletTable" :table-props="changeTableProps" :page="changeListQuery.page" ref="palletTable1"
:limit="changeListQuery.limit" :table-data="changeTableData">
<method-btn v-if="changeTableBtn.length" slot="handleBtn" :width="100" label="操作"
:method-list="changeTableBtn" @clickBtn="changeHandleClick" />
</base-table>
<pagination :limit.sync="changeListQuery.limit" :page.sync="changeListQuery.page" :total="changeListQuery.total"
@pagination="changeGetDataList" />
<change-add ref="changeAddList" v-if="changeAddShow" @refreshDataList="changeGetDataList">
</change-add>
</el-tab-pane>
</el-tabs>
</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 reviseAdd from "./revise-add"
import changeAdd from "./change-add"
import i18n from "@/i18n"
import { timeFormatter } from '@/filters'
const tableProps = [
{
prop: "revision",
label: 'revision',
},
{
prop: "date",
label: 'date',
filter: timeFormatter
},
{
prop: "item",
label: 'Item/Section',
},
{
prop: "essential",
label: 'Essential Changes',
// filter: timeFormatter
},
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('edit'),
},
{
type: "delete",
btnName: i18n.t('delete'),
},
// {
// type: "configuration",
// btnName: i18n.t('configuration'),
// }
];
const changeTableProps = [
{
prop: "changeHistory",
label: ' Change History of this PPAP record',
},
{
prop: "date",
label: 'date',
filter: timeFormatter
},
{
prop: "name",
label: 'name',
},
];
const changeTableBtn = [
{
type: "edit",
btnName: i18n.t('edit'),
},
{
type: "delete",
btnName: i18n.t('delete'),
},
// {
// type: "configuration",
// btnName: i18n.t('configuration'),
// }
];
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
components: {
reviseAdd,
changeAdd
},
data() { data() {
return { return {
urlOptions: { urlOptions: {
getReviseDataListURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord/page',
getChangeDataListURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord/page',
changeDeleteURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord',
reviseDeleteURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord',
submitURL: "/customerquality/qmsCustomerQualityProjectList", submitURL: "/customerquality/qmsCustomerQualityProjectList",
infoURL: "/customerquality/qmsCustomerQualityProjectList//{id}", infoURL: "/customerquality/qmsCustomerQualityProjectList//{id}",
getDictDataDetail: '/mutual/qmsCustomerQualityProjectList/page' getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page',
getProductURL: '/basic/qmsProduct/page',
getKnowledgeBaseURL: '/customerquality/qmsKnowledgeBase/page',
getCustomerURL: '/basic/qmsCustomer/page',
getRequirementListURL: '/customerquality/qmsCustomerQualityRequirementList/page',
getProjectRequirementListURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/page',
projectListRequirementListSubmitURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/savelist',
projectListRequirementListEditURL: '/customerquality/qmsCustomerQualityProjectListRequirementList/updatelist',
}, },
tableBtn,
reviseAddShow: false,
changeAddShow: false,
ndaList: [
{
id: '0',
name: '错号',
},
{
id: '1',
name: '对号',
}
],
statusList: [
{
id: '0',
name: '待审核',
},
{
id: '1',
name: '已完成',
},
{
id: '2',
name: '交付退回',
},
{
id: '3',
name: '审核拒绝',
}
],
reviseFormConfig: [
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain: true
}
],
changeFormConfig: [
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain: true
}
],
tableProps,
tableData: [],
changeTableProps,
changeTableData: [],
changeTableBtn,
listQuery: {
page: 1,
limit:10
},
checkArr:[],
customerQualityProjectListId:null,
productList: [],
title:'first',
customerList: [],
ppapGradeList:[],
knowledgeBaseList: [],
firstList: [
{
id: '0',
name:'否',
},
{
id: '1',
name: '是',
}
],
defaultData:[],
confidentialityAgreementList: [
{
id: '0',
name: '否',
},
{
id: '1',
name: '是',
}
],
categoryList:[], categoryList:[],
typeList:[], typeList:[],
visible: false, visible: false,
listQuery: { listQuery: {
limit: 999, limit: 999,
page:1 page: 1,
total:0,
}, },
changeListQuery: {
limit: 999,
page: 1,
total: 0,
},
treeData: [],
tabDisable:true,
dataForm: { dataForm: {
id: "", nda: null,
code: null, amendment: null,
category: null, status:null,
knowledgeBaseName:null confidentialityAgreement:null,
confirmDeliveryDate: null,
customerId: null,
deliveryRequiredDate: null,
description: null,
releaser: null,
author:null,
first: null,
id: undefined,
knowledgeBaseId: null,
ppapGrade: null,
previousVersionCode: null,
productId: null,
qualityAcceptanceDate: null,
version: null,
}, },
}; };
}, },
computed: { computed: {
dataRule() { dataRule() {
return { return {
code: [ productId: [
{ {
required: true, required: true,
message: this.$t("validate.required"), message: this.$t("validate.required"),
trigger: "blur", trigger: "change",
}, },
], ],
knowledgeBaseName: [ knowledgeBaseId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
customerId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
qualityAcceptanceDate: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
deliveryRequiredDate: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
ppapGrade: [
{ {
required: true, required: true,
message: this.$t("validate.required"), message: this.$t("validate.required"),
@ -91,22 +429,208 @@ export default {
}, },
mounted () { mounted () {
this.getDict() this.getDict()
this.getSecondData()
}, },
methods: { methods: {
changeGetDataList() {
this.listQuery.customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
this.dataListLoading = true;
this.$http
.get(this.urlOptions.getChangeDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.changeTableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.changeTableData = res.data.list;
this.changeListQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
changeHandleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.reviseDeleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList()
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
let obj = {
customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId,
id: val.data.id
}
this.$nextTick(() => {
this.$refs.reviseAddList.init(obj)
})
}
},
changeButtonClick(val) {
console.log(this.dataForm.id)
console.log(val);
switch (val.btnName) {
case "search":
this.listQuery.page = 1
this.getDataList()
break;
case "add":
this.changeAddShow = true
let obj = {
customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
}
this.$nextTick(() => {
this.$refs.changeAddList.init(obj)
})
break;
default:
}
},
getDataList() {
this.dataListLoading = true
this.listQuery.customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
this.$http
.get(this.urlOptions.getReviseDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[revision为${val.data.revision}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.changeDeleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList()
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
let obj = {
customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId,
id:val.data.id
}
this.$nextTick(() => {
this.$refs.reviseAddList.init(obj)
})
}
},
buttonClick(val) {
console.log(this.dataForm.id)
console.log(val);
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
// console.log(i18n);
this.listQuery.page = 1
this.getDataList()
break;
case "add":
this.reviseAddShow = true
let obj = {
customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
}
this.$nextTick(() => {
this.$refs.reviseAddList.init(obj)
})
break;
default:
}
},
handleClickTab(val) {
console.log(val);
if (val.name === 'second') {
this.$http
.get(this.urlOptions.getProjectRequirementListURL, {
params: {
limit: 999,
page: 1,
projectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
let arr = []
console.log(res.data.list)
res.data.list.forEach((item) => {
arr.push(item.customerQualityRequirementListId)
})
this.defaultData = arr
}
})
} else if (val.name === 'third') {
this.changeGetDataList()
this.getDataList()
}
},
init(id) { init(id) {
this.dataForm.id = id || "" this.dataForm.id = id || ""
// this.dataForm.dictTypeId = dictTypeId || ""; // this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true; this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
// console.log(this.$refs.dataForm)
this.$refs["dataForm"].resetFields() this.$refs["dataForm"].resetFields()
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo(); this.getInfo()
} else { } else {
// this.getCode() // this.getCode()
} }
}); });
}, },
// //
handleClose() {
this.$emit("refreshDataList")
// console.log(this.$refs.dataForm)
// this.$refs.dataForm.resetFields()
},
getInfo() { getInfo() {
this.$http this.$http
.get(`/customerquality/qmsCustomerQualityProjectList/${this.dataForm.id}`) .get(`/customerquality/qmsCustomerQualityProjectList/${this.dataForm.id}`)
@ -117,9 +641,32 @@ export default {
this.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
...res.data, ...res.data,
}; }
this.customerQualityProjectListId = res.data.id
this.tabDisable = false
})
.catch(() => {})
},
getSecondData() {
this.$http
.get(this.urlOptions.getRequirementListURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.treeData = res.data.list.map((item) => {
return {
label: item.requirementListName,
id:item.id
}
})
console.log(this.treeData);
}
}) })
.catch(() => {});
}, },
getDict() { getDict() {
this.$http this.$http
@ -127,15 +674,129 @@ export default {
params: { params: {
limit: 999, limit: 999,
page: 1, page: 1,
dataDictionaryId:'1679670942635122690', dataDictionaryId:'1681202200846499841',
} }
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; // this.dataListLoading = false;
if (res.code === 0) { if (res.code === 0) {
this.categoryList = res.data.list this.ppapGradeList = res.data.list
} }
}) })
this.$http
.get(this.urlOptions.getProductURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.productList = res.data.list
}
})
this.$http
.get(this.urlOptions.getKnowledgeBaseURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.knowledgeBaseList = res.data.list
}
})
this.$http
.get(this.urlOptions.getCustomerURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.customerList = res.data.list
}
})
},
handleCheckChange(data, v) {
this.checkArr = v.checkedKeys.map((item) => {
return {
customerQualityProjectListId: this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId,
customerQualityRequirementListId:item
}
})
console.log(this.checkArr)
},
// handleNodeClick(data) {
// console.log(data)
// },
projectListRequirementListDataFormSubmit() {
if (this.defaultData.length !== 0) {
let customerQualityProjectListId = this.dataForm.id ? this.dataForm.id : this.customerQualityProjectListId
let list= this.checkArr
this.$http.put('/customerquality/qmsCustomerQualityProjectListRequirementList/updatelist?id='+customerQualityProjectListId,list )
.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.title = 'second'
// this.tabDisable = false
// this.customerQualityProjectListId = res.data
},
})
})
} else {
this.$http.post(this.urlOptions.projectListRequirementListSubmitURL, this.checkArr)
.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.title = 'second'
// this.tabDisable = false
// this.customerQualityProjectListId = res.data
},
})
})
}
},
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.tabDisable = false
this.customerQualityProjectListId = res.data
},
});
})
.catch(() => { });
});
}, },
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:06:36 * @LastEditTime: 2023-07-18 16:54:14
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,10 +9,11 @@
<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="code" :label="$t('customerquality.code')"> <el-form-item prop="code" :label="$t('customerquality.code')">
<el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> <el-input clearable v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="requirementListName" :label="$t('customerquality.requirementListName')"> <el-form-item prop="requirementListName" :label="$t('customerquality.requirementListName')">
<el-input v-model="dataForm.requirementListName" :placeholder="$t('customerquality.requirementListName')"> <el-input clearable v-model="dataForm.requirementListName"
:placeholder="$t('customerquality.requirementListName')">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="uploadFiles" :label="$t('customerquality.uploadFiles')"> <el-form-item prop="uploadFiles" :label="$t('customerquality.uploadFiles')">
@ -40,7 +41,7 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item prop="category" :label="$t('customerquality.category')"> <el-form-item prop="category" :label="$t('customerquality.category')">
<el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> <el-select clearable v-model="dataForm.category" :placeholder="$t('customerquality.category')">
<el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id"> <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -0,0 +1,189 @@
<!--
* @Author: zhp
* @Date: 2023-04-18 09:19:02
* @LastEditTime: 2023-07-18 09:52:45
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-popover placement="right" width="400" trigger="click">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<!-- <el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" ref="palletTable1" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<i slot="reference" class="el-icon-plus" @click="showInnerTable(injectData.id)" />
</el-popover>
<baseConfigFile-add ref="baseConfigFileAddList" v-if="baseConfigFileAddShow" @refreshDataList="getDataList">
</baseConfigFile-add>
</div>
</template>
<script>
import i18n from "@/i18n"
import { timeFormatter } from '@/filters'
import baseConfigFileAdd from "./baseConfigFile-add"
const tableBtn = [
{
type: "edit",
btnName: i18n.t('edit'),
},
{
type: "delete",
btnName: i18n.t('delete'),
},
{
type: "configuration",
btnName: i18n.t('configuration'),
}
];
const tableProps = [
{
prop: "title",
label: i18n.t('customerquality.title'),
},
{
prop: "accessPath",
label: i18n.t('customerquality.accessPath'),
}
];
export default {
name: 'InnerTable',
props: {
injectData: {
type: Object,
default: () => ({})
},
itemProp: {
type: String
}
},
data() {
return {
tableProps,
list: this.injectData,
urlOptions: {
getDataListURL: '/customerquality/knowledgeBaseRequirementListData/page',
deleteURL: '/customerquality/knowledgeBaseRequirementListData/page'
},
tableBtn,
baseConfigFileAddShow:false,
tableData: [],
listQuery: {
limit: 10,
page:1,
},
formConfig: [
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain: true
},
],
}
},
components: {
baseConfigFileAdd,
},
methods: {
buttonClick(val) {
console.log(val)
switch (val.btnName) {
case "search":
this.listQuery.page = 1;
this.getDataList()
break;
// case "export":
// // this.listQuery.paramCode = val.paramCode;
// this.exportHandle()
// break;
case "add":
// this.addOrEditTitle = ''
// this.addOrUpdateVisible = true;
this.baseConfigFileAddShow = true
this.$nextTick(() => {
const obj = {
knowledgeBaseRequirementListId :this.injectData.id
}
this.$refs.baseConfigFileAddList.init(obj)
})
// this.addOrUpdateHandle()
break;
default:
}
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[标题为${val.data.title}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.baseConfigFileAddShow = true
this.$nextTick(() => {
const obj = {
knowledgeBaseRequirementListId: this.injectData.id,
id:val.data.id
}
this.$refs.baseConfigFileAddList.init(obj)
})
}
},
showInnerTable() {
this.listQuery.knowledgeBaseRequirementListId = this.injectData.id
this.getDataList()
},
getDataList() {
this.dataListLoading = true;
this.$http
.get(this.urlOptions.getDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
}
}
</script>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:28:15 * @LastEditTime: 2023-07-18 16:54:28
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,10 +9,12 @@
<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="title" :label="$t('customerquality.title')"> <el-form-item prop="title" :label="$t('customerquality.title')">
<el-input :disabled="isDetail" v-model="dataForm.title" :placeholder="$t('customerquality.title')"></el-input> <el-input clearable :disabled="isDetail" v-model="dataForm.title" :placeholder="$t('customerquality.title')">
</el-input>
</el-form-item> </el-form-item>
<el-form-item prop="accessPath" :label="$t('customerquality.accessPath')"> <el-form-item prop="accessPath" :label="$t('customerquality.accessPath')">
<el-input :disabled="isDetail" v-model="dataForm.accessPath" :placeholder="$t('customerquality.accessPath')"> <el-input clearable :disabled="isDetail" v-model="dataForm.accessPath"
:placeholder="$t('customerquality.accessPath')">
</el-input> </el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')"> <!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')">
@ -34,7 +36,7 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item prop="knowledgeBaseFileId" :label="$t('customerquality.knowledgeBaseFileId')"> <el-form-item prop="knowledgeBaseFileId" :label="$t('customerquality.knowledgeBaseFileId')">
<el-select :disabled="isDetail" v-model="dataForm.knowledgeBaseFileId" <el-select clearable :disabled="isDetail" v-model="dataForm.knowledgeBaseFileId"
:placeholder="$t('customerquality.knowledgeBaseFileId')"> :placeholder="$t('customerquality.knowledgeBaseFileId')">
<el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id"> <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id">
</el-option> </el-option>
@ -45,7 +47,7 @@
<script> <script>
import debounce from "lodash/debounce"; import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add"; import basicAdd from "@/mixins/basic-add"
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
data() { data() {
@ -119,7 +121,7 @@ export default {
} else { } else {
// this.getCode() // this.getCode()
} }
}); })
}, },
// getCode() { // getCode() {
// this.$http // this.$http
@ -143,7 +145,7 @@ export default {
} }
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; // this.dataListLoading = false;
if (res.code === 0) { if (res.code === 0) {
this.categoryList = res.data.list this.categoryList = res.data.list
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-14 10:06:39 * @LastEditTime: 2023-07-19 15:28:46
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,33 +9,15 @@
<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="code" :label="$t('customerquality.code')"> <el-form-item prop="code" :label="$t('customerquality.code')">
<el-input v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input> <el-input clearable v-model="dataForm.code" :placeholder="$t('customerquality.code')"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="knowledgeBaseName" :label="$t('customerquality.knowledgeBaseName')"> <el-form-item prop="knowledgeBaseName" :label="$t('customerquality.knowledgeBaseName')">
<el-input v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')"></el-input> <el-input clearable v-model="dataForm.knowledgeBaseName" :placeholder="$t('customerquality.knowledgeBaseName')">
</el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item prop="knowledgeBaseName" :label="$t('basic.status')">
<el-select v-model="dataForm.currentStage" :placeholder="$t('basic.status')">
<el-option v-for="item in currentStageList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="serialNumber" :label="$t('customerquality.serialNumber')">
<el-input v-model="dataForm.serialNumber" :placeholder="$t('customerquality.serialNumber')"></el-input>
</el-form-item>
<el-form-item prop="description" :label="$t('customerquality.description')">
<el-input v-model="dataForm.description" :placeholder="$t('customerquality.description')"></el-input>
</el-form-item>
<el-form-item prop="questionType" :label="$t('customerquality.questionType')">
<el-select v-model="dataForm.questionType" :placeholder="$t('customerquality.questionType')">
<el-option v-for="item in questionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item> -->
<el-form-item prop="category" :label="$t('customerquality.category')"> <el-form-item prop="category" :label="$t('customerquality.category')">
<el-select v-model="dataForm.category" :placeholder="$t('customerquality.category')"> <el-select clearable v-model="dataForm.category" :placeholder="$t('customerquality.category')">
<el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" <el-option v-for="item in categoryList" :key="item.id" :label="item.dataDictionaryDetailName" :value="item.id">
:value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -112,7 +94,7 @@ export default {
.get(`/customerquality/qmsKnowledgeBase/${this.dataForm.id}`) .get(`/customerquality/qmsKnowledgeBase/${this.dataForm.id}`)
.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.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
@ -131,7 +113,7 @@ export default {
} }
}) })
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataListLoading = false; // this.dataListLoading = false;
if (res.code === 0) { if (res.code === 0) {
this.categoryList = res.data.list this.categoryList = res.data.list
} }

View File

@ -1,336 +0,0 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-13 14:49:30
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="registrationDate" :label="$t('researchquality.registrationDate')">
<el-date-picker v-model="dataForm.registrationDate" type="datetime"
:placeholder="$t('researchquality.registrationDate')">
</el-date-picker>
</el-form-item>
<el-form-item prop="changeSource" :label="$t('researchquality.changeSource')">
<el-select v-model="dataForm.changeSource" :placeholder="$t('researchquality.changeSource')">
<el-option v-for="item in changeSourceList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="sourceRemark" :label="$t('researchquality.sourceRemark')">
<el-input v-model="dataForm.sourceRemark" :placeholder="$t('researchquality.sourceRemark')">
</el-input>
</el-form-item>
<el-form-item prop="owner" :label="$t('researchquality.owner')">
<el-select v-model="dataForm.owner" :placeholder="$t('researchquality.owner')">
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="title" :label="$t('researchquality.title')">
<el-input v-model="dataForm.title" :placeholder="$t('researchquality.title')">
</el-input>
</el-form-item>
<el-form-item prop="processId" :label="$t('researchquality.processName')">
<el-select v-model="dataForm.processId" :placeholder="$t('researchquality.processName')">
<el-option v-for="item in processList" :key="item.id" :label="item.processName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="productId" :label="$t('researchquality.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('researchquality.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="processId" :label="$t('researchquality.productTypeName')">
<el-select v-model="dataForm.processId" :placeholder="$t('researchquality.productTypeName')">
<el-option v-for="item in productTypeList" :key="item.id" :label="item.productTypeName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="temporaryChange" :label="$t('researchquality.temporaryChange')">
<el-switch v-model="dataForm.temporaryChange" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item>
<!-- <el-row :gutter="20">
<el-col :span="12"> {{ this.$t('researchquality.planPhase') }} </el-col>
<el-col :span="12"> {{ this.$t('researchquality.planTime') }} </el-col>
</el-row> -->
<el-row :gutter="24">
<el-col :span="12">
<el-form-item prop="stageOneName" :label="$t('researchquality.stageOneName')">
<el-input v-model="dataForm.stageOneName" :placeholder="$t('researchquality.stageOneName')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="stageOneDate" :label="$t('researchquality.stageOneDate')">
<el-date-picker v-model="dataForm.stageOneDate" type="datetime"
:placeholder="$t('researchquality.stageOneDate')">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item prop="stageTwoName" :label="$t('researchquality.stageTwoName')">
<el-input v-model="dataForm.stageTwoName" :placeholder="$t('researchquality.stageTwoName')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="stageTwoDate" :label="$t('researchquality.stageTwoDate')">
<el-date-picker v-model="dataForm.stageTwoDate" type="datetime"
:placeholder="$t('researchquality.stageTwoDate')">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item prop="stageThreeName" :label="$t('researchquality.stageThreeName')">
<el-input v-model="dataForm.stageThreeName" :placeholder="$t('researchquality.stageThreeName')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="stageThreeDate" :label="$t('researchquality.stageThreeDate')">
<el-date-picker v-model="dataForm.stageThreeDate" type="datetime"
:placeholder="$t('researchquality.stageThreeDate')">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item prop="stageFourName" :label="$t('researchquality.stageFourName')">
<el-input v-model="dataForm.stageFourName" :placeholder="$t('researchquality.stageFourName')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="stageFourDate" :label="$t('researchquality.stageFourDate')">
<el-date-picker v-model="dataForm.stageFourDate" type="datetime"
:placeholder="$t('researchquality.stageFourDate')">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item prop="productTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.productTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item> -->
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/supplier/qmsSupplier",
infoURL: "/supplier/qmsSupplier/{id}",
getUserURL: '/sys/user/page',
getProcessURL: '/basic/qmsProcess/page',
getProductURL: '/basic/qmsProduct/page',
getProductTypeURL: '/basic/qmsProductType/page',
getSupplierTypeListURL: '/supplier/qmsSupplierType/page'
},
userList: [],
processList: [],
productTypeList: [],
productList: [],
changeSourceList: [
{
id: 0,
name: '工程变更'
},
{
id: 1,
name: '设计变更'
},
{
id: 2,
name: 'CCB'
}
],
visible: false,
listQuery: {
limit: 999,
page:1
},
dataForm: {
id: "",
changeSource:null,
currentStage: null,
owner: null,
productId: null,
productName: null,
qualityChangeStatus: null,
registrationDate: null,
sourceRemark: null,
stageFourDate: null,
stageFourName: null,
stageOneDate: null,
stageOneName: null,
stageThreeDate: null,
stageThreeName: null,
stageTwoDate: null,
stageTwoName: null,
temporaryChange: null,
title: null,
},
};
},
computed: {
dataRule() {
return {
code: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
name: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
ment: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
supplierStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},
methods: {
init(id, ) {
this.dataForm.id = id || ""
// this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
} else {
this.getCode()
}
});
},
getCode() {
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProcessURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.processList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductTypeURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.productTypeList = res.data.list
}
})
.catch(() => {
})
},
//
getInfo() {
this.$http
.get(`/supplier/qmsSupplier/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => {});
},
//
dataFormSubmitHandle: debounce(
function () {
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: () => {
console.log(1111);
this.visible = false;
this.$emit("successSubmit");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>

View File

@ -0,0 +1,241 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-19 16:58:46
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-dialog close-on-press-escape :title="$t('configuration')" :append-to-body="true" :visible.sync="innerDrawer">
<el-divider content-position="center">项目清单详情</el-divider>
<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>
<el-divider content-position="center">修订记录</el-divider>
<el-table style="width: 100%" :data="getReviseValues" :show-header="false">
<el-table-column v-for="(item, index) in getReviseHeaders" :key="index" :prop="item">
</el-table-column>
</el-table>
<el-divider content-position="center">更改记录</el-divider>
<el-table style="width: 100%" :data="getChangeValues" :show-header="false">
<el-table-column v-for="(item, index) in getChangeHeaders" :key="index" :prop="item">
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import i18n from "@/i18n"
// import basicAdd from "@/mixins/basic-add"
// import debounce from "lodash/debounce"
export default {
// mixins: [basicAdd],
data() {
return {
urlOptions: {
getReviseDataListURL: '/customerquality/qmsCustomerQualityProjectListRevisionRecord/page',
getChangeDataListURL: '/customerquality/qmsCustomerQualityProjectListChangeRecord/page',
submitURL: "/customerquality/knowledgeBaseRequirementListData",
getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page'
},
headers: [
{
prop: 'productCode',
label: '产品编码',
},
{
prop: 'productName',
label: '产品名称',
},
{
prop: 'customerCode',
label: '客户编码',
},
{
prop: 'customerName',
label: '客户名称',
},
{
prop: 'author',
label: '作者',
},
{
prop: 'releaser',
label: '发布人',
}
],
reviseHeaders: [
{
prop: 'item',
label: 'Item/Section',
},
{
prop: 'revision',
label: 'revision',
},
{
prop: 'essential',
label: 'Essential Changes',
},
{
prop: 'date',
label: 'date',
},
],
reviseTableData: [],
changeHeaders: [
{
prop: 'name',
label: 'name',
},
{
prop: 'changeHistory',
label: 'Change History of this PPAP record',
},
{
prop: 'date',
label: 'date',
},
],
changeTableData: [],
tableData: [],
innerDrawer: false,
listQuery: {
limit: 3,
page: 1,
customerQualityProjectListId:null
},
categoryList:[],
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
getHeaders() {
return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
},
getValues() {
return this.headers.map(item => {
return this.tableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, });
});
},
getReviseHeaders() {
return this.reviseTableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
},
getReviseValues() {
return this.reviseHeaders.map(item => {
return this.reviseTableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, });
});
},
getChangeHeaders() {
return this.changeTableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
},
getChangeValues() {
return this.changeHeaders.map(item => {
return this.changeTableData.reduce((pre, cur, index) => Object.assign(pre, { ['value' + index]: cur[item.prop] }), { 'title': item.label, });
});
}
},
mounted () {
// this.getDict()
// this.getAccessPath()
},
methods: {
init(obj) {
// this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || ''
// this.dataForm.knowledgeBaseRequirementListId = obj.knowledgeBaseRequirementListId || ''
this.id = obj.id || ''
this.listQuery.customerQualityProjectListId = obj.id
this.tableData.push(obj)
this.innerDrawer = true
this.$nextTick(() => {
// this.$refs["dataForm"].resetFields()
// if (this.dataForm.id) {
this.getInfo()
// } else {
// this.getCode()
// }
})
},
getInfo() {
this.$http
.get(this.urlOptions.getReviseDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
// this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.reviseTableData = res.data.list;
this.listQuery.total = res.data.total;
})
this.$http
.get(this.urlOptions.getChangeDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
// this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.changeTableData = res.data.list;
this.listQuery.total = res.data.total;
})
},
// getDict() {
// this.$http
// .get(this.urlOptions.getDictDataDetail, {
// params: {
// limit: 999,
// page: 1,
// dataDictionaryId: '1679670942635122690',
// }
// })
// .then(({ data: res }) => {
// // this.dataListLoading = false;
// if (res.code === 0) {
// this.categoryList = res.data.list
// }
// })
// },
//
// 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.innerDrawer = false;
// this.$emit("refreshDataList");
// },
// });
// })
// .catch(() => { });
// });
// },
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,24 +1,25 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-13 11:01:20 * @LastEditTime: 2023-07-18 16:55:16
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="title" :label="$t('researchquality.title')"> <el-form-item prop="title" :label="$t('researchquality.title')">
<el-input v-model="dataForm.title" :placeholder="$t('researchquality.title')"> <el-input clearable v-model="dataForm.title" :placeholder="$t('researchquality.title')">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="requirementListGroupId" :label="$t('researchquality.requirementListGroupId')"> <el-form-item prop="requirementListGroupId" :label="$t('researchquality.requirementListGroupId')">
<el-select v-model="dataForm.requirementListGroupId" :placeholder="$t('researchquality.requirementListGroupId')"> <el-select clearable v-model="dataForm.requirementListGroupId"
:placeholder="$t('researchquality.requirementListGroupId')">
<el-option v-for="item in projectTypeList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in projectTypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="description" :label="$t('researchquality.description')"> <el-form-item prop="description" :label="$t('researchquality.description')">
<el-input v-model="dataForm.description" :placeholder="$t('researchquality.description')"> <el-input clearable v-model="dataForm.description" :placeholder="$t('researchquality.description')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -0,0 +1,152 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-19 14:38:48
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-drawer close-on-press-escape :title="!dataForm.id ? $t('add') : $t('edit')" size="40%" :append-to-body="true"
:closed="handleClose" :visible.sync="innerDrawer">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="140px">
<el-form-item prop="essential" label="Essential Changes">
<el-input clearable v-model="dataForm.essential" placeholder="Essential Changes">
</el-input>
</el-form-item>
<el-form-item prop="item" label=" Item / Section">
<el-input clearable v-model="dataForm.item" placeholder="Item/Section">
</el-input>
</el-form-item>
<el-form-item prop="revision" label="revision">
<el-input clearable v-model="dataForm.revision" placeholder="Revision">
</el-input>
</el-form-item>
<el-form-item prop="date" label="date">
<el-date-picker v-model="dataForm.date" type="datetime" format='yyyy-MM-dd HH:mm:ss'
valueFormat='yyyy-MM-ddTHH:mm:ss' placeholder="date">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button>
<el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button>
</el-form-item>
</el-form>
</el-drawer>
</div>
</template>
<script>
import i18n from "@/i18n"
import basicAdd from "@/mixins/basic-add"
import debounce from "lodash/debounce"
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/customerquality/qmsCustomerQualityProjectListRevisionRecord",
},
dataForm: {
date:null,
essential: null,
id: null,
item: null,
revision: null,
customerQualityProjectListId:null,
},
innerDrawer: false,
listQuery: {
limit: 10,
page:1,
},
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
dataRule() {
return {
knowledgeBaseId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
requirementListId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},
methods: {
init(obj) {
// this.dataForm.knowledgeBaseId = obj.knowledgeBaseId || ''
// this.dataForm.requirementListId = obj.requirementListId || ''
this.dataForm.id = obj.id? obj.id :null
this.dataForm.customerQualityProjectListId = obj.customerQualityProjectListId ? obj.customerQualityProjectListId :null
this.innerDrawer = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo()
} else {
// this.getCode()
}
})
},
handleClose() {
this.innerDrawer = true
this.$refs.dataForm.resetFields()
},
getInfo() {
this.$http
.get(`/customerquality/qmsCustomerQualityProjectListRevisionRecord/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { });
},
//
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.innerDrawer = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -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-14 14:28:20 * @LastEditTime: 2023-07-19 16:58:37
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -13,21 +13,76 @@
<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" <el-table :data="tableData" style="width: 100%">
:limit="listQuery.limit" :table-data="tableData"> <el-table-column type="expand">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" <template slot-scope="props">
@clickBtn="handleClick" /> <el-form label-position="left" inline class="demo-table-expand">
</base-table> <el-form-item :label="$t('customerquality.previousVersionCode')">
<span>{{ props.row.previousVersionCode }}</span>
</el-form-item>
<el-form-item :label="$t('customerquality.ppapGrade')">
<span>{{ props.row.ppapGradeName }}</span>
</el-form-item>
<el-form-item :label="$t('customerquality.description')">
<span>{{ props.row.description }}</span>
</el-form-item>
<el-form-item label="nda">
<span>{{ props.row.nda ===0? '错号' : '对号'}}</span>
</el-form-item>
<el-form-item :label="$t('customerquality.amendment')">
<span>{{ props.row.amendment }}</span>
</el-form-item>
</el-form>
</template>
</el-table-column>
<el-table-column :label="$t('customerquality.productName')" prop="productName">
</el-table-column>
<el-table-column :label="$t('customerquality.customerName')" prop="customerName">
</el-table-column>
<el-table-column :formatter="timeFormatter" :label="$t('customerquality.qualityAcceptanceDate')"
prop="qualityAcceptanceDate">
</el-table-column>
<el-table-column :formatter="timeFormatter" :label="$t('customerquality.confirmDeliveryDate')"
prop="confirmDeliveryDate">
</el-table-column>
<el-table-column :formatter="timeFormatter" :label="$t('customerquality.deliveryRequiredDate')"
prop="deliveryRequiredDate">
</el-table-column>
<el-table-column :label="$t('customerquality.status')" prop="status">
<template slot-scope="slot">
<!-- <el-button type="text" @click="start(slot.row)">启动</el-button> -->
<el-tag v-if="slot.row.status == 0" type="success"> 待审核</el-tag>
<el-tag v-if="slot.row.status == 1" type="success"> 已完成</el-tag>
<el-tag v-if="slot.row.status == 2" type="success"> 交付退回</el-tag>
<el-tag v-if="slot.row.status == 3" type="success"> 审核拒绝</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="160" prop="desc">
<template slot-scope="slot">
<!-- <el-button type="text" @click="start(slot.row)">启动</el-button> -->
<el-button type="text" @click="handleEdit(slot.row)">
<i class="el-icon-edit"></i>
</el-button>
<el-button type="text" @click="handleDelete(slot.row)" style="color: red">
<i class="el-icon-delete"></i>
</el-button>
<el-button type="text" @click="handleShow(slot.row)">
{{ $t('configuration')}}
</el-button>
</template>
</el-table-column>
</el-table>
<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" <customerQualityProjectList-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList">
@confirm="handleConfirm" :before-close="handleCancel"> </customerQualityProjectList-add>
<qmsKnowledgeBase-add ref="addOrUpdate" @refreshDataList="successSubmit"> <qualityProjectList-show v-if="qualityProjectListShow" ref="qualityProjectListShow"
</qmsKnowledgeBase-add> @refreshDataList="getDataList">
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> --> </qualityProjectList-show>
</base-dialog> <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
<baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig> <!-- </base-dialog> -->
<!-- <baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig> -->
<!-- <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">
<projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"> <projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
@ -51,42 +106,16 @@
</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 projectTypeSearch from "./components/projectTypeSearch.vue" // import projectTypeSearch from "./components/projectTypeSearch.vue"
import customerquality from '@/filters/customerquality' // import customerquality from '@/filters/customerquality'
import qmsKnowledgeBaseAdd from "./components/qmsKnowledgeBase-add.vue" import customerQualityProjectListAdd from "./components/customerQualityProjectList-add.vue"
import baseConfig from "./components/baseConfig" // import baseConfig from "./components/baseConfig"
import qualityProjectListShow from "./components/qualityProjectList-show.vue"
import { timeFormatter } from '@/filters'
import i18n from "@/i18n" import i18n from "@/i18n"
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [
{
prop: "productName",
label: i18n.t('customerquality.productName'),
},
{
prop: "customerName",
label: i18n.t('customerquality.customerName'),
},
{
prop: "qualityAcceptanceDate",
label: i18n.t('customerquality.qualityAcceptanceDate'),
},
{
prop: "confirmDeliveryDate",
label: i18n.t('customerquality.confirmDeliveryDate'),
},
{
prop: "deliveryRequiredDate",
label: i18n.t('customerquality.deliveryRequiredDate'),
},
{
prop: "status",
label: i18n.t('customerquality.status'),
}
];
const tableBtn = [ const tableBtn = [
{ {
type: "edit", type: "edit",
@ -96,13 +125,13 @@ const tableBtn = [
type: "delete", type: "delete",
btnName: i18n.t('delete'), btnName: i18n.t('delete'),
}, },
{ // {
type: "configuration", // type: "configuration",
btnName: i18n.t('configuration'), // btnName: i18n.t('configuration'),
} // }
]; ];
export default { export default {
mixins: [basicPage], // mixins: [basicPage],
data() { data() {
return { return {
urlOptions: { urlOptions: {
@ -110,13 +139,14 @@ export default {
deleteURL: "/customerquality/qmsCustomerQualityProjectList", deleteURL: "/customerquality/qmsCustomerQualityProjectList",
exportURL: '/customerquality/qmsCustomerQualityProjectList/export' exportURL: '/customerquality/qmsCustomerQualityProjectList/export'
}, },
tableProps, tableData:[],
tableBtn,
productData: {}, productData: {},
dataForm:{ listQuery:{
limit: 999, limit: 999,
page:1 page: 1,
total:0
}, },
timeFormatter,
baseConfigShow:false, baseConfigShow:false,
searchOrEditTitle: "", searchOrEditTitle: "",
searchOrUpdateVisible: false, searchOrUpdateVisible: false,
@ -124,57 +154,8 @@ export default {
addOrEditTitle: '', addOrEditTitle: '',
addOrUpdateVisible: false, addOrUpdateVisible: false,
productOrUpdateVisible: false, productOrUpdateVisible: false,
qualityProjectListShow:false,
formConfig: [ formConfig: [
// {
// type: 'input',
// label: i18n.t('customerquality.customerName'),
// placeholder: i18n.t('customerquality.customerName'),
// param: 'customerName'
// },
// {
// type: 'select',
// label: i18n.t('customerquality.questionType'),
// placeholder: i18n.t('customerquality.questionType'),
// selectOptions: [
// {
// id: 0,
// name: ''
// },
// {
// id: 1,
// name: ''
// },
// {
// id: 2,
// name: ''
// },
// {
// id: 3,
// name: ''
// },
// {
// id: 4,
// name: '4'
// }
// ],
// param: 'questionType'
// },
// {
// type: 'select',
// label: i18n.t('basic.status'),
// placeholder: i18n.t('basic.status'),
// selectOptions: [
// {
// id: 0,
// name: ''
// },
// {
// id: 1,
// name: ''
// }
// ],
// param: 'status'
// },
{ {
type: "button", type: "button",
btnName: i18n.t('search'), btnName: i18n.t('search'),
@ -193,11 +174,35 @@ export default {
}; };
}, },
components: { components: {
qmsKnowledgeBaseAdd, customerQualityProjectListAdd,
baseConfig qualityProjectListShow
// baseConfig
},
mounted () {
this.getDataList();
}, },
methods: { methods: {
//search-bar //search-bar
getDataList() {
this.dataListLoading = true;
this.$http
.get(this.urlOptions.getDataListURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
handleProductCancel() { handleProductCancel() {
this.productOrUpdateVisible = false; this.productOrUpdateVisible = false;
this.productOrEditTitle = ""; this.productOrEditTitle = "";
@ -264,15 +269,14 @@ export default {
} }
}).catch(() => { }) }).catch(() => { })
}, },
handleClick(val) { handleDelete(val) {
if (val.type === "delete") { this.$confirm(`确定对[名称${val.productName}]进行删除操作?`, "提示", {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => { this.$http.delete(this.urlOptions.deleteURL, { data: [val.id] }).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message({ this.$message({
message: "操作成功", message: "操作成功",
@ -288,18 +292,19 @@ export default {
}); });
}) })
.catch(() => { }); .catch(() => { });
} else if (val.type === 'edit') { },
this.addOrUpdateVisible = true handleEdit(val) {
this.addOrEditTitle = this.$t('edit') this.addOrUpdateVisible = true
this.$nextTick(() => { this.addOrEditTitle = this.$t('edit')
this.$refs.addOrUpdate.init(val.data.id); this.$nextTick(() => {
}) this.$refs.addOrUpdate.init(val.id);
} else if (val.type === 'configuration') { })
this.baseConfigShow = true },
this.$nextTick(() => { handleShow(val) {
this.$refs.baseConfigOrList.init(val.data.id) this.qualityProjectListShow = true
}); this.$nextTick(() => {
} this.$refs.qualityProjectListShow.init(val)
})
}, },
// addOrUpdateHandle(productData) { // addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true; // this.addOrUpdateVisible = true;
@ -320,9 +325,10 @@ export default {
this.exportHandle() this.exportHandle()
break; break;
case "add": case "add":
this.addOrEditTitle = '新增' this.addOrUpdateVisible = true
this.addOrUpdateVisible = true; this.$nextTick(() => {
this.addOrUpdateHandle() this.$refs.addOrUpdate.init()
})
break; break;
default: default:
} }

View File

@ -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-14 10:08:05 * @LastEditTime: 2023-07-18 14:20:43
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -24,9 +24,11 @@
<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">
<customerQualityRequirementList-add ref="addOrUpdate" @refreshDataList="successSubmit"> <customerQualityRequirementList-add ref="addOrUpdate" @refreshDataList="successSubmit">
</customerQualityRequirementList-add> </customerQualityRequirementList-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>
<baseConfig ref="baseConfigOrList" v-if="baseConfigShow"></baseConfig>
<!-- <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">
<projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"> <projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
@ -56,6 +58,7 @@ import basicPage from "@/mixins/basic-page"
import customerquality from '@/filters/customerquality' import customerquality from '@/filters/customerquality'
import customerQualityRequirementListAdd from "./components/customerQualityRequirementList-add.vue" import customerQualityRequirementListAdd from "./components/customerQualityRequirementList-add.vue"
import i18n from "@/i18n" import i18n from "@/i18n"
import baseConfig from "./components/baseConfig"
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [ const tableProps = [
{ {
@ -83,6 +86,10 @@ const tableBtn = [
{ {
type: "delete", type: "delete",
btnName: i18n.t('delete'), btnName: i18n.t('delete'),
},
{
type: "configuration",
btnName: i18n.t('configuration'),
} }
]; ];
export default { export default {
@ -95,6 +102,7 @@ export default {
exportURL: '/customerquality/qmsCustomerQualityRequirementList/export' exportURL: '/customerquality/qmsCustomerQualityRequirementList/export'
}, },
tableProps, tableProps,
baseConfigShow:false,
tableBtn, tableBtn,
productData: {}, productData: {},
dataForm:{ dataForm:{
@ -166,7 +174,8 @@ export default {
}; };
}, },
components: { components: {
customerQualityRequirementListAdd customerQualityRequirementListAdd,
baseConfig
}, },
methods: { methods: {
//search-bar //search-bar
@ -196,12 +205,12 @@ export default {
// this.$refs.addOrUpdate.dataFormSubmitHandle(); // this.$refs.addOrUpdate.dataFormSubmitHandle();
// }, // },
// conditionSearchSubmit() {}, // conditionSearchSubmit() {},
conditionSearchSubmit(dataForm) { conditionSearchSubmit() {
// console.log(key); // console.log(key);
// console.log(key); // console.log(key);
this.listQuery.page = 1; this.listQuery.page = 1;
this.getDataList(); this.getDataList();
this.searchOrUpdateVisible = false; this.searchOrUpdateVisible = false
// console.log(11111); // console.log(11111);
// this.conditionSearchSubmit(); // this.conditionSearchSubmit();
}, },
@ -209,10 +218,6 @@ export default {
this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }, { this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }, {
...this.dataForm ...this.dataForm
}).then((res) => { }).then((res) => {
console.log(res)
// if (res !== 0) {
// return this.$message.error(res.msg)
// }
let fileName = '' let fileName = ''
const contentDisposition = res.headers['content-disposition'] const contentDisposition = res.headers['content-disposition']
if (contentDisposition) { if (contentDisposition) {
@ -266,6 +271,14 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id); this.$refs.addOrUpdate.init(val.data.id);
}); });
} else if (val.type === 'configuration') {
this.baseConfigShow = true
const obj = {
requirementListId:val.data.id
}
this.$nextTick(() => {
this.$refs.baseConfigOrList.init(obj)
});
} }
}, },
// addOrUpdateHandle(productData) { // addOrUpdateHandle(productData) {

View File

@ -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-14 13:58:32 * @LastEditTime: 2023-07-18 14:20:57
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -284,8 +284,11 @@ export default {
}) })
} else if (val.type === 'configuration') { } else if (val.type === 'configuration') {
this.baseConfigShow = true this.baseConfigShow = true
const obj = {
knowledgeBaseId: val.data.id
}
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.baseConfigOrList.init(val.data.id) this.$refs.baseConfigOrList.init(obj)
}); });
} }
}, },

View File

@ -1,281 +0,0 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-07-13 14:06:42
* @LastEditors: zhp
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<!-- 弹窗, 新增 / 修改 -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<qualityChange-add ref="addOrUpdate" @refreshDataList="successSubmit">
</qualityChange-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</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>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
import basicSearch from "@/mixins/basic-search"
import qualityChangeSearch from "./components/qualityChangeSearch.vue"
import qualityChangeAdd from "./components/qualityChange-add.vue"
import i18n from "@/i18n"
// import supplier from '@/filters/supplier'
const tableProps = [
{
prop: "code",
label: i18n.t('researchquality.code'),
},
{
prop: "registrationDate",
label: i18n.t('researchquality.registrationDate'),
},
{
prop: "changeSource",
label: i18n.t('researchquality.changeSource'),
},
{
prop: "owner",
label: i18n.t('researchquality.owner'),
},
{
prop: "category",
label: i18n.t('researchquality.category'),
},
{
prop: "title",
label: i18n.t('researchquality.title'),
},
{
prop: "currentStage",
label: i18n.t('researchquality.currentStage'),
},
{
prop: "productName",
label: i18n.t('researchquality.productName'),
},
{
prop: "qualityChangeStatus",
label: i18n.t('researchquality.qualityChangeStatus'),
},
{
prop: "temporaryChange",
label: i18n.t('researchquality.temporaryChange'),
}
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('t.edit'),
},
{
type: "delete",
btnName: i18n.t('t.delete'),
}
];
export default {
mixins: [basicPage, basicSearch],
data() {
return {
urlOptions: {
getDataListURL: "/researchquality/qmsQualityChange/page",
deleteURL: "/researchquality/qmsQualityChange",
exportURL: '/researchquality/qmsQualityChange',
// getSupplierTypeListURL: '/supplier/qmsSupplierType/page'
// submitURL: '/supplier/qmsSupplierType'
},
tableProps,
ment: '',
tableBtn,
productData: {},
dataForm:{
limit: 999,
page:1
},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain: true
},
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
plain: true
}
],
};
},
components: {
qualityChangeSearch,
// supplierProduct,
qualityChangeAdd
},
// mounted () {
// this.getData();
// },
methods: {
//search-bar
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
handleCurrentChange(val) {
console.log(val);
this.productData = val.newVal ? val.newVal : {}
},
setCurrent(index) {
this.$refs.palletTable1.setCurrent("palletTable", index);
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
// handleConfirm() {
// this.$refs.addOrUpdate.dataFormSubmitHandle();
// },
// conditionSearchSubmit() {},
conditionSearchSubmit(dataForm) {
// console.log(key);
// console.log(key);
this.listQuery.supplierName = dataForm.supplierName
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList()
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
// addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(productData);
// });
// },
buttonClick(val) {
console.log(val)
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined
this.listQuery.supplierStatus = val.supplierStatus ? val.supplierStatus : undefined
this.listQuery.supplierTypeId = val.supplierTypeId ? val.supplierTypeId : undefined
this.listQuery.ment = this.ment ? this.ment : undefined
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();
break;
case "export":
// this.listQuery.paramCode = val.paramCode;
this.exportHandle()
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
}
},
},
};
</script>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-20 15:25:08 * @LastEditTime: 2023-07-17 10:23:54
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -10,7 +10,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -18,26 +18,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -53,7 +53,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -61,7 +61,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -69,31 +69,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -101,15 +104,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -119,7 +122,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-20 15:28:55 * @LastEditTime: 2023-07-17 10:23:45
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -11,7 +11,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')"> <el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')"> <el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id"> <el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -19,26 +19,26 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')"> <el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime" :placeholder="$t('code.inspectionTime')" <el-date-picker v-model="dataForm.inspectionTime" type="datetime"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> :placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')"> <el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input> <el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')"> <el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input> <el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')"> <el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')"> <el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -54,7 +54,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')"> <el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')"> <el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -62,7 +62,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')"> <el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')"> <el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -70,31 +70,34 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')"> <el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')"></el-input> <el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')"> <el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity" :placeholder="$t('code.inspectionQuantity')"></el-input> <el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')"> <el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input> <el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')"> <el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')"></el-input> <el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')"> <el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')"> <el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select>
@ -102,15 +105,15 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')"> <el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')"> <el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in unitList" :key="item.id" :label="item.realName" :value="item.id"> <el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')"> <el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')"> <el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -120,7 +123,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')"> <el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')"> <el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id"> <el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -133,27 +136,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="critical" label="CR" label-width="50px"> <el-form-item prop="critical" label="CR" label-width="50px">
<el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalAccept" label="Accept"> <el-form-item prop="criticalAccept" label="Accept">
<el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalReject" label="Reject" label-width="60px"> <el-form-item prop="criticalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.criticalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.criticalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -161,27 +166,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="major" label="MA" label-width="50px"> <el-form-item prop="major" label="MA" label-width="50px">
<el-input v-model="GBTDataForm.major" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.major" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorAccept" label="Accept"> <el-form-item prop="majorAccept" label="Accept">
<el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorReject" label="Reject" label-width="60px"> <el-form-item prop="majorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="majorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.majorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.majorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -189,27 +196,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="minor" label="MI" label-width="50px"> <el-form-item prop="minor" label="MI" label-width="50px">
<el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorAccept" label="Accept"> <el-form-item prop="minorAccept" label="Accept">
<el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorReject" label="Reject" label-width="60px"> <el-form-item prop="minorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="minorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.minorDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.minorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -217,27 +226,29 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="4"> <el-col :span="4">
<el-form-item prop="total" label="total" label-width="50px"> <el-form-item prop="total" label="total" label-width="50px">
<el-input v-model="GBTDataForm.total" placeholder="CR"></el-input> <el-input v-model="GBTDataForm.total" placeholder="CR"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalAccept" label="Accept"> <el-form-item prop="totalAccept" label="Accept">
<el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input> <el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalReject" label="Reject" label-width="60px"> <el-form-item prop="totalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input> <el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalNumber" :label="$t('code.defectsNumber')"> <el-form-item prop="totalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')"></el-input> <el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')"> <el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.totalDefectiveNumber" :placeholder="$t('code.defectiveQuantity')"> <el-input v-model="GBTDataForm.totalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -245,7 +256,6 @@
</el-form> </el-form>
</div> </div>
</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";
@ -481,7 +491,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.samplingPlanList = res.data this.samplingPlanList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
@ -493,7 +503,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.userList = res.data this.userList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
@ -505,7 +515,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.productList = res.data this.productList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
@ -521,7 +531,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.unitList = res.data this.unitList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
@ -533,7 +543,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.supplierList = res.data this.supplierList = res.data.list
} }
}) })
.catch(() => { .catch(() => {
@ -545,7 +555,7 @@ export default {
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code === 0) { if (res.code === 0) {
console.log(res); console.log(res);
this.factoryList = res.data this.factoryList = res.data.list
} }
}) })
.catch(() => { .catch(() => {

View File

@ -14,14 +14,15 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<incomingInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></incomingInspection-add> <incomingInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></incomingInspection-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<incomingInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></incomingInspection-search> <incomingInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</incomingInspection-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">
<el-col :span="12"> <el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel"> <el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-06-12 13:22:50 * @Date: 2023-06-12 13:22:50
* @LastEditTime: 2023-06-20 15:35:49 * @LastEditTime: 2023-07-17 10:28:46
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -21,14 +21,14 @@
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel"> @confirm="handleConfirm" :before-close="handleCancel">
<purchaseRegistration-add ref="addOrUpdate" @successSubmit="successSubmit"> <purchaseRegistration-add ref="addOrUpdate" @successSubmit="successSubmit">
</purchaseRegistration-add> </purchaseRegistration-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" <base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel"> @cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<purchaseRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"> <purchaseRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</purchaseRegistration-search> </purchaseRegistration-search>
<el-row slot="footer" type="flex" justify="end"> <el-row slot="footer" type="flex" justify="end">
@ -49,11 +49,13 @@
</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 purchaseRegistrationSearch from "./components/purchaseRegistrationSearch.vue"; import purchaseRegistrationSearch from "./components/purchaseRegistrationSearch.vue"
import purchaseRegistrationAdd from "./components/purchaseRegistration-add.vue"; import purchaseRegistrationAdd from "./components/purchaseRegistration-add.vue"
import i18n from "@/i18n"; import i18n from "@/i18n"
import incoming from "@/filters/incoming";
// import i18n from "@/i18n"; // import i18n from "@/i18n";
const tableProps = [ const tableProps = [
{ {
@ -75,10 +77,12 @@ const tableProps = [
{ {
prop: "upload", prop: "upload",
label: i18n.t('code.upload'), label: i18n.t('code.upload'),
filter: incoming('upload'),
}, },
{ {
prop: "judgmentResult", prop: "judgmentResult",
label: i18n.t('code.judgmentResult'), label: i18n.t('code.judgmentResult'),
filter: incoming('judgmentResult'),
}, },
{ {
prop: "productCode", prop: "productCode",

View File

@ -1,13 +1,13 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-31 14:12:10 * @Date: 2023-01-31 14:12:10
* @LastEditTime: 2023-07-13 10:00:19 * @LastEditTime: 2023-07-17 16:14:43
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<span> <span>
<el-button type="text" @click="getExperienceDetail">{{ $t('oss.type1') }} </el-button> <el-button type="text" @click="getExperienceDetail">{{ $t('detail') }} </el-button>
</span> </span>
</template> </template>
@ -24,7 +24,7 @@ export default {
methods: { methods: {
getExperienceDetail() { getExperienceDetail() {
this.$router.push({ this.$router.push({
name: 'laboratory-qmsLaboratoryTrainExperience', name: 'laboratory-qmsLaboratoryEmployeeResume',
query: { query: {
laboratoryTesterId: this.injectData.userId laboratoryTesterId: this.injectData.userId
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-05-15 14:27:30 * @Date: 2023-05-15 14:27:30
* @LastEditTime: 2023-07-13 10:00:09 * @LastEditTime: 2023-07-17 16:13:47
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -14,7 +14,7 @@
--> -->
<template> <template>
<span> <span>
<el-button type="text" @click="getInspectionDetail">{{ $t('oss.type1') }} </el-button> <el-button type="text" @click="getInspectionDetail">{{ $t('detail') }} </el-button>
</span> </span>
</template> </template>
@ -31,7 +31,7 @@ export default {
methods: { methods: {
getInspectionDetail() { getInspectionDetail() {
this.$router.push({ this.$router.push({
name: 'laboratory-qmsLaboratoryTesterInspectionQualification', name: 'laboratory-qmsLaboratoryTrainExperience',
query: { query: {
laboratoryTesterId: this.injectData.userId laboratoryTesterId: this.injectData.userId
} }

View File

@ -1,13 +1,13 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-31 14:12:10 * @Date: 2023-01-31 14:12:10
* @LastEditTime: 2023-07-13 10:00:12 * @LastEditTime: 2023-07-17 16:07:15
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<span> <span>
<el-button type="text" @click="getInspectionDetail">{{ $t('oss.type1') }} </el-button> <el-button type="text" @click="getInspectionDetail">{{ $t('detail') }} </el-button>
</span> </span>
</template> </template>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-05-15 14:35:31 * @LastEditTime: 2023-07-18 10:14:38
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -19,10 +19,10 @@
<el-input v-model="dataForm.responsibilitie" :placeholder="$t('laboratory.responsibilitie')"> <el-input v-model="dataForm.responsibilitie" :placeholder="$t('laboratory.responsibilitie')">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="expectedReturnDate" :label="$t('gage.expectedReturnDate')"> <el-form-item :label="$t('laboratory.timeSlot')" prop="timeSlot">
<el-date-picker v-model="dataForm.expectedReturnDate" type="datetime" :placeholder="$t('gage.expectedReturnDate')" <el-date-picker v-model="dataForm.timeSlot" size="small" type="datetimerange" format='yyyy-MM-dd HH:mm:ss'
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> valueFormat='yyyy-MM-ddTHH:mm:ss' :start-placeholder="$t('gage.startTime')"
</el-date-picker> :end-placeholder="$t('gage.endTime')" :range-separator="$t('gage.to')" clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -35,8 +35,8 @@ export default {
data() { data() {
return { return {
urlOptions: { urlOptions: {
submitURL: "/gage/qmsLaboratoryEmployeeResume", submitURL: "/laboratory/qmsLaboratoryEmployeeResume",
infoURL: "/gage/qmsLaboratoryEmployeeResume/{ id }", infoURL: "/laboratory/qmsLaboratoryEmployeeResume/{ id }",
dictionaryDetailList: '/mutual/qmsDataDictionaryDetail/page', dictionaryDetailList: '/mutual/qmsDataDictionaryDetail/page',
getUserList: '/sys/user/page' getUserList: '/sys/user/page'
// getTeamListURL: '/basic/qmsTeam/gape', // getTeamListURL: '/basic/qmsTeam/gape',
@ -91,13 +91,13 @@ export default {
department:null, department:null,
endDate: null, endDate: null,
id: null, id: null,
timeSlot:undefined,
laboratoryTesterId: null, laboratoryTesterId: null,
position: null, position: null,
remark: null, remark: null,
responsibilitie: null, responsibilitie: null,
startDate: null, startDate: null,
id: null, id: null,
laboratoryTesterId:null,
}, },
}; };
}, },
@ -133,13 +133,14 @@ export default {
}, },
methods: { methods: {
init(data) { init(data) {
console.log(data)
this.dataForm.id = data.id ? data.id : '' this.dataForm.id = data.id ? data.id : ''
this.dataForm.laboratoryTesterId = data.laboratoryTesterId ? data.laboratoryTesterId : '' this.dataForm.laboratoryTesterId = data.laboratoryTesterId ? data.laboratoryTesterId : ''
// console.log(11111) // console.log(11111)
// this.dataForm.dictTypeId = dictTypeId || ""; // this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields(); this.$refs["dataForm"].resetFields()
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo()
} else { } else {
@ -183,7 +184,7 @@ export default {
// //
getInfo() { getInfo() {
this.$http this.$http
.get(`/gage/qmsLaboratoryEmployeeResume/${this.dataForm.id}`) .get(`/laboratory/qmsLaboratoryEmployeeResume/${this.dataForm.id}`)
.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);
@ -195,6 +196,31 @@ export default {
}) })
.catch(() => { }) .catch(() => { })
}, },
dataFormSubmit() {
this.dataForm.endDate = this.dataForm.timeSlot ? this.dataForm.timeSlot[1] :undefined
this.dataForm.startDate = this.dataForm.timeSlot ? this.dataForm.timeSlot[0] : undefined
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.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(
function () { function () {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-05-12 16:45:00 * @LastEditTime: 2023-07-17 16:18:56
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -36,72 +36,11 @@ export default {
userList: [], userList: [],
gageTypeList:[], gageTypeList:[],
departmentList: [], departmentList: [],
processList: [
{
id: 0,
name: '未审核'
},
{
id: 1,
name: '不同意'
},
{
id: 2,
name: '同意'
}
],
listQuery: {
limit: 999,
gape: 1
},
gageStatusList: [
{
id: 0,
name:'在用'
},
{
id: 1,
name: '备用'
},
{
id: 2,
name: '停用'
},
{
id: 3,
name: '封存'
},
{
id: 4,
name: '报废'
},
{
id: 5,
name: '降级使用'
}
],
certificateTypeList: [
{
id: 0,
name: '检定证书'
},
{
id: 1,
name: '校准证书'
},
{
id: 2,
name: '检测报告'
},
{
id: 3,
name: '自校报告'
}
],
visible: false, visible: false,
dataForm: { dataForm: {
id: null, id: null,
userId:null userId: null,
remark:null,
}, },
}; };
}, },

View File

@ -21,7 +21,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item prop="validDate" :label="$t('laboratory.validDate')"> <el-form-item prop="validDate" :label="$t('laboratory.validDate')">
<el-date-picker v-model="dataForm.expectedReturnDate" type="datetime" :placeholder="$t('laboratory.validDate')" <el-date-picker v-model="dataForm.validDate" type="datetime" :placeholder="$t('laboratory.validDate')"
format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'> format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@ -66,6 +66,7 @@ export default {
code:null, code:null,
getDate: null, getDate: null,
id: null, id: null,
validDate:null,
laboratoryTesterId: null, laboratoryTesterId: null,
name: null, name: null,
qualificationDescription: null, qualificationDescription: null,

View File

@ -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 10:01:15 * @LastEditTime: 2023-07-18 10:52:15
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -9,9 +9,6 @@
<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="6" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</SearchBar> </SearchBar>
<base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData"> <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn" <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@ -56,11 +53,6 @@ import employeeResumeDetail from "./components/employeeResumeDetail.vue"
import basicSearch from "@/mixins/basic-search" import basicSearch from "@/mixins/basic-search"
import i18n from "@/i18n" import i18n from "@/i18n"
const tableProps = [ const tableProps = [
{
prop: 'userCode',
label: i18n.t("laboratory.userCode"),
align: 'center'
},
{ {
prop: 'userName', prop: 'userName',
label: i18n.t("laboratory.userName"), label: i18n.t("laboratory.userName"),
@ -118,15 +110,13 @@ export default {
searchOrEditTitle: '', searchOrEditTitle: '',
searchOrUpdateVisible: false, searchOrUpdateVisible: false,
formConfig: [ formConfig: [
// { {
// type: "", type: 'input',
// label: i18n.t("params.paramCode"), label: i18n.t('basic.name'),
// placeholder: i18n.t("params.paramCode"), placeholder: i18n.t('basic.name'),
// param: "paramCode", param: 'name',
// }, clearable: true
// { },
// type: "separate",
// },
{ {
type: "button", type: "button",
btnName: i18n.t('search'), btnName: i18n.t('search'),
@ -139,13 +129,6 @@ export default {
name: "add", name: "add",
color: "success", color: "success",
plain: true plain: true
},
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
plain: true
} }
], ],
}; };
@ -213,7 +196,7 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case "search": case "search":
// this.listQuery.paramCode = val.paramCode; this.listQuery.name = val.name ?val.name : null
this.listQuery.page = 1 this.listQuery.page = 1
this.getDataList(); this.getDataList();
break; break;

View File

@ -1,11 +1,7 @@
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button>
</el-badge>
</search-bar>
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.page" :page="listQuery.page"
@ -28,7 +24,7 @@
@pagination="getDataList" @pagination="getDataList"
/> />
<!-- 弹窗, 条件搜索--> <!-- 弹窗, 条件搜索-->
<base-dialog <!-- <base-dialog
:dialogTitle="searchsTitle" :dialogTitle="searchsTitle"
:dialogVisible="searchsVisible" :dialogVisible="searchsVisible"
@cancel="searchsCancel" @cancel="searchsCancel"
@ -36,7 +32,7 @@
:before-close="searchsCancel" :before-close="searchsCancel"
> >
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
</base-dialog> </base-dialog> -->
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<base-dialog <base-dialog
:dialogTitle="addOrEditTitle" :dialogTitle="addOrEditTitle"
@ -54,7 +50,7 @@
<script> <script>
import AddOrUpdate from "./components/eightDisciplineList-detail"; import AddOrUpdate from "./components/eightDisciplineList-detail";
import Searchs from "./components/searchs1"; // import Searchs from "./components/searchs1";
import basicPage from "@/mixins/basic-page"; import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter"; import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter"; import { timeFormatter } from "@/filters/code-filter";
@ -81,11 +77,11 @@ const tableProps = [
label: "关键字", label: "关键字",
align: "center", align: "center",
}, },
{ // {
prop: "associationNumber", // prop: "associationNumber",
label: "关联次数", // label: "",
align: "center", // align: "center",
}, // },
]; ];
const tableBtn = [ const tableBtn = [
{ {
@ -104,7 +100,37 @@ export default {
tableProps, tableProps,
tableBtn, tableBtn,
tableData: [], tableData: [],
optionArrUrl: ["/basic/qmsProduct/page","/code/problemType/page"],
formConfig: [ formConfig: [
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
{
type: "select",
label: "产品",
selectOptions: [],
param: "productId",
defaultSelect: "",
labelField: "productName",
filterable: true,
},
{
type: "select",
label: "缺陷",
selectOptions: [],
param: "defectId",
defaultSelect: "",
filterable: true,
},
{
type: "input",
label: "关键字",
placeholder: "关键字",
param: "description",
},
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "搜索",
@ -116,9 +142,30 @@ export default {
}, },
components: { components: {
AddOrUpdate, AddOrUpdate,
Searchs, // Searchs,
},
created() {
this.getArr();
}, },
methods: { methods: {
getArr() {
this.optionArrUrl.forEach((item, index) => {
this.$http
.get(item, {
params: {
page: 1,
limit: 500,
},
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.formConfig[index + 1].selectOptions = res.data.list;
})
.catch(() => {});
});
},
// //
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;
@ -146,15 +193,14 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case "search": case "search":
this.listQuery = {};
this.listQuery.page = 1; this.listQuery.page = 1;
this.listQuery.limit = 10; this.listQuery.limit = 10;
this.listQuery.total = 1; this.listQuery.title = val.title;
this.listQuery.description = val.description;
this.listQuery.defectId = val.defectId;
this.listQuery.productId = val.productId;
this.getDataList(); this.getDataList();
break; break;
case "export":
this.exportHandle("工厂管理");
break;
default: default:
console.log(val); console.log(val);
} }

View File

@ -83,7 +83,7 @@ export default {
series: [], series: [],
}; };
this.dataList.forEach((item) => { this.dataList.forEach((item) => {
const i = option.series.findIndex((c) => c.id === item.productTypeId); const i = option.series.findIndex((c) => c.id === (this.eType?item.problemTypeId:item.productTypeId));
if (i >= 0) { if (i >= 0) {
option.series[i].data.push(this.eType?item.problemTypeNumber:item.productTypeNumber); option.series[i].data.push(this.eType?item.problemTypeNumber:item.productTypeNumber);
} else { } else {
@ -104,7 +104,6 @@ export default {
option.series.push(obj); option.series.push(obj);
} }
}) })
console.log(option.series)
this.lineChart = echarts.init(document.getElementById("lineChart")) this.lineChart = echarts.init(document.getElementById("lineChart"))
this.lineChart.setOption(option); this.lineChart.setOption(option);
window.addEventListener("resize", () => { window.addEventListener("resize", () => {
@ -117,10 +116,10 @@ export default {
<style lang="scss"> <style lang="scss">
.mod-demo-echarts { .mod-demo-echarts {
> .el-row { // > .el-row {
.el-col { // .el-col {
} // }
} // }
.chart-box { .chart-box {
min-height: 400px; min-height: 400px;
} }

View File

@ -0,0 +1,49 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-07-17 10:16:41
* @LastEditors: zwq
* @Description:
-->
<template>
<span>
<el-avatar
v-if="injectData.eightDisciplineStatus > injectData.num"
size="small"
style="background: #409EFF;"
icon="el-icon-check"
></el-avatar>
<el-avatar
v-else size="small"
icon="el-icon-close"
></el-avatar>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({}),
},
},
methods: {
//
// emitClick () {
// //
// const routeParams = {
// routeName: `${this.$route.name}__${this.injectData.id}`,
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`,
// path: 'sys/dict-data',
// params: {
// dictTypeId: this.injectData.id
// }
// }
// //
// addDynamicRoute(routeParams, this.$router)
// }
},
};
</script>

View File

@ -1,11 +1,11 @@
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> <search-bar
<el-badge :value="5" class="item"> :formConfigs="formConfig"
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> ref="searchBarForm"
</el-badge> @headBtnClick="buttonClick"
</search-bar> />
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.page" :page="listQuery.page"
@ -28,7 +28,7 @@
@pagination="getDataList" @pagination="getDataList"
/> />
<!-- 弹窗, 条件搜索--> <!-- 弹窗, 条件搜索-->
<base-dialog <!-- <base-dialog
:dialogTitle="searchsTitle" :dialogTitle="searchsTitle"
:dialogVisible="searchsVisible" :dialogVisible="searchsVisible"
@cancel="searchsCancel" @cancel="searchsCancel"
@ -36,7 +36,7 @@
:before-close="searchsCancel" :before-close="searchsCancel"
> >
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
</base-dialog> </base-dialog> -->
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<base-dialog <base-dialog
:dialogTitle="addOrEditTitle" :dialogTitle="addOrEditTitle"
@ -44,7 +44,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width=80% width="80%"
> >
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog> </base-dialog>
@ -54,7 +54,7 @@
<script> <script>
import AddOrUpdate from "./components/eightDisciplineList-detail"; import AddOrUpdate from "./components/eightDisciplineList-detail";
import Searchs from "./components/searchs"; // import Searchs from "./components/searchs";
import basicPage from "@/mixins/basic-page"; import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter"; import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter"; import { timeFormatter } from "@/filters/code-filter";
@ -93,11 +93,11 @@ const tableProps = [
label: i18n.t("code.description"), label: i18n.t("code.description"),
align: "center", align: "center",
}, },
{ // {
prop: "userName", // prop: "userName",
label: "启动人", // label: "",
align: "center", // align: "center",
}, // },
{ {
prop: "eightDisciplineStatus", prop: "eightDisciplineStatus",
label: "步骤", label: "步骤",
@ -112,6 +112,44 @@ const tableBtn = [
}, },
]; ];
const eightDisciplineStatusArr = [
{
name: "D0",
id: 0,
},
{
name: "D1",
id: 1,
},
{
name: "D2",
id: 2,
},
{
name: "D3",
id: 3,
},
{
name: "D4",
id: 4,
},
{
name: "D5",
id: 5,
},
{
name: "D6",
id: 6,
},
{
name: "D7",
id: 7,
},
{
name: "D8",
id: 8,
},
];
export default { export default {
mixins: [basicPage], mixins: [basicPage],
data() { data() {
@ -122,8 +160,52 @@ export default {
}, },
tableProps, tableProps,
tableBtn, tableBtn,
eightDisciplineStatusArr,
tableData: [], tableData: [],
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"],
formConfig: [ formConfig: [
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
{
type: "select",
label: "客户",
selectOptions: [],
param: "customId",
defaultSelect: "",
labelField: "customerName",
filterable: true,
},
{
type: "select",
label: "产品",
selectOptions: [],
param: "productId",
defaultSelect: "",
labelField: "productName",
filterable: true,
},
{
type: "select",
label: "步骤",
selectOptions: eightDisciplineStatusArr,
param: "eightDisciplineStatus",
defaultSelect: "",
filterable: true,
},
{
type: "datePicker",
label: "日期",
dateType: "date",
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-ddTHH:mm:ss",
placeholder: "日期",
param: "occurrenceDate",
width: 170,
},
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "搜索",
@ -135,9 +217,30 @@ export default {
}, },
components: { components: {
AddOrUpdate, AddOrUpdate,
Searchs, // Searchs,
},
created() {
this.getArr();
}, },
methods: { methods: {
getArr() {
this.optionArrUrl.forEach((item, index) => {
this.$http
.get(item, {
params: {
page: 1,
limit: 500,
},
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.formConfig[index + 1].selectOptions = res.data.list;
})
.catch(() => {});
});
},
// //
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;
@ -165,15 +268,15 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case "search": case "search":
this.listQuery = {};
this.listQuery.page = 1; this.listQuery.page = 1;
this.listQuery.limit = 10; this.listQuery.limit = 10;
this.listQuery.total = 1; this.listQuery.title = val.title;
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus;
this.listQuery.customId = val.customId;
this.listQuery.productId = val.productId;
this.listQuery.occurrenceDate = val.occurrenceDate;
this.getDataList(); this.getDataList();
break; break;
case "export":
this.exportHandle("工厂管理");
break;
default: default:
console.log(val); console.log(val);
} }

View File

@ -1,11 +1,7 @@
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button>
</el-badge>
</search-bar>
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.page" :page="listQuery.page"
@ -28,7 +24,7 @@
@pagination="getDataList" @pagination="getDataList"
/> />
<!-- 弹窗, 条件搜索--> <!-- 弹窗, 条件搜索-->
<base-dialog <!-- <base-dialog
:dialogTitle="searchsTitle" :dialogTitle="searchsTitle"
:dialogVisible="searchsVisible" :dialogVisible="searchsVisible"
@cancel="searchsCancel" @cancel="searchsCancel"
@ -36,7 +32,7 @@
:before-close="searchsCancel" :before-close="searchsCancel"
> >
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
</base-dialog> </base-dialog> -->
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<base-dialog <base-dialog
:dialogTitle="addOrEditTitle" :dialogTitle="addOrEditTitle"
@ -44,7 +40,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width=80% width="80%"
> >
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog> </base-dialog>
@ -54,7 +50,8 @@
<script> <script>
import AddOrUpdate from "./components/eightDisciplineList-detail"; import AddOrUpdate from "./components/eightDisciplineList-detail";
import Searchs from "./components/searchs"; // import Searchs from "./components/searchs";
import processStatus from "./components/processStatus"
import basicPage from "@/mixins/basic-page"; import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter"; import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter"; import { timeFormatter } from "@/filters/code-filter";
@ -85,42 +82,58 @@ const tableProps = [
{ {
prop: "D1", prop: "D1",
label: "D1", label: "D1",
num: 1,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D2", prop: "D2",
label: "D2", label: "D2",
num: 2,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D3", prop: "D3",
label: "D3", label: "D3",
num: 3,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D4", prop: "D4",
label: "D4", label: "D4",
num: 4,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D5", prop: "D5",
label: "D5", label: "D5",
num: 5,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D6", prop: "D6",
label: "D6", label: "D6",
num: 6,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D7", prop: "D7",
label: "D7", label: "D7",
num: 7,
align: "center", align: "center",
subcomponent: processStatus,
}, },
{ {
prop: "D8", prop: "D8",
label: "D8", label: "D8",
num: 8,
align: "center", align: "center",
subcomponent: processStatus,
}, },
]; ];
const tableBtn = [ const tableBtn = [
@ -130,6 +143,44 @@ const tableBtn = [
}, },
]; ];
const eightDisciplineStatusArr = [
{
name: "D0",
id: 0,
},
{
name: "D1",
id: 1,
},
{
name: "D2",
id: 2,
},
{
name: "D3",
id: 3,
},
{
name: "D4",
id: 4,
},
{
name: "D5",
id: 5,
},
{
name: "D6",
id: 6,
},
{
name: "D7",
id: 7,
},
{
name: "D8",
id: 8,
},
];
export default { export default {
mixins: [basicPage], mixins: [basicPage],
data() { data() {
@ -140,8 +191,52 @@ export default {
}, },
tableProps, tableProps,
tableBtn, tableBtn,
eightDisciplineStatusArr,
tableData: [], tableData: [],
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"],
formConfig: [ formConfig: [
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
{
type: "select",
label: "客户",
selectOptions: [],
param: "customId",
defaultSelect: "",
labelField: "customerName",
filterable: true,
},
{
type: "select",
label: "产品",
selectOptions: [],
param: "productId",
defaultSelect: "",
labelField: "productName",
filterable: true,
},
{
type: "select",
label: "步骤",
selectOptions: eightDisciplineStatusArr,
param: "eightDisciplineStatus",
defaultSelect: "",
filterable: true,
},
{
type: "datePicker",
label: "日期",
dateType: "date",
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-ddTHH:mm:ss",
placeholder: "日期",
param: "occurrenceDate",
width: 170,
},
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "搜索",
@ -153,9 +248,31 @@ export default {
}, },
components: { components: {
AddOrUpdate, AddOrUpdate,
Searchs, processStatus,
// Searchs,
},
created() {
this.getArr();
}, },
methods: { methods: {
getArr() {
this.optionArrUrl.forEach((item, index) => {
this.$http
.get(item, {
params: {
page: 1,
limit: 500,
},
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.formConfig[index + 1].selectOptions = res.data.list;
})
.catch(() => {});
});
},
// //
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;
@ -183,15 +300,15 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case "search": case "search":
this.listQuery = {};
this.listQuery.page = 1; this.listQuery.page = 1;
this.listQuery.limit = 10; this.listQuery.limit = 10;
this.listQuery.total = 1; this.listQuery.title = val.title;
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus;
this.listQuery.customId = val.customId;
this.listQuery.productId = val.productId;
this.listQuery.occurrenceDate = val.occurrenceDate;
this.getDataList(); this.getDataList();
break; break;
case "export":
this.exportHandle("工厂管理");
break;
default: default:
console.log(val); console.log(val);
} }

View File

@ -1,11 +1,12 @@
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> <search-bar
<el-badge :value="5" class="item"> :isFold="true"
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> :formConfigs="formConfig"
</el-badge> ref="searchBarForm"
</search-bar> @headBtnClick="buttonClick"
/>
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.page" :page="listQuery.page"
@ -28,7 +29,7 @@
@pagination="getDataList" @pagination="getDataList"
/> />
<!-- 弹窗, 条件搜索--> <!-- 弹窗, 条件搜索-->
<base-dialog <!-- <base-dialog
:dialogTitle="searchsTitle" :dialogTitle="searchsTitle"
:dialogVisible="searchsVisible" :dialogVisible="searchsVisible"
@cancel="searchsCancel" @cancel="searchsCancel"
@ -36,7 +37,7 @@
:before-close="searchsCancel" :before-close="searchsCancel"
> >
<searchs ref="searchsRef" :show-obj=showObj @refreshDataList="searchsSubmit"></searchs> <searchs ref="searchsRef" :show-obj=showObj @refreshDataList="searchsSubmit"></searchs>
</base-dialog> </base-dialog> -->
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<base-dialog <base-dialog
:dialogTitle="addOrEditTitle" :dialogTitle="addOrEditTitle"
@ -44,7 +45,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width=80% width="80%"
> >
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog> </base-dialog>
@ -54,7 +55,7 @@
<script> <script>
import AddOrUpdate from "./components/eightDisciplineList-detail"; import AddOrUpdate from "./components/eightDisciplineList-detail";
import Searchs from "./components/searchs"; // import Searchs from "./components/searchs";
import basicPage from "@/mixins/basic-page"; import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter"; import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter"; import { timeFormatter } from "@/filters/code-filter";
@ -87,11 +88,11 @@ const tableProps = [
label: i18n.t("code.description"), label: i18n.t("code.description"),
align: "center", align: "center",
}, },
{ // {
prop: "userName", // prop: "userName",
label: "启动人", // label: "",
align: "center", // align: "center",
}, // },
]; ];
const tableBtn = [ const tableBtn = [
{ {
@ -100,6 +101,62 @@ const tableBtn = [
}, },
]; ];
const eightDisciplineStatusArr = [
{
name: "D0",
id: 0,
},
{
name: "D1",
id: 1,
},
{
name: "D2",
id: 2,
},
{
name: "D3",
id: 3,
},
{
name: "D4",
id: 4,
},
{
name: "D5",
id: 5,
},
{
name: "D6",
id: 6,
},
{
name: "D7",
id: 7,
},
{
name: "D8",
id: 8,
},
];
const roleArr = [
{
name: "启动人",
id: 1,
},
{
name: "分析人",
id: 2,
},
{
name: "负责人",
id: 3,
},
{
name: "处理人",
id: 4,
},
];
export default { export default {
mixins: [basicPage], mixins: [basicPage],
data() { data() {
@ -109,11 +166,65 @@ export default {
}, },
tableProps, tableProps,
tableBtn, tableBtn,
eightDisciplineStatusArr,
roleArr,
tableData: [], tableData: [],
showObj: { optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"],
role: true // showObj: {
}, // role: true
// },
formConfig: [ formConfig: [
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
{
type: "select",
label: "客户",
selectOptions: [],
param: "customId",
defaultSelect: "",
labelField: "customerName",
filterable: true,
},
{
type: "select",
label: "产品",
selectOptions: [],
param: "productId",
defaultSelect: "",
labelField: "productName",
filterable: true,
},
{
type: "select",
label: "步骤",
selectOptions: eightDisciplineStatusArr,
param: "eightDisciplineStatus",
defaultSelect: "",
filterable: true,
},
{
type: "select",
label: "角色",
selectOptions: roleArr,
param: "role",
defaultSelect: "",
filterable: true,
},
{
type: "datePicker",
label: "日期",
dateType: "date",
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-ddTHH:mm:ss",
placeholder: "日期",
param: "occurrenceDate",
width: 170,
},
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "搜索",
@ -125,9 +236,30 @@ export default {
}, },
components: { components: {
AddOrUpdate, AddOrUpdate,
Searchs, // Searchs,
},
created() {
this.getArr();
}, },
methods: { methods: {
getArr() {
this.optionArrUrl.forEach((item, index) => {
this.$http
.get(item, {
params: {
page: 1,
limit: 500,
},
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.formConfig[index + 1].selectOptions = res.data.list;
})
.catch(() => {});
});
},
// //
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;
@ -155,15 +287,16 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case "search": case "search":
this.listQuery = {};
this.listQuery.page = 1; this.listQuery.page = 1;
this.listQuery.limit = 10; this.listQuery.limit = 10;
this.listQuery.total = 1; this.listQuery.title = val.title;
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus;
this.listQuery.customId = val.customId;
this.listQuery.productId = val.productId;
this.listQuery.occurrenceDate = val.occurrenceDate;
this.listQuery.role = val.role;
this.getDataList(); this.getDataList();
break; break;
case "export":
this.exportHandle("工厂管理");
break;
default: default:
console.log(val); console.log(val);
} }

View File

@ -74,7 +74,7 @@
label: "日期", label: "日期",
dateType: "daterange", dateType: "daterange",
format: "yyyy-MM-dd", format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-ddTHH:mm:ss", valueFormat: "yyyy-MM-dd",
rangeSeparator: "-", rangeSeparator: "-",
startPlaceholder: "开始时间", startPlaceholder: "开始时间",
endPlaceholder: "结束时间", endPlaceholder: "结束时间",

View File

@ -2,15 +2,15 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-07-03 15:21:14 * @Date: 2023-07-03 15:21:14
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-07-04 08:53:10 * @LastEditTime: 2023-07-14 16:50:39
* @Description: * @Description:
--> -->
<template> <template>
<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">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<div style="height:20px;width:100%"></div> <div style="height: 20px; width: 100%"></div>
<el-row :gutter="4" style="margin-top:20px"> <el-row :gutter="4" style="margin-top: 20px">
<el-col :span="12" v-if="pieVisible"> <el-col :span="12" v-if="pieVisible">
<pie-chart <pie-chart
v-loading="pieLoading" v-loading="pieLoading"
@ -72,7 +72,7 @@ export default {
label: "日期", label: "日期",
dateType: "daterange", dateType: "daterange",
format: "yyyy-MM-dd", format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-ddTHH:mm:ss", valueFormat: "yyyy-MM-dd",
rangeSeparator: "-", rangeSeparator: "-",
startPlaceholder: "开始时间", startPlaceholder: "开始时间",
endPlaceholder: "结束时间", endPlaceholder: "结束时间",
@ -179,8 +179,8 @@ export default {
<style lang="scss"> <style lang="scss">
.mod-sys__user { .mod-sys__user {
> .el-row { > .el-row {
display:flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
.el-col { .el-col {
} }
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 15:06:16 * @LastEditTime: 2023-07-17 16:27:18
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -73,66 +73,66 @@ export default {
page: 1 page: 1
}, },
options: [{ options: [{
value: 0, value: '0',
label: '监控' label: '监控'
}, },
{ {
value: 1, value: '1',
label: '电芯来料检验' label: '电芯来料检验'
}, },
{ {
value: 2, value: '2',
label: 'IQC抽检' label: 'IQC抽检'
}, },
{ {
value: 3, value: '3',
label: 'IQC抽检2' label: 'IQC抽检2'
}, },
{ {
value: 4, value: '4',
label: '原料抽检' label: '原料抽检'
}, },
{ {
value: 5, value: '5',
label: '进货外观检验' label: '进货外观检验'
}, },
{ {
value: 6, value: '6',
label: '库内原料检验' label: '库内原料检验'
}, },
{ {
value: 7, value: '7',
label: '来料检验' label: '来料检验'
}, },
{ {
value: 8, value: '8',
label: '胶片' label: '胶片'
}, },
{ {
value: 9, value: '9',
label: '抽检' label: '抽检'
}, },
{ {
value: 10, value: '10',
label: '巡检' label: '巡检'
}, { }, {
value: 11, value: '11',
label: '首检' label: '首检'
}, },
{ {
value: 12, value: '12',
label: '末检' label: '末检'
}, },
{ {
value: 13, value: '13',
label: '实时监测' label: '实时监测'
}, },
{ {
value: 14, value: '14',
label: 'FQC抽检' label: 'FQC抽检'
}, },
{ {
value: 15, value: '15',
label: 'OQC抽检' label: 'OQC抽检'
}, },
], ],

View File

@ -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-12 14:57:28 * @LastEditTime: 2023-07-17 16:27:53
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -116,59 +116,59 @@ export default {
param: 'inspectionTypeId', param: 'inspectionTypeId',
selectOptions: [ selectOptions: [
{ {
id: 0, id: '0',
name: '监控' name: '监控'
}, },
{ {
id: 1, id: '1',
name: '电芯来料检验' name: '电芯来料检验'
}, },
{ {
id: 2, id: '2',
name: 'IQC抽检' name: 'IQC抽检'
}, },
{ {
id: 3, id: '3',
name: 'IQC抽检2' name: 'IQC抽检2'
}, },
{ {
id: 4, id: '4',
name: '原料抽检' name: '原料抽检'
}, },
{ {
id: 5, id: '5',
name: '进货外观检验' name: '进货外观检验'
}, },
{ {
id: 6, id: '6',
name: '库内原料检验' name: '库内原料检验'
}, },
{ {
id: 7, id: '7',
name: '来料检验' name: '来料检验'
}, },
{ {
id: 8, id: '8',
name: '胶片' name: '胶片'
}, },
{ {
id: 9, id: '9',
name: '抽检' name: '抽检'
}, },
{ {
id: 10, id: '10',
name: '巡检' name: '巡检'
}, },
{ {
id: 11, id: '11',
name: '首检' name: '首检'
}, },
{ {
id: 12, id: '12',
name: '末检' name: '末检'
}, },
{ {
id: 13, id: '13',
name: '实时监测' name: '实时监测'
}, },
{ {

View File

@ -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-14 09:53:37 * @LastEditTime: 2023-07-18 15:22:30
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -117,12 +117,6 @@ export default {
name: "add", name: "add",
color: "primary", color: "primary",
}, },
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: i18n.t('search'), btnName: i18n.t('search'),

View File

@ -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-14 09:53:46 * @LastEditTime: 2023-07-18 15:22:25
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -113,12 +113,6 @@ export default {
name: "add", name: "add",
color: "primary", color: "primary",
}, },
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: i18n.t('search'), btnName: i18n.t('search'),

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-01-11 09:24:58 * @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-20 15:34:33 * @LastEditTime: 2023-07-18 15:22:19
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -112,12 +112,6 @@ export default {
name: "add", name: "add",
color: "primary", color: "primary",
}, },
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: i18n.t('search'), btnName: i18n.t('search'),

View File

@ -0,0 +1,264 @@
<!--
* @Author: zhp
* @Date: 2023-07-18 10:25:03
* @LastEditTime: 2023-07-18 11:23:59
* @LastEditors: zhp
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<!-- 弹窗, 新增 / 修改 -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<!-- <product-add ref="addOrUpdate" @refreshDataList="successSubmit"></product-add> -->
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<characterShow ref="characterShowList" v-if="characterShowList" @refreshDataList="getDataList">
</characterShow>
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<product-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></product-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>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
// import basicSearch from "@/mixins/basic-search";
// import productSearch from "./components/productSearch.vue";
// import productAdd from "./components/product-add.vue";
import isHave from "./components/isHave.vue";
import characterShow from "./components/character-show.vue";
// import radio from "./components/radio.vue";
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "productCode",
label: i18n.t('basic.code'),
},
{
prop: "productName",
label: i18n.t('basic.name'),
},
{
prop: "productSpecs",
label: i18n.t('basic.specification'),
},
{
prop: "productTypeName",
label: i18n.t('basic.productTypeName'),
},
// {
// prop: "detail",
// label: i18n.t('basic.InspectionStage'),
// subcomponent: radio,
// },
{
prop: "inspectionPlan",
label: i18n.t('quality.inspectionPlan'),
subcomponent: isHave,
},
];
const tableBtn = [
{
type: "characteristics",
btnName: i18n.t('code.characteristics'),
}
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsProduct/page",
deleteURL: "/basic/qmsProduct",
exportURL: '/basic/qmsProduct/export',
getProductTypeURL: '/basic/qmsProductType/page'
},
tableProps,
tableBtn,
productData: {},
characterShowList:false,
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('basic.productCode'),
placeholder: i18n.t('basic.productCode'),
param: 'productName',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.productName'),
placeholder: i18n.t('basic.productName'),
param: 'productCode',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.specification'),
placeholder: i18n.t('basic.specification'),
param: 'productSpecs',
clearable: true
},
{
type: 'select',
label: i18n.t('code.inspectionPlan'),
placeholder: i18n.t('code.inspectionPlan'),
param: 'inspectionPlan',
selectOptions: [
{
id: '0',
name: '没有'
},
{
id: '1',
name: '有'
},
],
clearable: true,
filterable: true
},
{
type: 'select',
label: i18n.t('code.productType'),
placeholder: i18n.t('code.productType'),
param: 'productTypeId',
selectOptions: [],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
// productAdd
characterShow
},
mounted () {
this.getDict()
},
methods: {
//search-bar
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
setCurrent(index) {
this.$refs.palletTable1.setCurrent("palletTable", index);
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init()
});
},
// handleConfirm() {
// this.$refs.addOrUpdate.dataFormSubmitHandle();
// },
// conditionSearchSubmit() {},
// conditionSearchSubmit(dataForm) {
// // console.log(key);
// // console.log(key);
// this.listQuery.productName = dataForm.productName
// this.listQuery.productCode = dataForm.productCode
// this.listQuery.page = 1;
// this.getDataList()
// this.searchOrUpdateVisible = false;
// // console.log(11111);
// // this.conditionSearchSubmit();
// },
handleClick(val) {
if (val.type === 'characteristics') {
this.characterShowList = true
this.$nextTick(() => {
this.$refs.characterShowList.init(val.data.id)
})
}
},
getDict() {
this.$http
.get(this.urlOptions.getProductTypeURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
if (res.code == 0) {
this.formConfig[4].selectOptions = res.data.list.map((item) => {
return {
id:item.id,
name: item.productTypeName,
}
})
}
})
},
buttonClick(val) {
console.log(val);
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.productName = val.productName ? val.productName : null
this.listQuery.productCode = val.productCode ? val.productCode : null
this.listQuery.productTypeId = val.productTypeId ? val.productTypeId : null
this.listQuery.productSpecs = val.productSpecs ? val.productSpecs : null
this.listQuery.inspectionPlan = val.inspectionPlan ? val.inspectionPlan : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true
this.addOrUpdateHandle()
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-02-14 15:02:26 * @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 14:39:06 * @LastEditTime: 2023-07-19 15:53:12
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -37,7 +37,8 @@ export default {
return { return {
urlOptions: { urlOptions: {
submitURL: "/quality/qmsInspectionPosition", submitURL: "/quality/qmsInspectionPosition",
infoURL: "/quality/qmsInspectionPosition" infoURL: "/quality/qmsInspectionPosition",
getCodeURL: '/quality/qmsInspectionPosition/getCode'
}, },
options: [{ options: [{
value: 0, value: 0,
@ -94,21 +95,21 @@ export default {
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo()
} else { } else {
// this.getCode() this.getCode()
} }
}); });
}, },
// getCode() { getCode() {
// this.$http.post(this.urlOptions.getCodeURL) this.$http.post(this.urlOptions.getCodeURL)
// .then(({ data: res }) => { .then(({ data: res }) => {
// if (res.code === 0) { if (res.code === 0) {
// console.log(res); console.log(res);
// this.dataForm.customSamplingCode = res.data this.dataForm.inspectionPositionCode = res.data
// } }
// }) })
// .catch(() => { .catch(() => {
// }); });
// }, },
// //
getInfo() { getInfo() {
this.$http this.$http

View File

@ -0,0 +1,351 @@
<!--
* @Author: zhp
* @Date: 2023-07-18 10:25:03
* @LastEditTime: 2023-07-18 14:14:55
* @LastEditors: zhp
* @Description:
-->
<template>
<el-drawer title="特性" :visible.sync="drawer" size="70%">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<!-- 弹窗, 新增 / 修改 -->
<characterShowAdd ref="characterShowAddList" v-if="characterShowAddList" @refreshDataList="getDataList">
</characterShowAdd>
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<product-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></product-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>
</el-drawer>
</template>
<script>
import basicPage from "@/mixins/basic-page";
// import basicSearch from "@/mixins/basic-search";
// import productSearch from "./components/productSearch.vue";
import characterShowAdd from "./characterShow-add.vue";
import quality from '@/filters/quality'
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "processName",
label: i18n.t('researchquality.processName'),
},
{
prop: "productName",
label: i18n.t('basic.productName'),
},
{
prop: "inspectionType",
label: i18n.t('quality.inspectionType'),
filter: quality('inspectionType')
},
{
prop: "parameterCode",
label: i18n.t('quality.parameterCode'),
},
{
prop: "parameterName",
label: i18n.t('quality.parameterName'),
},
{
prop: "measuringToolsType",
label: i18n.t('quality.measuringToolsType'),
},
{
prop: "specifications",
label: i18n.t('quality.specifications'),
},
{
prop: "characteristicsType",
label: i18n.t('quality.characteristicsType'),
filter: quality('characteristicsType')
},
{
prop: "source",
label: i18n.t('quality.source'),
},
{
prop: "company",
label: i18n.t('quality.company'),
},
{
prop: "sampleSize",
label: i18n.t('quality.sampleSize'),
},
{
prop: "decimalDigits",
label: i18n.t('quality.decimalDigits'),
},
{
prop: "monitor",
label: i18n.t('quality.monitor'),
filter: quality('monitor')
},
{
prop: "analyzeDrawings",
label: i18n.t('quality.analyzeDrawings'),
},
{
prop: "upperSpecificationLimit",
label: i18n.t('quality.upperSpecificationLimit'),
},
{
prop: "specificationCenterline",
label: i18n.t('quality.specificationCenterline'),
},
{
prop: "specificationOffline",
label: i18n.t('quality.specificationOffline'),
},
{
prop: "targetCpk",
label: i18n.t('quality.targetCpk'),
},
{
prop: "targetPpk",
label: i18n.t('quality.targetPpk'),
},
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('edit'),
},
{
type: "delete",
btnName: i18n.t('delete'),
}
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/code/characteristics/page",
deleteURL: "/code/characteristics",
exportURL: '/code/characteristics/export',
// getProductTypeURL: '/basic/qmsProductType/page'
},
drawer:false,
tableProps,
characterShowAddList:false,
tableBtn,
productData: {},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: 'input',
// label: i18n.t('basic.productCode'),
// placeholder: i18n.t('basic.productCode'),
// param: 'name',
// clearable: true
// },
// {
// type: 'input',
// label: i18n.t('basic.productName'),
// placeholder: i18n.t('basic.productName'),
// param: 'code',
// clearable: true
// },
// {
// type: 'input',
// label: i18n.t('basic.specification'),
// placeholder: i18n.t('basic.specification'),
// param: 'code',
// clearable: true
// },
// {
// type: 'select',
// label: i18n.t('basic.inspectionPlan'),
// placeholder: i18n.t('basic.inspectionPlan'),
// param: 'code',
// selectOptions: [
// {
// id: '0',
// name: ''
// },
// {
// id: '1',
// name: ''
// },
// ],
// clearable: true,
// filterable: true
// },
// {
// type: 'select',
// label: i18n.t('code.productType'),
// placeholder: i18n.t('code.productType'),
// param: 'code',
// selectOptions: [],
// clearable: true,
// filterable: true
// },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: "success",
plain: true
}
],
};
},
components: {
// productAdd
characterShowAdd
},
mounted() {
// this.getDict()
},
methods: {
//search-bar
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
init(id) {
this.listQuery.productId = id || ""
// console.log(11111)
// this.dataForm.dictTypeId = dictTypeId || "";
this.drawer = true
this.$nextTick(() => {
// if (this.dataForm.id) {
this.getDataList()
// } else {
// this.getCode()
// }
});
},
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init()
});
},
// handleConfirm() {
// this.$refs.addOrUpdate.dataFormSubmitHandle();
// },
// conditionSearchSubmit() {},
conditionSearchSubmit(dataForm) {
// console.log(key);
// console.log(key);
this.listQuery.productName = dataForm.productName
this.listQuery.productCode = dataForm.productCode
this.listQuery.page = 1;
this.getDataList()
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对名称${val.data.productName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList()
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.characterShowAddList = true
const obj = {
productId: this.listQuery.productId,
id:val.data.id
}
this.$nextTick(() => {
this.$refs.characterShowAddList.init(obj)
});
}
},
// getDict() {
// this.$http
// .get(this.urlOptions.getProductTypeURL, {
// params: this.listQuery,
// })
// .then(({ data: res }) => {
// if (res.code == 0) {
// this.formConfig[4].selectOptions = res.data.list
// }
// })
// },
buttonClick(val) {
console.log(val);
switch (val.btnName) {
case "search":
this.listQuery.page = 1
this.getDataList()
break;
case "add":
this.characterShowAddList = true
const obj = {
productId:this.listQuery.productId
}
this.$nextTick(() => {
this.$refs.characterShowAddList.init(obj)
})
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@ -0,0 +1,380 @@
<!--
* @Author: zhp
* @Date: 2023-07-14 13:44:46
* @LastEditTime: 2023-07-18 15:01:40
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-drawer close-on-press-escape :title="$t('add')" :append-to-body="true" :before-close="handleClose"
:visible.sync="innerDrawer">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="productId" :label="$t('basic.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('basic.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="processId" :label="$t('researchquality.processName')">
<el-select v-model="dataForm.processId" :placeholder="$t('researchquality.processName')">
<el-option v-for="item in processList" :key="item.id" :label="item.processName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="measuringToolsType" :label="$t('quality.measuringToolsType')">
<el-select v-model="dataForm.measuringToolsType" :placeholder="$t('quality.measuringToolsType')">
<el-option v-for="item in gageTypeList" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="monitor" :label="$t('quality.monitor')">
<el-select v-model="dataForm.monitor" :placeholder="$t('quality.monitor')">
<el-option v-for="item in monitorList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="characteristicsType" :label="$t('quality.characteristicsType')">
<el-select v-model="dataForm.characteristicsType" :placeholder="$t('quality.characteristicsType')">
<el-option v-for="item in characteristicsTypeList" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('quality.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('quality.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="parameterCode" :label="$t('quality.parameterCode')">
<el-input v-model="dataForm.parameterCode" :placeholder="$t('quality.parameterCode')">
</el-input>
</el-form-item>
<el-form-item prop="parameterName" :label="$t('quality.parameterName')">
<el-input v-model="dataForm.parameterName" :placeholder="$t('quality.parameterName')">
</el-input>
</el-form-item>
<el-form-item prop="specifications" :label="$t('quality.specifications')">
<el-input v-model="dataForm.specifications" :placeholder="$t('quality.specifications')">
</el-input>
</el-form-item>
<el-form-item prop="source" :label="$t('quality.source')">
<el-input v-model="dataForm.source" :placeholder="$t('quality.source')">
</el-input>
</el-form-item>
<el-form-item prop="company" :label="$t('quality.company')">
<el-input v-model="dataForm.company" :placeholder="$t('quality.company')">
</el-input>
</el-form-item>
<el-form-item prop="decimalDigits" :label="$t('quality.decimalDigits')">
<el-input v-model="dataForm.decimalDigits" :placeholder="$t('quality.decimalDigits')">
</el-input>
</el-form-item>
<el-form-item prop="sampleSize" :label="$t('quality.sampleSize')">
<el-input v-model="dataForm.sampleSize" :placeholder="$t('quality.sampleSize')">
</el-input>
</el-form-item>
<el-form-item prop="analyzeDrawings" :label="$t('quality.analyzeDrawings')">
<el-input v-model="dataForm.analyzeDrawings" :placeholder="$t('quality.analyzeDrawings')">
</el-input>
</el-form-item>
<el-form-item prop="upperSpecificationLimit" :label="$t('quality.upperSpecificationLimit')">
<el-input v-model="dataForm.upperSpecificationLimit" :placeholder="$t('quality.upperSpecificationLimit')">
</el-input>
</el-form-item>
<el-form-item prop="specificationCenterline" :label="$t('quality.specificationCenterline')">
<el-input v-model="dataForm.specificationCenterline" :placeholder="$t('quality.specificationCenterline')">
</el-input>
</el-form-item>
<el-form-item prop="specificationOffline" :label="$t('quality.specificationOffline')">
<el-input v-model="dataForm.specificationOffline" :placeholder="$t('quality.specificationOffline')">
</el-input>
</el-form-item>
<el-form-item prop="targetCpk" :label="$t('quality.targetCpk')">
<el-input v-model="dataForm.targetCpk" :placeholder="$t('quality.targetCpk')">
</el-input>
</el-form-item>
<el-form-item prop="targetPpk" :label="$t('quality.targetPpk')">
<el-input v-model="dataForm.targetPpk" :placeholder="$t('quality.targetPpk')">
</el-input>
</el-form-item>
<el-form-item>
<el-button @click="innerDrawer = false">{{ $t('cancel') }} </el-button>
<el-button type="primary" @click="dataFormSubmit"> {{ $t('confirm') }}</el-button>
</el-form-item>
</el-form>
</el-drawer>
</div>
</template>
<script>
import i18n from "@/i18n"
import basicAdd from "@/mixins/basic-add"
import debounce from "lodash/debounce"
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/characteristics",
getDictDataDetail: '/mutual/qmsDataDictionaryDetail/page',
getProductListURL: '/basic/qmsProduct/page',
getProcessURL: '/basic/qmsProcess/page',
getGageTypeURL: "/gage/qmsGageType/page",
},
monitorList: [
{
value: 0,
label: '否'
},
{
value: 1,
label: '是'
},
],
characteristicsTypeList: [
{
value: 0,
label: '计量'
},
{
value: 1,
label: '计数'
},
],
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
processList: [],
productList: [],
gageTypeList:[],
dataForm: {
analyzeDrawings:null,
characteristicsType: null,
company: null,
decimalDigits: null,
id: null,
inspectionType: null,
measuringToolsType: null,
monitor: null,
parameterName: null,
parameterCode: null,
processId: null,
productId: null,
remark: null,
sampleSize: null,
serialNo: null,
source: null,
specificationCenterline: null,
specificationOffline: null,
specifications: null,
targetCpk: null,
targetPpk: null,
upperSpecificationLimit: null,
},
innerDrawer: false,
listQuery: {
limit: 10,
page:1,
},
categoryList:[],
requirementList: [],
knowledgeBaseList:[],
}
},
computed: {
dataRule() {
return {
productId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
parameterCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
parameterName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},
mounted () {
this.getDict()
// this.getAccessPath()
},
methods: {
init(obj) {
this.dataForm.productId = obj.productId || ''
this.dataForm.id = obj.id || ''
this.innerDrawer = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo()
} else {
// this.getCode()
}
})
},
handleClose() {
this.innerDrawer = true
this.$refs.dataForm.resetFields()
},
getDict() {
this.$http
.get(this.urlOptions.getProductListURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
this.$http
.get(this.urlOptions.getProcessURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.processList = res.data.list
}
})
this.$http
.get(this.urlOptions.getGageTypeURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.gageTypeList = res.data.list
}
})
},
getInfo() {
this.$http
.get(`/code/characteristics/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { });
},
//
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.innerDrawer = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => { });
});
},
},
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,42 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-07-18 10:28:40
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<el-tag v-if="injectData.inspectionPlan === 1" type="success"></el-tag>
<el-tag v-else type="warning">没有</el-tag>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({})
}
},
methods: {
//
// emitClick () {
// //
// const routeParams = {
// routeName: `${this.$route.name}__${this.injectData.id}`,
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`,
// path: 'sys/dict-data',
// params: {
// dictTypeId: this.injectData.id
// }
// }
// //
// addDynamicRoute(routeParams, this.$router)
// }
}
}
</script>

View File

@ -0,0 +1,130 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 14:44:31
* @LastEditTime: 2023-04-04 14:39:49
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="productCode" :label="$t('basic.code')">
<el-input v-model="dataForm.productCode" :placeholder="$t('basic.code')" clearable></el-input>
</el-form-item>
<el-form-item prop="productName" :label="$t('basic.name')">
<el-input v-model="dataForm.productName" :placeholder="$t('basic.name')" clearable></el-input>
</el-form-item>
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
// urlOptions: {
// submitURL: "/sys/params/",
// infoURL: "/sys/params",
// },
visible: false,
options: [{
value: '0',
label: '不可用'
},
{
value: '1',
label: '可用'
}],
dataForm: {
productName: null,
productCode: null
},
};
},
computed: {
// dataRule() {
// return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// paramValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// };
// },
},
methods: {
// init(id) {
// this.dataForm.id = id || "";
// this.visible = true;
// this.$nextTick(() => {
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// this.getInfo();
// }
// });
// },
//
// getInfo() {
// this.$http
// .get(`/sys/params/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => {});
// },
//
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm);
},
// dataFormSubmitHandle: debounce(
// function () {
// // console.log(1111);
// // this.visible = false;
// this.$emit("successSubmit", this.dataForm.key);
// // this.$refs["dataForm"].validate((valid) => {
// // if (!valid) {
// // return false;
// // }
// // this.$http[!this.dataForm.id ? "post" : "put"](
// // "/sys/params",
// // 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: () => {
// // },
// // });
// // })
// // .catch(() => {});
// // });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@ -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-12 14:30:40 * @LastEditTime: 2023-07-18 10:20:59
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -185,18 +185,18 @@ export default {
param: 'customSamplingCode', param: 'customSamplingCode',
clearable: true clearable: true
}, },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: "新增", btnName: "新增",
name: "add", name: "add",
color: "success", color: "success",
plain: true plain: true
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
} }
], ],
}; };

View File

@ -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-11 15:38:25 * @LastEditTime: 2023-07-18 10:21:09
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -129,17 +129,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
} }
], ],

View File

@ -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-12 14:43:09 * @LastEditTime: 2023-07-18 10:21:26
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -114,18 +114,18 @@ export default {
param: 'name', param: 'name',
clearable: true clearable: true
}, },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: "新增", btnName: "新增",
name: "add", name: "add",
color: "success", color: "success",
plain: true plain: true
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
} }
], ],
}; };

View File

@ -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-12 14:22:56 * @LastEditTime: 2023-07-18 10:21:38
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -218,17 +218,17 @@ export default {
}, },
{ {
type: "button", type: "button",
btnName: "新增", btnName: "搜索",
name: "add", name: "search",
color: 'success', color: "primary",
plain: true
// plain: true, // plain: true,
}, },
{ {
type: "button", type: "button",
btnName: "搜索", btnName: "新增",
name: "search", name: "add",
color: "primary", color: 'success',
plain: true
// plain: true, // plain: true,
} }
], ],

View File

@ -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-12 14:30:03 * @LastEditTime: 2023-07-18 10:21:47
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -129,18 +129,18 @@ export default {
// { // {
// type: "separate", // type: "separate",
// }, // },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: "新增", btnName: "新增",
name: "add", name: "add",
color: "success", color: "success",
plain: true plain: true
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
} }
], ],
}; };

View File

@ -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-12 14:32:41 * @LastEditTime: 2023-07-18 10:21:55
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -137,18 +137,18 @@ export default {
param: 'code', param: 'code',
clearable: true clearable: true
}, },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{ {
type: "button", type: "button",
btnName: "新增", btnName: "新增",
name: "add", name: "add",
color: "success", color: "success",
plain: true plain: true
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
} }
], ],
}; };

Some files were not shown because too many files have changed in this diff Show More