Compare commits

...

21 Commits

Author SHA1 Message Date
zhp
37bd4fd532 Merge pull request 'zhp' (#17) from zhp into master
Reviewed-on: #17
2023-07-13 08:40:12 +08:00
‘937886381’
8a7f6d3dad Merge branch 'master' into zhp 2023-07-13 08:36:09 +08:00
‘937886381’
d6e9fc79f2 修改bug 2023-07-13 08:35:26 +08:00
zhp
136383f2fb Merge pull request 'zhp' (#16) from zhp into master
Reviewed-on: #16
2023-07-11 17:02:42 +08:00
‘937886381’
3e4dd9d694 Merge branch 'master' into zhp 2023-07-11 17:02:01 +08:00
‘937886381’
7728882b29 修改bug 2023-07-11 17:01:39 +08:00
zhp
23d6f47999 Merge pull request 'zhp' (#15) from zhp into master
Reviewed-on: #15
2023-07-11 08:49:37 +08:00
‘937886381’
cb49f5e6b8 Merge branch 'master' into zhp 2023-07-11 08:48:25 +08:00
‘937886381’
9a6fb46e24 修改bug 2023-07-11 08:47:44 +08:00
zhp
7b2a23dfed Merge pull request 'zhp' (#14) from zhp into master
Reviewed-on: #14
2023-07-07 16:36:05 +08:00
‘937886381’
b5b6f94dbc Merge branch 'master' into zhp 2023-07-07 16:33:28 +08:00
‘937886381’
fca971fa37 修改bug 2023-07-07 16:32:42 +08:00
zhp
a4d6939e94 Merge pull request 'zhp' (#13) from zhp into master
Reviewed-on: #13
2023-07-06 16:49:16 +08:00
‘937886381’
9d688408cd Merge branch 'master' into zhp 2023-07-06 16:48:18 +08:00
‘937886381’
a672b17dda 修改bug 2023-07-06 16:47:51 +08:00
zhp
c000698a9e Merge pull request 'zhp' (#12) from zhp into master
Reviewed-on: #12
2023-07-06 15:21:53 +08:00
‘937886381’
cc03b8853d 更新代码 2023-07-06 15:18:30 +08:00
‘937886381’
db266102ab Merge branch 'master' into zhp 2023-07-06 09:22:08 +08:00
2f3577c91c Merge pull request '更新8D处理中心和管理中心' (#11) from zwq into master
Reviewed-on: #11
2023-07-04 09:27:01 +08:00
‘937886381’
3a39a4fa32 Merge branch 'master' into zhp 2023-06-30 17:04:21 +08:00
‘937886381’
3c93b8045a 修改bug 2023-06-30 17:03:47 +08:00
79 changed files with 2958 additions and 1333 deletions

70
package-lock.json generated
View File

@ -3201,6 +3201,7 @@
"thread-loader": "^2.1.3",
"url-loader": "^2.2.0",
"vue-loader": "^15.9.2",
"vue-loader-v16": "npm:vue-loader@^16.1.0",
"vue-style-loader": "^4.1.2",
"webpack": "^4.0.0",
"webpack-bundle-analyzer": "^3.8.0",
@ -16945,6 +16946,75 @@
}
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": {
"version": "3.0.7",
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.0.7.tgz",

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-22 14:57:50
* @LastEditors: zhp
* @LastEditTime: 2023-06-21 13:55:38
* @LastEditTime: 2023-07-11 10:23:31
* @Description:
-->
<!DOCTYPE html>

View File

@ -1,7 +1,7 @@
/*
* @Date: 2020-12-29 16:49:28
* @LastEditors: zhp
* @LastEditTime: 2023-04-18 16:12:04
* @LastEditTime: 2023-07-11 14:23:27
* @FilePath: \basic-admin\src\filters\DataDict\index.js
* @Description: 部分常量的数据字典定义
*/
@ -14,7 +14,12 @@ const table = {
available: {
0: '不可用',
1:'不可用',
}
},
supplierStatus:{
0: '合格',
1: '不合格',
2:'黑名单',
},
}
export default function (dictTable) {

View File

@ -286,7 +286,7 @@ t.basic.name = '名称'
t.basic.code = '编码'
t.basic.status = '状态'
t.basic.available = '可用'
t.basic.remark = '描述'
t.basic.remark = '备注'
t.basic.specification = '规格'
t.basic.InspectionStage = '检验阶段'
t.basic.InspectionPlan = '检验计划'
@ -352,6 +352,17 @@ t.quality.relaxedToNormal = '放宽转正常'
t.quality.tightenedToNormal = '加严转正常'
t.quality.productName = '检验产品'
t.quality.transferTime = '转移时间'
t.quality.inspectionType = '检验类型'
t.quality.measuringTools = '量具'
t.quality.sampleRangeLow = '取样范围低'
t.quality.sampleRangeHigh = '取样范围高'
t.quality.inspectionLevel = '检验水平'
t.quality.sampleSizeCode = '样本量字码'
t.quality.sampleSize = '样本量'
@ -360,6 +371,7 @@ t.quality.transferTime = '转移时间'
t.disqualification = {}
t.disqualification.inspectionTypeId = '检验类型'
t.disqualification.name = '名称'
t.disqualification.productTypeName = '产品类型'
t.disqualification.productName = '产品名称'
t.disqualification.teamName = '处置团队'
@ -377,7 +389,6 @@ t.disqualification.disposalMethod = '处置方法'
t.disqualification.disposalTime = '处置时间'
t.disqualification.remark = '备注'
t.disqualification.approvalProcessCode = '编号'
t.disqualification.approvalProcessName = '名称'
t.disqualification.approvalProcessType = '类型'
t.disqualification.description = '描述'
t.disqualification.step = '步骤'
@ -396,7 +407,7 @@ t.supplier.supplierRelevance = '供应商关联产品'
t.supplier.abbreviation = '简称'
t.supplier.grade = '重要等级'
t.supplier.address = '地址'
t.supplier.ment = '供应商状态'
t.supplier.ment = '状态'
t.supplier.contact = '联系人'
t.supplier.contactEmail = '联系人邮箱'
t.supplier.contactPhone = '联系人电话'
@ -440,6 +451,9 @@ t.supplier.lastStartEvaluationPeriod = '上次启动评估时间段'
t.supplier.estimatedNextStartTime = '预计下次启动时间'
t.supplier.offline = '下限'
t.supplier.online = '上限'
t.supplier.supplierStatus = '供应商状态'
t.gage = {}
t.gage.name = '名称'
@ -645,57 +659,9 @@ t.code.uploaded = '已上传'
t.code.notUploaded = '未上传'
t.code.Examiner = '检验人'
t.dictionary = {}
t.dictionary.name = ' 名称'
t.dictionary.code = ' 编码'
export default t

View File

@ -1,8 +1,8 @@
/*
* @Author: zwq
* @Date: 2022-08-24 11:19:43
* @LastEditors: zwq
* @LastEditTime: 2023-06-30 15:00:20
* @LastEditors: zhp
* @LastEditTime: 2023-07-11 11:03:11
* @Description:
*/
export default {
@ -30,8 +30,8 @@ export default {
},
created() {
},
activated() {
this.getDataList();
mounted() {
this.getDataList()
},
methods: {
// 获取数据列表

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-24 11:19:43
* @LastEditors: zhp
* @LastEditTime: 2023-02-24 16:16:54
* @LastEditTime: 2023-07-10 14:35:06
* @Description:
*/
export default {
@ -72,7 +72,7 @@ export default {
});
},
handleSearchReset() {
this.$refs.addOrUpdate.formClear();
this.$refs.searchOrUpdate.formClear();
},
cancel(id) {
this.$refs["popover-" + id].showPopper = false;

View File

@ -22,9 +22,9 @@
<svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"><use xlink:href="#icon-home"></use></svg>
</template>
<iframe v-if="tabIsIframe(item.iframeURL)" :src="item.iframeURL" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe>
<keep-alive v-else>
<!-- <keep-alive > -->
<router-view v-if="item.name === $store.state.contentTabsActiveName" />
</keep-alive>
<!-- </keep-alive> -->
</el-tab-pane>
</el-tabs>
</template>

View File

@ -1,26 +1,26 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-26 09:44:09
* @LastEditTime: 2023-07-12 13:49:47
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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-input v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="controlName" :label="$t('basic.name')">
<el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="specification" :label="$t('basic.specification')">
<el-input v-model="dataForm.specification" :placeholder="$t('basic.specification')"></el-input>
<el-form-item prop="specifications" :label="$t('basic.specification')">
<el-input v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></el-input>
</el-form-item>
<el-form-item prop="incomingInspection" :label="$t('basic.stock')">
<el-switch v-model="dataForm.incomingInspection" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="finishInspection" :label="$t('basic.stock')">
<el-form-item prop="finishInspection" :label="$t('basic.finishedProduct')">
<el-switch v-model="dataForm.finishInspection" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
@ -32,12 +32,15 @@
<el-switch v-model="dataForm.processInspection" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="customerTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-form-item prop="controlStatus" :label="$t('basic.status')">
<el-select 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>
</el-select>
</el-form-item>
<el-form-item prop="remark" :label="$t('basic.remark')">
<el-input v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input>
</el-form-item>
</el-form>
</template>
@ -49,8 +52,8 @@ export default {
data() {
return {
urlOptions: {
submitURL: "/basic/qmsCustomerType",
infoURL: "/basic/qmsCustomerType/{id}",
submitURL: "/basic/qmsControlMode",
infoURL: "/basic/qmsControlMode/{id}",
getCodeURL: '/basic/qmsControlMode/getCode'
},
options: [{
@ -66,36 +69,38 @@ export default {
id: "",
controlCode:null,
controlName:null,
customerTypeStatus: null,
controlStatus: null,
finishInspection: null,
incomingInspection: null,
outInspection: null,
processInspection: null,
specifications: null,
remark:null
},
};
},
computed: {
dataRule() {
return {
dictLabel: [
controlCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
dictValue: [
controlName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sort: [
controlStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
trigger: "change",
},
],
};
@ -106,13 +111,14 @@ export default {
methods: {
init(id, ) {
this.dataForm.id = id || ""
this.getControlCode()
// this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
} else {
this.getControlCode()
}
});
},

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:58:53
* @LastEditTime: 2023-07-12 13:57:14
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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-input v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -67,27 +67,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
customerCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
customerName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
customerTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-02-20 08:52:46
* @LastEditTime: 2023-07-11 09:50:29
* @Description:
-->
<template>
@ -50,14 +50,16 @@ export default {
customerTypeId: null,
customerTypeStatus: null
},
options: [{
options: [
{
value: 0,
label: '不可用'
},
{
value: 1,
label: '可用'
}],
}
],
};
},
computed: {
@ -126,7 +128,7 @@ export default {
})
},
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm.key);
this.$emit("successSubmit", this.dataForm);
},
// dataFormSubmitHandle: debounce(
// function () {

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:59:19
* @LastEditTime: 2023-07-12 13:55:20
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()"
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="customerTypeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input>
@ -55,25 +55,25 @@ export default {
computed: {
dataRule() {
return {
dictLabel: [
customerTypeCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
dictValue: [
customerTypeName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sort: [
customerTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
trigger: "change",
},
],
};

View File

@ -1,12 +1,13 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:56:56
* @LastEditTime: 2023-07-12 13:52:25
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="failureTypeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -54,27 +55,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
failureTypeCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
failureTypeName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
failureTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-02-16 15:46:10
* @LastEditTime: 2023-07-10 15:41:53
* @Description:
-->
<template>
@ -113,7 +113,7 @@ export default {
// })
// },
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm.key);
this.$emit("successSubmit", this.dataForm)
},
// dataFormSubmitHandle: debounce(
// function () {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-05-17 15:00:50
* @LastEditTime: 2023-06-30 16:54:37
* @LastEditors: zhp
* @Description:
-->
@ -22,6 +22,7 @@ export default {
},
data() {
return {
// injectData:{},
urlOptions: {
syncURL: "/basic/qmsProduct/connectAllProduct"
},
@ -30,21 +31,23 @@ export default {
methods: {
//
emitClick() {
console.log(this.injectData)
const data = {
id: this.injectData.id,
finishInspection: this.injectData.finishInspection,
incomingInspection: this.injectData.incomingInspection,
outInspection: this.injectData.outInspection,
processInspection: this.injectData.outInspection
processInspection: this.injectData.processInspection
}
this.$http.put(this.urlOptions.syncURL, { data }).then(({ data }) => {
this.$http.put(this.urlOptions.syncURL, data ).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.$message.error(data.msg);
this.$message.error(data.msg)
// this.$parent.$parent.$parent.$parent.getDataList()
},
});
} else {

View File

@ -1,12 +1,13 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-04 15:35:31
* @LastEditTime: 2023-07-12 13:57:47
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="productCode" :label="$t('basic.code')">
<el-input v-model="dataForm.productCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -42,8 +43,8 @@ export default {
data() {
return {
urlOptions: {
submitURL: "/basic/qmsProductType",
infoURL: "/basic/qmsProductType/{id}",
submitURL: "/basic/qmsProduct",
infoURL: "/basic/qmsProduct/{id}",
getCodeURL: '/basic/qmsProduct/getCode',
getTypeListURL: '/basic/qmsProductType/page'
},
@ -59,34 +60,35 @@ export default {
productCode:null,
productName: null,
productTypeId:null,
productTypeStatus:null
productTypeStatus: null,
productSpecs:null
},
};
},
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
productCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
productName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
productTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},
@ -111,7 +113,7 @@ export default {
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.dataForm.productTypeCode = res.data
this.dataForm.productCode = res.data
}
})
.catch(() => {
@ -130,7 +132,7 @@ export default {
//
getInfo() {
this.$http
.get(`/basic/qmsProductType/${this.dataForm.id}`)
.get(`/basic/qmsProduct/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);

View File

@ -1,12 +1,13 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:59:37
* @LastEditTime: 2023-07-12 14:04:19
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="productTypeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.productTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -54,27 +55,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
productTypeCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
productTypeName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
productTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},

View File

@ -1,16 +1,16 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 14:12:10
* @LastEditTime: 2023-01-31 16:47:32
* @LastEditTime: 2023-06-30 17:00:43
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<el-radio v-model="injectData.incomingInspection" :label="1">{{ $t('basic.stock') }}</el-radio>
<el-radio v-model="injectData.processInspection" :label="1">{{ $t('basic.course') }}</el-radio>
<el-radio v-model="injectData.finishInspection" :label="1">{{ $t('basic.finishedProduct') }}</el-radio>
<el-radio v-model="injectData.outInspection" :label="1">{{ $t('basic.shipment') }}</el-radio>
<el-radio v-model="injectData.processInspection" :label="1">{{ $t('basic.course') }}</el-radio>
</span>
</template>

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-02-14 14:12:11
* @LastEditTime: 2023-07-07 13:51:05
* @Description:
-->
<template>
@ -50,13 +50,18 @@ const tableBtn = [
type: "synchronous",
btnName: "同步",
showParam: {
type: "&",
type: "|",
data: [
{
type: "equal",
name: "controlCodeId",
value:null,
},
{
type: "equal",
name: "controlCodeId",
value: '0',
},
],
},
},
@ -71,6 +76,11 @@ const tableBtn = [
name: "controlCodeId",
value: null,
},
{
type: "unequal",
name: "controlCodeId",
value: '0',
},
],
},
},
@ -122,7 +132,7 @@ export default {
},
methods: {
init(data) {
console.log();
console.log(data)
// this.dataForm.id = id || "";
this.productData = data? data: {}
this.visible = true;
@ -130,23 +140,28 @@ export default {
this.listQuery.controllerModeId = data ? data.id : null;
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
this.getDataList();
this.getDataList()
// }
});
},
handleClick() {
handleClick(val) {
console.log(val)
if (val.type === "synchronous") {
if (!this.listQuery.controllerModeId) {
console.log(val)
console.log(this.listQuery.controllerModeId)
if (!this.listQuery.controllerModeId === null) {
this.$message({
message: '请先选择控制模式',
type: 'warning'
});
} else {
const data={
controlCodeId: this.listQuery.controlCodeId,
const data = {
id:val.data.id,
controlCodeId: this.listQuery.controllerModeId,
finishInspection: this.productData.finishInspection,
incomingInspection: this.productData.finishInspection,
processInspection: this.productData.processInspection
incomingInspection: this.productData.incomingInspection,
processInspection: this.productData.processInspection,
outInspection: this.productData.outInspection
}
this.$http['put']('/basic/qmsProduct',data).then(({ data: res }) => {
if (res.code !== 0) {
@ -157,8 +172,9 @@ export default {
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
this.$nextTick(() => {
this.getDataList()
})
}
})
}).catch(() => { })
@ -170,10 +186,12 @@ export default {
// });
} else if (val.type === 'cancel') {
const data = {
controlCodeId: null,
finishInspection: null,
incomingInspection: null,
processInspection: null
id: val.data.id,
controlCodeId: 0,
finishInspection: 0,
incomingInspection: 0,
processInspection: 0,
outInspection:0
}
this.$http['put']('/basic/qmsProduct', data).then(({ data: res }) => {
if (res.code !== 0) {
@ -184,8 +202,10 @@ export default {
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
this.$nextTick(() => {
this.getDataList()
})
// this.$emit('refreshDataList')
}
})
}).catch(() => { })

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 16:42:11
* @LastEditTime: 2023-02-24 15:08:39
* @LastEditTime: 2023-07-12 14:04:44
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="teamCode" :label="$t('basic.code')">
<el-input v-model="dataForm.teamCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -57,27 +57,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
teamCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
teamName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sort: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-26 15:01:44
* @LastEditTime: 2023-06-30 09:58:35
* @LastEditors: zhp
* @Description:
-->
@ -33,9 +33,6 @@ export default {
chooseData: [],
urlOptions: {
submitURL: "/basic/qmsCustomer",
getCustomerPageListURL: "/basic/qmsCustomerType/page",
infoURL: "/basic/qmsCustomer/{id}",
getCodeURL: '/basic/qmsCustomer/getCode',
getTeamMemberURL: '/basic/qmsTeamMember/page',
getUserListURL: '/sys/user/page',
editTeamMemberListURL: '/basic/qmsTeamMember'
@ -84,10 +81,40 @@ export default {
};
},
},
destroyed() {
this.notChooseData = []
this.chooseData = []
},
methods: {
init(id,) {
this.teamId = id || ""
this.notChooseData = []
this.chooseData = []
// this.dataForm.dictTypeId = dictTypeId || "";
// this.$http
// .get(this.urlOptions.getTeamMemberURL, {
// params: {
// teamId: id
// }
// })
// .then(({ data: res }) => {
// console.log(res)
// this.dataListLoading = false;
// if (res.code === 0) {
// var data = res.data.memberDTOS
// for (let i = 0; i < data.length; i++) {
// this.chooseData.push(data[i].userId)
// }
// this.notChooseData = res.data.undefinedUserDTOS.map((item) => {
// return {
// key: item.id,
// label: item.userName
// }
// })
// console.log(this.chooseData)
// console.log(this.notChooseData)
// }
// })
this.$http
.get(this.urlOptions.getTeamMemberURL, {
params: {
@ -179,6 +206,8 @@ export default {
duration: 500,
onClose: () => {
this.visible = false
this.notChooseData = []
this.chooseData = []
this.$emit("refreshDataList")
},
});

View File

@ -2,9 +2,6 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" 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"
highlight-current-row :limit="listQuery.limit" :table-data="tableData" @current-change="handleCurrentChange">
@ -21,12 +18,12 @@
</base-dialog>
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<control-add ref="addOrUpdate" @successSubmit="successSubmit"></control-add>
<control-add ref="addOrUpdate" @refreshDataList="successSubmit"></control-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<control-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></control-search>
<control-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></control-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -39,16 +36,16 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import basicSearch from "@/mixins/basic-search";
// import basicSearch from "@/mixins/basic-search";
import showProductList from "./components/showProductList.vue";
import controlSearch from "./components/controlSearch.vue";
// import controlSearch from "./components/controlSearch.vue";
import controlAdd from "./components/control-add.vue";
import available from "./components/available.vue";
import planBtn from "./components/planBtn.vue";
@ -99,7 +96,7 @@ const tableBtn = [
},
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
@ -115,21 +112,21 @@ export default {
addOrEditTitle: '',
addOrUpdateVisible:false,
productOrUpdateVisible: false,
headValue:{},
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable:true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain:true
},
{
type: "button",
@ -149,7 +146,6 @@ export default {
type: "button",
btnName: "取消选中",
name: "cancel",
color: "primary",
// plain: true,
},
],
@ -157,7 +153,7 @@ export default {
},
components: {
showProductList,
controlSearch,
// controlSearch,
controlAdd
},
methods: {
@ -177,24 +173,22 @@ export default {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
// conditionSearch() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.searchOrUpdate.init();
// });
// },
// handleConfirm() {
// this.$refs.addOrUpdate.dataFormSubmitHandle();
// },
// conditionSearchSubmit() {},
conditionSearchSubmit(key) {
// console.log(key);
console.log(key);
this.listQuery.key = key;
this.listQuery.page = 1;
this.getDataList(key);
this.searchOrUpdateVisible = false;
this.listQuery.key = key
this.listQuery.page = 1
this.getDataList(key)
this.searchOrUpdateVisible = false
// console.log(11111);
// this.conditionSearchSubmit();
},
@ -237,24 +231,24 @@ export default {
// });
// },
buttonClick(val) {
console.log(val);
this.headValue = val
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.key = this.headValue.name ? headValue.name :null
console.log(i18n );
this.listQuery.page = 1;
this.getDataList();
break;
case "correlation":
this.productOrEditTitle = "产品";
this.productOrUpdateVisible = true;
this.productOrEditTitle = "产品"
this.productOrUpdateVisible = true
// this.searchOrUpdateHandle(this.productData);
// this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.productOrUpdate.init(this.productData);
this.$refs.productOrUpdate.init(this.productData)
});
console.log(this.productId);
// console.log(this.productId);
break;
case "add":
this.addOrEditTitle = '新增'

View File

@ -2,9 +2,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="4" class="item">
<!-- <el-badge :value="4" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
@ -19,7 +19,7 @@
<customer-add ref="addOrUpdate" @refreshDataList="successSubmit"></customer-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<customer-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></customer-search>
<el-row slot="footer" type="flex" justify="end">
@ -34,36 +34,36 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import basicSearch from "@/mixins/basic-search";
import customerAdd from "./components/customer-add";
import customerSearch from "./components/customerSearch.vue";
import available from "./components/available.vue";
// import radio from "./components/radio.vue";
// import i18n from "@/i18n";
import basicPage from "@/mixins/basic-page"
// import basicSearch from "@/mixins/basic-search"
import customerAdd from "./components/customer-add"
import customerSearch from "./components/customerSearch.vue"
import available from "./components/available.vue"
// import radio from "./components/radio.vue"
import i18n from "@/i18n"
// import i18n from "@/i18n";
const tableProps = [
{
prop: "customerCode",
label: '编码'
label: i18n.t('basic.code')
},
{
prop: "customerName",
label: "客户"
label: i18n.t('basic.name')
},
{
prop: "customerTypeName",
label: "客户类型"
label: i18n.t('basic.customerTypeName')
},
{
prop: "customerTypeStatus",
label: "状态",
label: i18n.t('basic.status'),
subcomponent: available,
}
];
@ -78,36 +78,79 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsCustomer/page",
deleteURL: "/basic/qmsCustomerType",
exportURL: '/basic/qmsCustomer/export'
deleteURL: "/basic/qmsCustomer",
exportURL: '/basic/qmsCustomer/export',
getCustomerPageListURL: "/basic/qmsCustomerType/page"
},
tableProps,
tableBtn,
productData: {},
listQuery: {
limit: 10,
page: 1,
name: null,
code: null,
status: null,
customerTypeId:null
},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
productOrUpdateVisible: false,
headValue:{},
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: 'select',
label: i18n.t('basic.customerTypeName'),
placeholder: i18n.t('basic.customerTypeName'),
param: 'customerTypeId',
selectOptions:[],
clearable: true,
filterable: true
},
{
type: 'select',
label: i18n.t('basic.status'),
placeholder: i18n.t('basic.status'),
param: 'status',
selectOptions: [
{
id: '0',
name: '不可用'
},
{
id: '1',
name: '可用'
}
],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
@ -121,7 +164,8 @@ export default {
type: "button",
btnName: "导出",
name: "export",
color: "primary",
color: 'primary',
plain: true
// plain: true,
}
],
@ -129,7 +173,10 @@ export default {
},
components: {
customerAdd,
customerSearch,
// customerSearch,
},
mounted () {
this.getDict();
},
methods: {
//search-bar
@ -156,17 +203,32 @@ export default {
// console.log(key);
// console.log(key);
// this.listQuery.key = key;
this.listQuery.code = dataForm.code
this.listQuery.name = dataForm.name
this.listQuery.customerTypeId = dataForm.customerTypeId
this.listQuery.customerTypeStatus = dataForm.customerTypeStatus
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick() {
getDict() {
this.$http
.get(this.urlOptions.getCustomerPageListURL, {
params: {
limit: 999,
page: 1
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.formConfig[2].selectOptions = res.data.list.map((item) => {
return {
name: item.customerTypeName,
id:item.id
}
})
}
})
},
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerName}]进行删除操作?`, "提示", {
@ -231,16 +293,16 @@ export default {
}).catch(() => { })
},
buttonClick(val) {
console.log(val);
this.headValue = val
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
// this.listQuery.key = "";
this.listQuery.page = 1;
this.listQuery.code = null
this.listQuery.name = null
this.listQuery.customerTypeId = null
this.listQuery.customerTypeStatus = null
this.listQuery.code = this.headValue.code ? this.headValue.code : undefined
this.listQuery.name = this.headValue.name ? this.headValue.name : undefined
this.listQuery.customerTypeId = this.headValue.customerTypeId ? this.headValue.customerTypeId : undefined
this.listQuery.status = this.headValue.status ? this.headValue.status : undefined
this.getDataList();
break;
case "export":

View File

@ -2,9 +2,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="3" class="item">
<!-- <el-badge :value="3" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
@ -19,9 +19,9 @@
<customer-type-add ref="addOrUpdate" @refreshDataList="successSubmit"></customer-type-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<customerType-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></customerType-search>
<customerType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></customerType-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -34,7 +34,7 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
@ -43,7 +43,7 @@
import basicPage from "@/mixins/basic-page";
import basicSearch from "@/mixins/basic-search";
import customerTypeAdd from "./components/customerType-add";
import customerTypeSearch from "./components/customerTypeSearch.vue";
// import customerTypeSearch from "./components/customerTypeSearch.vue";
import available from "./components/available.vue";
import Cookies from 'js-cookie'
import qs from 'qs'
@ -76,7 +76,7 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
@ -94,15 +94,46 @@ export default {
productOrEditTitle: "",
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: 'select',
label: i18n.t('basic.status'),
placeholder: i18n.t('basic.status'),
param: 'status',
selectOptions: [
{
id: '0',
name: '不可用'
},
{
id: '1',
name: '可用'
}
],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
@ -110,26 +141,19 @@ export default {
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "导出",
name: "export",
color: "primary",
color: 'primary',
plain: true
// plain: true,
}
],
};
},
components: {
customerTypeAdd,
customerTypeSearch
customerTypeAdd
},
methods: {
//search-bar
@ -233,15 +257,15 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.name = null
this.listQuery.code = null
this.listQuery.status = null
this.listQuery.name =val.name ?val.name : null
this.listQuery.code = val.code ? val.code : null
this.listQuery.status = val.status ? val.status : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();
break;
case "export":
this.exportHandle();
this.exportHandle()
break;
case "add":
this.addOrEditTitle = "新增";

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-20 15:37:39
* @LastEditTime: 2023-07-11 10:07:22
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="3" class="item">
<!-- <el-badge :value="3" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@ -25,9 +25,9 @@
<failure-type-add ref="addOrUpdate" @refreshDataList="successSubmit"></failure-type-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<failureType-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></failureType-search>
<failureType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></failureType-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -40,7 +40,7 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
@ -49,9 +49,9 @@
import basicPage from "@/mixins/basic-page";
import failureTypeAdd from "./components/failureType-add";
// import AddOrUpdate from './params-add-or-update'
import failureTypeSearch from "./components/failureTypeSearch";
// import failureTypeSearch from "./components/failureTypeSearch";
import available from "./components/available.vue";
import basicSearch from "@/mixins/basic-search";
// import basicSearch from "@/mixins/basic-search";
import i18n from "@/i18n";
const tableProps = [
{
@ -79,9 +79,8 @@ const tableBtn = [
},
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
components: {
failureTypeSearch,
failureTypeAdd
},
data() {
@ -95,26 +94,52 @@ export default {
searchOrEditTitle: '',
searchOrUpdateVisible:false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: 'select',
label: i18n.t('basic.status'),
placeholder: i18n.t('basic.status'),
param: 'status',
selectOptions: [
{
id: '0',
name: '不可用'
},
{
id: '1',
name: '可用'
}
],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
@ -190,9 +215,9 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.code = null
this.listQuery.name = null
this.listQuery.failureTypeStatus = null
this.listQuery.code =val.code ? val.code : null
this.listQuery.name = val.name ? val.name : null
this.listQuery.status = val.status ? val.status : null
this.getDataList();
break;
case "add":

View File

@ -2,9 +2,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
highlight-current-row :limit="listQuery.limit" :table-data="tableData" @current-change="handleCurrentChange">
@ -19,7 +19,7 @@
<product-add ref="addOrUpdate" @refreshDataList="successSubmit"></product-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <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">
@ -34,15 +34,15 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</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 basicSearch from "@/mixins/basic-search";
// import productSearch from "./components/productSearch.vue";
import productAdd from "./components/product-add.vue";
import available from "./components/available.vue";
import radio from "./components/radio.vue";
@ -70,11 +70,6 @@ const tableProps = [
label: i18n.t('basic.InspectionStage'),
subcomponent: radio,
},
{
prop: "controlStatus",
label: i18n.t('basic.available'),
subcomponent: available,
},
{
prop: "remark",
label: i18n.t('schedule.remark'),
@ -91,7 +86,7 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
@ -108,20 +103,27 @@ export default {
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
@ -134,7 +136,6 @@ export default {
};
},
components: {
productSearch,
productAdd
},
methods: {
@ -158,7 +159,7 @@ export default {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
this.$refs.searchOrUpdate.init()
});
},
// handleConfirm() {
@ -171,7 +172,7 @@ export default {
this.listQuery.productName = dataForm.productName
this.listQuery.productCode = dataForm.productCode
this.listQuery.page = 1;
this.getDataList();
this.getDataList()
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
@ -219,7 +220,8 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.productName =val.name ?val.name: null
this.listQuery.productCode = val.code ? val.code : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-06-20 15:37:24
* @LastEditTime: 2023-07-11 10:24:01
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<!-- <el-badge :value="3" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
@ -26,7 +26,7 @@
<product-type-add ref="addOrUpdate" @refreshDataList="successSubmit"></product-type-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<productType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></productType-search>
<el-row slot="footer" type="flex" justify="end">
@ -41,16 +41,16 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import basicSearch from "@/mixins/basic-search";
// import basicSearch from "@/mixins/basic-search";
import productTypeAdd from "./components/productType-add";
import productTypeSearch from "./components/productTypeSearch.vue";
// import productTypeSearch from "./components/productTypeSearch.vue";
import available from "./components/available.vue";
import Cookies from 'js-cookie'
import qs from 'qs'
@ -83,7 +83,7 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
@ -101,15 +101,46 @@ export default {
productOrEditTitle: "",
productOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// type: 'select',
// label: i18n.t('basic.status'),
// placeholder: i18n.t('basic.status'),
// param: 'status',
// selectOptions: [
// {
// id: '0',
// name: ''
// },
// {
// id: 1,
// name: ''
// }
// ],
// clearable: true,
// filterable: true
// },
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
@ -117,26 +148,19 @@ export default {
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "导出",
name: "export",
color: "primary",
plain: true
// plain: true,
}
],
};
},
components: {
productTypeAdd,
productTypeSearch
productTypeAdd
},
methods: {
//search-bar
@ -254,9 +278,9 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.name = null
this.listQuery.code = null
this.listQuery.status = null
this.listQuery.name = val.name ?val.name : null
this.listQuery.code = val.code ? val.code : null
// this.listQuery.status = val.status ? val.status : null
// console.log(i18n);
this.listQuery.page = 1
// console.log(basicPage)

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-06-26 15:32:36
* @LastEditTime: 2023-07-11 10:16:26
* @LastEditors: zhp
* @Description:
-->
@ -11,9 +11,6 @@
<el-col :span="14">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">{{ $t("conditionSearch")}}}</el-button>
</el-badge>
</SearchBar>
<base-table highlight-current-row id="palletTable" :table-props="tableProps" :page="listQuery.page"
@current-change="handleCurrentChange" ref="palletTable1" :limit="listQuery.limit" :table-data="tableData">
@ -28,7 +25,7 @@
<team-add ref="addOrUpdate" @refreshDataList="successSubmit"></team-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<team-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></team-search>
<el-row slot="footer" type="flex" justify="end">
@ -44,7 +41,7 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-col>
<el-col :span="10">
@ -60,17 +57,17 @@
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
</div>
</el-col>""
</el-col>
</el-row>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import basicSearch from "@/mixins/basic-search";
// import basicSearch from "@/mixins/basic-search";
import teamAdd from "./components/team-add";
import teamMemberAdd from './components/teamMember-add'
import teamSearch from "./components/teamSearch.vue";
// import teamSearch from "./components/teamSearch.vue";
import Cookies from 'js-cookie'
import qs from 'qs'
// import radio from "./components/radio.vue";
@ -114,7 +111,7 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
@ -138,34 +135,41 @@ export default {
productOrEditTitle: "",
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: "button",
btnName: i18n.t('search'),
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "导出",
name: i18n.t('export'),
btnName: i18n.t('export'),
name: 'export',
color: "primary",
plain: true
// plain: true,
},
{
@ -198,8 +202,7 @@ export default {
},
components: {
teamAdd,
teamMemberAdd,
teamSearch
teamMemberAdd
},
// mounted() {
// this.getDepData()
@ -256,37 +259,36 @@ export default {
// console.log(11111);
// this.conditionSearchSubmit();
},
exportHandle() {
this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }, {
...this.dataForm
}).then((res) => {
console.log(res)
// if (res !== 0) {
// return this.$message.error(res.msg)
// }
let fileName = ''
const contentDisposition = res.headers['content-disposition']
if (contentDisposition) {
const temp = res.headers['content-disposition']
.split(';')[1]
.split('=')[1]
// --Node.js使iconv-lite
fileName = decodeURI(temp)
console.log(temp)
}
const blob = new Blob([res.data])
const reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
const a = document.createElement('a')
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
}).catch(() => { })
},
// exportHandle() {
// console.log(1111)
// this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }).then((res) => {
// console.log(res)
// // if (res !== 0) {
// // return this.$message.error(res.msg)
// // }
// let fileName = ''
// const contentDisposition = res.headers['content-disposition']
// if (contentDisposition) {
// const temp = res.headers['content-disposition']
// .split(';')[1]
// .split('=')[1]
// // --Node.js使iconv-lite
// fileName = decodeURI(temp)
// console.log(temp)
// }
// const blob = new Blob([res.data])
// const reader = new FileReader()
// reader.readAsDataURL(blob)
// reader.onload = (e) => {
// const a = document.createElement('a')
// a.download = fileName
// a.href = e.target.result
// document.body.appendChild(a)
// a.click()
// document.body.removeChild(a)
// }
// }).catch(() => { })
// },
handleClick(val) {
console.log(val);
if (val.type === "delete") {
@ -360,15 +362,14 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.name = null
this.listQuery.code = null
this.listQuery.status = null
this.listQuery.name = val.name ?val.name : null
this.listQuery.code = val.code ? val.code : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();
break;
case "export":
this.exportHandle();
this.exportHandle()
break;
case "add":
this.addOrEditTitle = "新增";
@ -390,7 +391,6 @@ export default {
// this.$refs.palletTable1.setCurrent("palletTable", -1);
// break;
default:
console.log(val);
}
},
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-28 14:15:42
* @LastEditTime: 2023-07-06 14:59:27
* @LastEditors: zhp
* @Description:
-->
@ -126,13 +126,99 @@
</el-col>
</el-row>
<el-button @click="getTableData()" type="primary">{{ $t('gage.tabularComputations') }}</el-button>
<base-table :table-props="tableProps" :table-data="tableData" :page="1" :limit="20" />
<base-table :table-props="tableProps" :table-data="tableData" />
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
import available from "./available";
// const tableProps = [
// {
// prop: 'equipmentName',
// label: ''
// },
// // {
// // prop: 'lineA',
// // label: '(h)',
// // children: [
// // {
// // prop: 'workTime',
// // label: ''
// // },
// // {
// // prop: 'workTimeRate',
// // label: ''
// // }
// // ]
// // },
// // {
// // prop: 'lineB',
// // label: '(h)',
// // children: [
// // {
// // prop: 'downTime',
// // label: ''
// // },
// // {
// // prop: 'downTimeRate',
// // label: ''
// // }
// // ]
// // },
// // {
// // prop: 'lineC',
// // label: '',
// // children: [
// // {
// // prop: 'faultTime',
// // label: ''
// // },
// // {
// // prop: 'faultTimeRate',
// // label: ''
// // }
// // ]
// // },
// // {
// // prop: 'lineD',
// // label: '',
// // children: [
// // {
// // prop: 'actualProcessingSpeed',
// // label: ''
// // },
// // {
// // prop: 'theoreticalProcessingSpeed',
// // label: ''
// // },
// // {
// // prop: 'speedActuationRate',
// // label: ''
// // }
// // ]
// // }
// ]
const tableProps = [
{
prop: 'testUserName',
label: '人员',
align: 'center'
},
{
prop: 'orderNumber',
label: '序号',
align:'center'
},
{
prop: 'test',
label: '零件',
align: 'center',
children: [
]
}
]
export default {
mixins: [basicAdd],
data() {
@ -147,10 +233,11 @@ export default {
getCustomerListURL: '/basic/qmsCustomer/page',
getTabularComputationsURL: '/gage/qmsGageGrrTester/table'
},
trueTableProps: [],
gageList: [],
userList: [],
tableProps,
customerList: [],
tableProps: [],
tableData:[],
gageTypeList:[],
departmentList: [],
@ -217,6 +304,8 @@ export default {
}
],
visible: false,
// tableProp2,
chartDataArr: [],
dataForm: {
connection:null,
corporation: null,
@ -271,6 +360,10 @@ export default {
mounted () {
this.getData();
},
destroyed () {
this.tableData = []
this.tableProps = []
},
methods: {
getTableData() {
this.$http.get(this.urlOptions.getTabularComputationsURL, {
@ -278,119 +371,136 @@ export default {
gageGrrId:this.dataForm.id
},
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res)
.then(({ data: result }) => {
if (result.code === 0) {
console.log(result)
let arr = []
// let aa = []
// let moreData = [
// // {
// // testUserName: null,
// // data: [
// // {
// // orderNumber: result.data.qmsGageGrrTesterDTOList[i].list[j].orderNumber,
// // data: aa
// // },
// // {
// // equipmentName: '',
// // data: aa
// // },
// // {
// // equipmentName: '',
// // data: aa
// // },
// // {
// // equipmentName: '',
// // data: aa
// // }
// // ]
// // },
// ]
for (let i = 0; i < result.data.qmsGageGrrTesterDTOList.length; i++){
// console.log(result.data.qmsGageGrrTesterDTOList[i].orderMapList)
Object.keys(result.data.qmsGageGrrTesterDTOList[i].partMapList).forEach((item) => {
this.tableProps[2].children.push({
label: String(item),
prop: 'measuredData' + String(item),
align: 'center'
})
})
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => {
let measuredDataProp = 'measuredData' + String(item)
this.tableData.push({
testUserName: result.data.qmsGageGrrTesterDTOList[i].testUserName,
orderNumber: item,
[measuredDataProp]: '',
})
})
Object.keys(result.data.qmsGageGrrTesterDTOList[i].orderMapList).forEach((item) => {
result.data.qmsGageGrrTesterDTOList[i].orderMapList[item].forEach((ele, index, arr) => {
let measuredData = 'measuredData' + String(index + 1)
console.log(item)
// console.log(arr)
// console.log(ele)
// console.log(this.tableProps[2].children.prop);
// console.log(this.tableProps[2].children[item - 1].prop)
console.log(index)
console.log(measuredData)
console.log(ele)
// console.log(this.tableData[index + 1])
this.tableData[item-1][measuredData] = ele
// console.log(this.tableData[item - 1])
})
})
}
console.log(this.tableProps)
console.log(this.tableData)
// console.log(this.table)
// console.log(moreData,'1111')
// for (let i = 0; i < 30; i++) {
// let a = {
// time: '2022-11-' + i,
// eqCT: 0.01,
// eqTT: 0.62,
// lineCT: 0.73,
// lineTT: 0.45
// }
// aa.push(a)
// }
// this.numArr = []
// let num = 0
// const tableConfig = []
// this.chartDataArr = []
// const dataArr = moreData.map((item, index) => {
// let dataArr = []
// if (item.data) {
// this.chartDataArr = this.chartDataArr.concat(item.data)
// num += item.data.length
// this.numArr.push(num)
// dataArr = item.data.map((z, idx) => {
// const dataArr = {}
// z.data.forEach((i) => {
// // tableConfig
// if (index === 0 && idx === 0) {
// tableConfig.push({
// label: i.time,
// prop: i.time,
// children: [
// { prop: i.time + 'eqCT', label: 'CT', subcomponent: available },
// { prop: i.time + 'eqTT', label: 'TT' },
// { prop: i.time + 'lineCT', label: '线CT' },
// {
// prop: i.time + 'lineTT',
// label: '线TT',
// // subcomponent: demo3Sub
// }
// ]
// })
// }
// //
// dataArr[i.time + 'eqCT'] = i.eqCT
// dataArr[i.time + 'eqTT'] = i.eqTT
// dataArr[i.time + 'lineCT'] = i.lineCT
// dataArr[i.time + 'lineTT'] = i.lineTT
// dataArr.testUserName = item.testUserName
// dataArr.orderNumber = z.orderNumber
// })
// console.log(dataArr)
// return dataArr
// })
// }
// return dataArr
// })
// console.log(tableConfig)
// this.trueTableProps = this.tableProp2.concat(tableConfig)
// console.log(this.trueTableProps,'22112112')
// this.tableData = this.flatten(dataArr)
// console.log(this.tableData)
}
})
.catch(() => {
})
let aa = []
let moreData = [
{
process: '综合',
data: [
{
equipmentName: '上片投入数量',
data: aa
},
{
equipmentName: '机器人投入数',
data: aa
},
{
equipmentName: '良品总投入数',
data: aa
},
{
equipmentName: '工序损耗',
data: aa
}
]
},
{
process: '上片',
data: [
{
equipmentName: '上片损失',
data: aa
}
]
},
{
process: '精切',
data: [
{
equipmentName: '精切损失',
data: aa
},
{
equipmentName: '精切抽检',
data: aa
}
]
}
]
for (let i = 0; i < 30; i++) {
let a = {
time: '2022-11-' + i,
eqCT: 0.01,
eqTT: 0.62,
lineCT: 0.73,
lineTT: 0.45
}
aa.push(a)
}
this.numArr = []
let num = 0
const tableConfig = []
this.chartDataArr = []
const dataArr = moreData.map((item, index) => {
let dataArr = []
if (item.data) {
this.chartDataArr = this.chartDataArr.concat(item.data)
num += item.data.length
this.numArr.push(num)
dataArr = item.data.map((z, idx) => {
const dataArr = {}
z.data.forEach((i) => {
// tableConfig
if (index === 0 && idx === 0) {
tableConfig.push({
label: i.time,
prop: i.time,
children: [
{ prop: i.time + 'eqCT', label: '设备CT' },
{ prop: i.time + 'eqTT', label: '设备TT' },
{ prop: i.time + 'lineCT', label: '产线CT' },
{
prop: i.time + 'lineTT',
label: '产线TT',
subcomponent: demo3Sub
}
]
})
}
//
dataArr[i.time + 'eqCT'] = i.eqCT
dataArr[i.time + 'eqTT'] = i.eqTT
dataArr[i.time + 'lineCT'] = i.lineCT
dataArr[i.time + 'lineTT'] = i.lineTT
dataArr.process = item.process
dataArr.equipmentName = z.equipmentName
})
console.log(dataArr)
return dataArr
})
}
return dataArr
})
console.log(tableConfig)
this.trueTableProps = this.tableProp2.concat(tableConfig)
console.log(this.trueTableProps)
this.tableData = this.flatten(dataArr)
console.log(this.tableData)
},
// tree->[]
flatten(arr) {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-27 15:38:27
* @LastEditTime: 2023-07-06 14:15:17
* @LastEditors: zhp
* @Description:
-->
@ -119,10 +119,10 @@
<td colspan="3">{{ $t('gage.totalVariation') }}</td>
<td>8</td>
<td>{{ this.grrReportData.k3[6] }}</td>
<td rowspan="4">{{ this.grrReportData.ndc }}</td>
<td rowspan="3">{{ this.grrReportData.ndc }}</td>
</tr>
<tr>
<td rowspan="3" colspan="3">{{ this.grrReportData.tv }}</td>
<td rowspan="2" colspan="3">{{ this.grrReportData.tv }}</td>
<td>9</td>
<td>{{ this.grrReportData.k3[7] }}</td>
</tr>
@ -131,11 +131,13 @@
<td>{{ this.grrReportData.k3[8] }}</td>
</tr>
<tr>
<td colspan="2">{{ $t('gage.decide') }}</td>
<td colspan="2" rowspan="2">{{ $t('gage.decide') }}</td>
<td>%GRR</td>
<td rowspan="4">{{ this.grrReportData.isAccept }}</td>
<td colspan="3">{{ this.grrReportData.isAccept }}</td>
</tr>
<tr>
<td>reason</td>
<td rowspan="4">{{ this.grrReportData.reason }}</td>
<td colspan="3">{{ this.grrReportData.reason }}</td>
</tr>
</tbody>
</table>
@ -216,3 +218,34 @@ export default {
},
};
</script>
<style scoped>
td{
width: 400px;
}
table {
border-collapse: collapse;
margin: 0 auto;
text-align: center;
}
table td,
table th {
border: 1px solid #cad9ea;
color: #666;
height: 30px;
}
table thead th {
background-color: #CCE8EB;
width: 100px;
}
table tr:nth-child(odd) {
background: #fff;
}
table tr:nth-child(even) {
background: #F5FAFA;
}
</style>

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-27 14:51:34
* @LastEditTime: 2023-06-28 14:27:57
* @LastEditors: zhp
* @Description:
-->
@ -327,34 +327,3 @@ export default {
}
};
</script>
<style>
td{
width: 400px;
}
table {
border-collapse: collapse;
margin: 0 auto;
text-align: center;
}
table td,
table th {
border: 1px solid #cad9ea;
color: #666;
height: 30px;
}
table thead th {
background-color: #CCE8EB;
width: 100px;
}
table tr:nth-child(odd) {
background: #fff;
}
table tr:nth-child(even) {
background: #F5FAFA;
}
</style>

View File

@ -1,13 +1,13 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-12 15:54:19
* @LastEditTime: 2023-07-12 14:46:40
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form-item prop="approvalProcessCode" :label="$t('disqualification.approvalProcessCode')">
<el-input v-model="dataForm.approvalProcessCode" :placeholder="$t('disqualification.approvalProcessCode')">
</el-input>
@ -23,8 +23,11 @@
</el-select>
</el-form-item>
</el-form>
<base-table border :table-props="tableProps" :table-data="tableData"
:add-button-show="addButtonShow" @emitFun="inputChange" @emitButtonClick="emitButtonClick" />
<base-table v-if="editShow" border :table-props="tableProps" :table-data="tableData"
:add-button-show="addButtonShow" @emitFun="inputChange" @emitButtonClick="emitButtonClick" >
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
</div>
</template>
@ -34,12 +37,10 @@ import debounce from "lodash/debounce"
import inputArea from './inputArea'
import selectArea from './selectArea'
import i18n from "@/i18n"
import { kStringMaxLength } from "buffer"
const tableProps = [
{
prop: 'step',
label: i18n.t("disqualification.step"),
subcomponent: inputArea
},
{
prop: 'teamId',
@ -47,6 +48,12 @@ const tableProps = [
subcomponent: selectArea
}
]
const tableBtn = [
{
type: "delete",
btnName: "删除",
},
];
export default {
// mixins: [basicAdd],
data() {
@ -58,10 +65,12 @@ export default {
stepDetailPageURL: "/nonconform/qmsApprovalProcessStepDetail/page",
},
supplierList:[],
productList:[],
productList: [],
tableBtn,
typeList: [],
teamList: [],
tableData:[],
tableData: [],
editShow:false,
listQuery: {
limit: 999,
page: 1,
@ -92,31 +101,48 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
approvalProcessCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
approvalProcessName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},
methods: {
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.step}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$nextTick(() => {
for (let i = 0; i < this.tableData.length; i++) {
console.log();
if (this.tableData[i].step === val.data.step) {
this.tableData.splice(i, 1)
}
}
for (let i = val.data.step - 1; i < this.tableData.length; i++) {
this.tableData[i].step = i + 1
}
})
})
.catch(() => { })
}
},
inputChange(val) {
console.log('=======')
console.log(val)
@ -126,14 +152,25 @@ export default {
emitButtonClick() {
console.log('emitButtonClick')
let obj = {}
for (let i of this.tableProps) {
obj[i.prop] = ''
// for (let i of this.tableProps) {
// console.log(i.prop)
// obj[i.prop] = ''
// }
if (this.tableData.length !== 0) {
obj['step'] = this.tableData[this.tableData.length - 1].step + 1
obj['teamId'] = ''
} else {
for (let i = 0; i <= this.tableData.length; i++) {
obj['step'] = i + 1
obj['teamId'] = ''
}
}
this.tableData.push(obj)
// this.dataForm.qmsApprovalProcessStepDetailDTOList.push(obj)
// console.log(this.dataForm)
},
init(id, ) {
init(id, flag) {
this.editShow = flag || false
this.dataForm.id = id || ""
this.listQuery.approvalProcessId = id || ""
this.editData.id = id || ""

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-07 10:20:53
* @LastEditTime: 2023-07-12 15:06:16
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form-item prop="inspectionTypeId" :label="$t('disqualification.inspectionTypeId')">
<el-select v-model="dataForm.inspectionTypeId" :placeholder="$t('disqualification.inspectionTypeId')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@ -27,8 +27,8 @@
</el-form-item>
<el-form-item prop="approvalProcessId" :label="$t('disqualification.approvalProcessName')">
<el-select v-model="dataForm.approvalProcessId" :placeholder="$t('disqualification.approvalProcessName')">
<el-option v-for="item in approvalProcessList" :key="item.approvalProcessId" :label="item.approvalProcessName"
:value="item.approvalProcessId">
<el-option v-for="item in approvalProcessList" :key="item.id" :label="item.approvalProcessName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -149,27 +149,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
approvalProcessId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
disposalMethod: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
inspectionTypeId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},
@ -198,7 +198,7 @@ export default {
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res.data);
console.log(res.data,'11111111111');
this.approvalProcessList= res.data.list
}
})

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-04-07 10:16:09
* @LastEditTime: 2023-07-12 14:54:19
* @Description:
-->
<template>
@ -24,7 +24,7 @@
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
@ -150,7 +150,7 @@ export default {
}
})
.catch(() => {
});
})
},
// init(id) {
// this.dataForm.id = id || "";

View File

@ -2,17 +2,17 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-04-13 15:03:39
* @LastEditTime: 2023-07-07 09:16:23
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="approvalProcessCode" :label="$t('disqualification.approvalProcessCode')">
<el-input v-model="dataForm.approvalProcessCode" :placeholder="$t('disqualification.approvalProcessCode')">
<el-form-item prop="code" :label="$t('disqualification.approvalProcessCode')">
<el-input v-model="dataForm.code" :placeholder="$t('disqualification.approvalProcessCode')">
</el-input>
</el-form-item>
<el-form-item prop="approvalProcessName" :label="$t('disqualification.approvalProcessName')">
<el-input v-model="dataForm.approvalProcessName" :placeholder="$t('disqualification.approvalProcessName')">
<el-form-item prop="name" :label="$t('disqualification.approvalProcessName')">
<el-input v-model="dataForm.name" :placeholder="$t('disqualification.approvalProcessName')">
</el-input>
</el-form-item>
</el-form>
@ -36,8 +36,8 @@ export default {
visible: false,
customerTypeList:{},
dataForm: {
approvalProcessName: null,
approvalProcessCode:null
name: null,
code:null
},
productList:[]
};

View File

@ -1,14 +1,14 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-04-13 14:52:42
* @LastEditTime: 2023-07-07 09:55:32
* @LastEditors: zhp
* @Description:
-->
<template>
<div id="detailList">
<span v-for="(item,index) in injectData.qmsApprovalProcessStepDetailDTOList" :key="item.teamName">
<el-button type="text">{{item.teamName}}} </el-button>
<span v-for="(item,index) in injectData.qmsApprovalProcessStepDetailDTOList" :key="index">
{{item.teamName}}
<i v-if="index <+ injectData.qmsApprovalProcessStepDetailDTOList.length-1" class="el-icon-right"></i>
</span>
</div>

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-20 15:35:20
* @LastEditTime: 2023-07-12 15:02:56
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@ -66,7 +66,7 @@ const tableProps = [
},
{
prop: 'approvalProcessName',
label: i18n.t("disqualification.approvalProcessName"),
label: i18n.t("disqualification.name"),
align: 'center'
},
{
@ -114,26 +114,34 @@ export default {
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
type: 'input',
label: i18n.t('quality.code'),
placeholder: i18n.t('quality.code'),
param: 'code',
clearable: true
},
{
type: 'input',
label: i18n.t('quality.name'),
placeholder: i18n.t('quality.name'),
param: 'name',
clearable: true
},
{
type: "button",
btnName: i18n.t('search'),
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
@ -159,8 +167,8 @@ export default {
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.approvalProcessCode = dataForm.approvalProcessCode
this.listQuery.approvalProcessName = dataForm.approvalProcessName
this.listQuery.code = dataForm.code
this.listQuery.name = dataForm.name
this.listQuery.page = 1
this.getDataList()
this.searchOrUpdateVisible = false
@ -196,7 +204,7 @@ export default {
this.addOrEditTitle = this.$t('edit')
this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
this.$refs.addOrUpdate.init(val.data.id,true)
});
}
},
@ -205,6 +213,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1
this.listQuery.code = val.code ? val.code : null
this.listQuery.name = val.name ? val.name :null
this.getDataList();
break;
case "export":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-20 15:34:19
* @LastEditTime: 2023-07-12 14:57:28
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@ -102,26 +102,102 @@ export default {
urlOptions: {
getDataListURL: "/nonconform/qmsApprovalProcessConfiguration/page",
deleteURL: "/nonconform/qmsApprovalProcessConfiguration",
getProductURL: '/basic/qmsProduct/page'
},
tableProps,
tableBtn,
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'select',
label: i18n.t('disqualification.inspectionTypeId'),
placeholder: i18n.t('disqualification.inspectionTypeId'),
param: 'inspectionTypeId',
selectOptions: [
{
id: 0,
name: '监控'
},
{
id: 1,
name: '电芯来料检验'
},
{
id: 2,
name: 'IQC抽检'
},
{
id: 3,
name: 'IQC抽检2'
},
{
id: 4,
name: '原料抽检'
},
{
id: 5,
name: '进货外观检验'
},
{
id: 6,
name: '库内原料检验'
},
{
id: 7,
name: '来料检验'
},
{
id: 8,
name: '胶片'
},
{
id: 9,
name: '抽检'
},
{
id: 10,
name: '巡检'
},
{
id: 11,
name: '首检'
},
{
id: 12,
name: '末检'
},
{
id: 13,
name: '实时监测'
},
{
id: 14,
name: 'FQC抽检'
},
{
id: 15,
name: 'OQC抽检'
},
],
clearable: true,
filterable: true
},
{
type: 'select',
label: i18n.t('disqualification.productName'),
placeholder: i18n.t('disqualification.productName'),
param: 'productId',
selectOptions: [],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
},
{
type: "button",
@ -135,7 +211,29 @@ export default {
// components: {
// AddOrUpdate,
// },
mounted() {
this.getData();
},
methods: {
getData() {
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery,
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res.data)
this.formConfig[1].selectOptions = res.data.list.map((item) => {
return {
id: item.id,
name: item.productName
}
})
}
})
.catch(() => {
})
},
//search-bar
handleProductCancel() {
this.productOrUpdateVisible = false;
@ -199,6 +297,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.inspectionTypeId = val.inspectionTypeId ? val.inspectionTypeId : null
this.listQuery.productId = val.productId ? val.productId :null
this.getDataList();
break;
case "add":

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-06 15:12:57
* @LastEditTime: 2023-07-12 15:12:31
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="150px">
<el-form-item prop="inspectionTypeId" :label="$t('disqualification.inspectionTypeId')">
<el-select v-model="dataForm.inspectionTypeId" :placeholder="$t('disqualification.inspectionTypeId')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@ -123,27 +123,13 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
teamId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-20 15:34:38
* @LastEditTime: 2023-07-12 15:08:51
* @LastEditors: zhp
* @Description:
-->
@ -114,7 +114,8 @@ export default {
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
},
{
type: "button",
@ -156,7 +157,7 @@ export default {
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
this.$confirm(`确定对[处理团队=${val.data.teamName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",

View File

@ -1,12 +1,13 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-04 16:17:23
* @LastEditTime: 2023-07-12 14:39:06
* @LastEditors: zhp
* @Description:
-->
<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="inspectionPositionCode" :label="$t('basic.code')">
<el-input v-model="dataForm.inspectionPositionCode" :placeholder="$t('basic.code')">
</el-input>
@ -58,27 +59,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
inspectionPositionNumber: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
inspectionPositionCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
inspectionPositionName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-04 13:57:52
* @LastEditTime: 2023-07-11 15:53:48
* @LastEditors: zhp
* @Description:
-->
<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="customSamplingCode" :label="$t('basic.code')">
<el-input v-model="dataForm.customSamplingCode" :placeholder="$t('basic.code')">
</el-input>
@ -65,7 +65,7 @@
:placeholder="$i18nForm([$t('quality.minor'), $t('quality.unacceptable')])">
</el-input>
</el-form-item>
<el-form-item prop="totalAcceptable" :label="$i18nForm([$t('quality.total'), $t('quality.acceptable')])">
<!-- <el-form-item prop="totalAcceptable" :label="$i18nForm([$t('quality.total'), $t('quality.acceptable')])">
<el-input v-model="dataForm.totalAcceptable"
:placeholder="$i18nForm([$t('quality.total'), $t('quality.acceptable')])">
</el-input>
@ -74,7 +74,7 @@
<el-input v-model="dataForm.totalUnacceptable"
:placeholder="$i18nForm([$t('quality.total'), $t('quality.unacceptable')])">
</el-input>
</el-form-item>
</el-form-item> -->
<!-- <el-form-item prop="criticalSampleSize" :label="[$t('quality.fatalFlaw') + $t('quality.sampleSize')]">
<el-input v-model="dataForm.criticalSampleSize"
:placeholder="[$t('quality.fatalFlaw') + $t('quality.sampleSize')]">
@ -131,27 +131,20 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
customSamplingCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
customSamplingName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-04 16:18:38
* @LastEditTime: 2023-07-10 14:27:55
* @LastEditors: zhp
* @Description:
-->
<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="disposalMethodName" :label="$t('quality.disposalMethodName')">
<el-input v-model="dataForm.disposalMethodName" :placeholder="$t('quality.disposalMethodName')">
</el-input>
@ -58,27 +58,20 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
disposalMethodCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
disposalMethodName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},

View File

@ -0,0 +1,138 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-07-06 16:27:59
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="name" :label="$t('basic.name')">
<el-input v-model="dataForm.name" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="code" :label="$t('basic.code')">
<el-input v-model="dataForm.code" :placeholder="$t('basic.code')"></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",
// },
urlOptions: {
getSupplierList: "/supplier/qmsSupplier/page",
getProductList: "/basic/qmsProduct/page",
},
visible: false,
customerTypeList:{},
dataForm: {
code: null,
name: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(() => {});
// },
//
// getDict() {
// this.$http
// .get(this.urlOptions.getCustomerPageListURL, {
// params: this.listQuery,
// })
// .then(({ data: res }) => {
// this.dataListLoading = false;
// if (res.code !== 0) {
// this.customerTypeList = res.data
// }
// })
// },
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

@ -0,0 +1,41 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-07-10 14:18:29
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<span> {{ this.injectData.sampleRangeLow }} </span>~
<span> {{ this.injectData.sampleRangeHigh }} </span>
</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,14 +1,39 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-04 15:44:45
* @LastEditTime: 2023-07-12 14:28:44
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px">
<el-form-item prop="sampleRange" :label="$t('quality.sampleRange')">
<el-input v-model="dataForm.sampleRange" :placeholder="$t('quality.sampleRange')">
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="130px">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item prop="sampleRangeLow" :label="$t('quality.sampleRangeLow')">
<el-input v-model="dataForm.sampleRangeLow" :placeholder="$t('quality.sampleRangeLow')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sampleRangeHigh" :label="$t('quality.sampleRangeHigh')">
<el-input v-model="dataForm.sampleRangeHigh" :placeholder="$t('quality.sampleRangeHigh')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="inspectionLevel" :label="$t('quality.inspectionLevel')">
<el-select v-model="dataForm.inspectionLevel" :placeholder="$t('quality.inspectionLevel')">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="sampleSizeCode" :label="$t('quality.sampleSizeCode')">
<el-input v-model="dataForm.sampleSizeCode" :placeholder="$t('quality.sampleSizeCode')">
</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="fourPointZero" :label="$t('quality.fourPointZero')">
@ -92,12 +117,43 @@ export default {
label: '可用'
}],
visible: false,
options: [
{
id: 'S-1',
name: 'S-1'
},
{
id: 'S-2',
name: 'S-2'
},
{
id: 'S-3',
name: 'S-3'
},
{
id: 'S-4',
name: 'S-4'
},
{
id: '',
name: ''
},
{
id: 'Ⅱ',
name: 'Ⅱ'
},
{
id: 'Ⅲ',
name: 'Ⅲ'
}
],
dataForm: {
id: null,
id: undefined,
fourPointZero: null,
onePointFive:null,
onePointZero:null,
sampleRange: null,
sampleRangeHigh: null,
sampleRangeLow:null,
sixPointFive: null,
ten: null,
twoPointFive: null,
@ -107,6 +163,9 @@ export default {
zeroPointSixFive: null,
zeroPointTwoFive: null,
zeroPointZeroFour: null,
inspectionLevel: null,
sampleSizeCode: null,
sampleSize: null,
zeroPointZeroOne: null,
zeroPointZeroOneFive: null,
zeroPointZeroSixFive: null,
@ -117,27 +176,34 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
inspectionLevel: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sampleSizeCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sampleSize: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
sampleRangeLow: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},

View File

@ -0,0 +1,171 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-07-10 15:19:50
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<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="inspectionLevel" :label="$t('quality.inspectionLevel')">
<el-select v-model="dataForm.inspectionLevel" :placeholder="$t('quality.inspectionLevel')">
<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: "/sys/params/",
// infoURL: "/sys/params",
// },
urlOptions: {
getSupplierList: "/supplier/qmsSupplier/page",
getProductList: "/basic/qmsProduct/page",
},
options: [
{
label: 'S-1',
value:'S-1'
},
{
label: 'S-2',
value: 'S-2'
},
{
label: 'S-3',
value: 'S-3'
},
{
label: 'S-4',
value: 'S-4'
},
{
label: '',
value: ''
},
{
label: 'Ⅱ',
value: 'Ⅱ'
},
{
label: 'Ⅲ',
value: 'Ⅲ'
}
],
visible: false,
customerTypeList:{},
dataForm: {
sampleSize: null,
inspectionLevel: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(() => {});
// },
//
// getDict() {
// this.$http
// .get(this.urlOptions.getCustomerPageListURL, {
// params: this.listQuery,
// })
// .then(({ data: res }) => {
// this.dataListLoading = false;
// if (res.code !== 0) {
// this.customerTypeList = res.data
// }
// })
// },
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,20 +1,20 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-05-24 16:36:43
* @LastEditTime: 2023-07-12 14:34:59
* @LastEditors: zhp
* @Description:
-->
<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="inspectionStage" :label="$t('quality.inspectionStage')">
<el-select v-model="dataForm.inspectionStage" :placeholder="$t('quality.inspectionStage')">
<el-option v-for="item in inspectionStageList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('quality.inspectionStage')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('quality.inspectionStage')">
<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.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
@ -46,6 +46,15 @@
<el-form-item prop="dataSources" :label="$t('quality.dataSources')">
<el-input v-model="dataForm.dataSources" :placeholder="$t('quality.dataSources')"></el-input>
</el-form-item>
<el-form-item prop="userId" :label="$t('quality.userName')">
<el-select v-model="dataForm.userId" :placeholder="$t('quality.userName')">
<el-option v-for="item in userList" :key="item.id" :label="item.username" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="remark" :label="$t('quality.remark')">
<el-input v-model="dataForm.remark" :placeholder="$t('quality.remark')"></el-input>
</el-form-item>
</el-form>
</template>
@ -61,6 +70,7 @@ export default {
getSupplierList: "/supplier/qmsSupplier/page",
getProductList: "/basic/qmsProduct/page",
infoURL: "/quality/qmsTransferRecords/{id}",
getUserListURL: '/sys/user/page',
getTransferSchemeListURL: '/quality/qmsTransferScheme/page'
},
supplierList: [],
@ -155,6 +165,11 @@ export default {
}
],
visible: false,
listQuery: {
limit: 999,
page:1,
},
userList:[],
dataForm: {
id: null,
inspectionStage:null,
@ -166,36 +181,62 @@ export default {
transferInId: null,
transferInName: null,
transferOutId: null,
remark: null,
userId:null
},
};
},
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
inspectionStage: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
inspectionType: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
supplierId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
productId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
transferInId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
transferOutId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},
mounted () {
this.getData();
},
methods: {
init(id, ) {
this.dataForm.id = id || ""
@ -212,7 +253,9 @@ export default {
});
},
getData() {
this.$http.post(this.urlOptions.getSupplierList)
this.$http.get(this.urlOptions.getSupplierList, {
params:this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
@ -221,7 +264,22 @@ export default {
})
.catch(() => {
})
this.$http.post(this.urlOptions.getProductList)
this.$http
.get(this.urlOptions.getUserListURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.userList = res.data.list
}
})
this.$http.get(this.urlOptions.getProductList, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
@ -230,7 +288,9 @@ export default {
})
.catch(() => {
})
this.$http.post(this.urlOptions.getTransferSchemeListURL)
this.$http.get(this.urlOptions.getTransferSchemeListURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-05-24 16:39:37
* @LastEditTime: 2023-07-06 16:26:20
* @Description:
-->
<template>
@ -134,6 +134,12 @@ export default {
getSupplierList: "/supplier/qmsSupplier/page",
getProductList: "/basic/qmsProduct/page",
},
productList: [],
supplierList:[],
listQuery: {
limit: 999,
page:1
},
visible: false,
customerTypeList:{},
dataForm: {
@ -146,7 +152,7 @@ export default {
};
},
mounted () {
this.getData();
this.getData()
},
computed: {
// dataRule() {
@ -170,7 +176,9 @@ export default {
},
methods: {
getData() {
this.$http.post(this.urlOptions.getSupplierList)
this.$http.get(this.urlOptions.getSupplierList, {
params:this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
@ -179,7 +187,9 @@ export default {
})
.catch(() => {
})
this.$http.post(this.urlOptions.getProductList)
this.$http.get(this.urlOptions.getProductList, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-05-26 11:21:02
* @LastEditTime: 2023-07-06 16:12:01
* @LastEditors: zhp
* @Description:
-->
@ -22,24 +22,6 @@
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="criticalSampleSize">
(1)正常检查转入放宽检查最近
<el-input v-model="dataForm.normalToRelaxedOne" style="width: 10%;">
</el-input>
批中的
<el-input v-model="dataForm.normalToRelaxedTwo" style="width: 10%;">
</el-input>
批检验合格
</el-form-item>
<el-form-item prop="criticalSampleSize">
(2)放宽检查恢复正常检查最近
<el-input v-model="dataForm.relaxedToNormalOne" style="width: 10%;">
</el-input>
批中的
<el-input v-model="dataForm.relaxedToNormalTwo" style="width: 10%;">
</el-input>
批检验合格
</el-form-item>
<el-form-item prop="criticalSampleSize">
(3)正常检查转入加严检查最近
<el-input v-model="dataForm.normalToTightenedOne" style="width: 10%;">
@ -58,6 +40,24 @@
</el-input>
批检验合格
</el-form-item>
<el-form-item prop="criticalSampleSize">
(1)正常检查转入放宽检查最近
<el-input v-model="dataForm.normalToRelaxedOne" style="width: 10%;">
</el-input>
批中的
<el-input v-model="dataForm.normalToRelaxedTwo" style="width: 10%;">
</el-input>
批检验合格
</el-form-item>
<el-form-item prop="criticalSampleSize">
(2)放宽检查恢复正常检查最近
<el-input v-model="dataForm.relaxedToNormalOne" style="width: 10%;">
</el-input>
批中的
<el-input v-model="dataForm.relaxedToNormalTwo" style="width: 10%;">
</el-input>
批检验合格
</el-form-item>
</el-form>
</template>

View File

@ -2,16 +2,16 @@
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zhp
* @LastEditTime: 2023-05-24 16:01:06
* @LastEditTime: 2023-07-10 11:01:12
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="transferSchemeCode" :label="$t('basic.code')">
<el-input v-model="dataForm.transferSchemeCode" :placeholder="$t('basic.code')"></el-input>
<el-form-item prop="name" :label="$t('basic.name')">
<el-input v-model="dataForm.name" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="transferSchemeName" :label="$t('basic.code')">
<el-input v-model="dataForm.transferSchemeName" :placeholder="$t('basic.code')"></el-input>
<el-form-item prop="code" :label="$t('basic.code')">
<el-input v-model="dataForm.code" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
</el-form>
</template>
@ -33,8 +33,8 @@ export default {
visible: false,
customerTypeList:{},
dataForm: {
transferSchemeName: null,
transferSchemeCode:null
name: null,
code:null
}
};
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:54:08
* @LastEditTime: 2023-07-12 14:30:40
* @LastEditors: zhp
* @Description:
-->
@ -9,11 +9,11 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<!-- <el-badge :value="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@clickBtn="handleClick" />
</base-table>
@ -60,6 +60,11 @@ const tableProps = [
label: i18n.t("basic.code"),
align: 'center'
},
{
prop: 'customSamplingName',
label: i18n.t("quality.name"),
align: 'center'
},
{
prop: 'planCategory',
label: i18n.t("quality.planCategory"),
@ -131,6 +136,7 @@ const tableProps = [
{
prop: 'total',
label: i18n.t("quality.total"),
align: 'center',
children: [
{
prop: 'totalAcceptable',
@ -148,7 +154,7 @@ const tableProps = [
const tableBtn = [
{
type: "edit",
btnName: "编辑",
btnName: "编辑"
},
{
type: "delete",
@ -172,20 +178,19 @@ export default {
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'customSamplingCode',
clearable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: "success",
plain: true
},
{
type: "button",
@ -220,7 +225,7 @@ export default {
// console.log(key);
// console.log(key);
// this.listQuery.key = key;
this.listQuery.customSamplingCode = dataForm.customSamplingCode
this.listQuery.key = dataForm.customSamplingCode
// this.listQuery.name = dataForm.name
// this.listQuery.failureTypeStatus = dataForm.failureTypeStatus
this.listQuery.page = 1
@ -267,8 +272,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.getDataList();
this.listQuery.key = val.customSamplingCode ? val.val.customSamplingCode :null
this.getDataList()
break;
case "add":
this.addOrEditTitle = this.$t('add')

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:53:56
* @LastEditTime: 2023-07-11 15:38:25
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<!-- <el-badge :value="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@ -23,12 +23,12 @@
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<disposalMethod-add ref="addOrUpdate" @refreshDataList="successSubmit">
</disposalMethod-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</disposalMethod-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
<!-- <base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<disposalMethod-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></disposalMethod-search>
<disposalMethod-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></disposalMethod-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -41,7 +41,7 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-card>
</template>
@ -86,11 +86,15 @@ const tableBtn = [
type: "delete",
btnName: "删除",
},
{
type: "change",
btnName: "改变状态",
},
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
components: {
disposalMethodSearch,
// disposalMethodSearch,
disposalMethodAdd
},
data() {
@ -98,32 +102,45 @@ export default {
urlOptions: {
getDataListURL: "/quality/qmsDisposalMethod/page",
deleteURL: "/quality/qmsDisposalMethod",
submitURL: '/quality/qmsDisposalMethod'
},
tableProps,
tableBtn,
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'select',
label: i18n.t('basic.status'),
placeholder: i18n.t('basic.status'),
param: 'status',
selectOptions: [
{
id: '0',
name: '不可用'
},
{
id: '1',
name: '可用'
}
],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
@ -145,11 +162,11 @@ export default {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
this.$refs.searchOrUpdate.init()
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.disposalMethodStatus = dataForm.disposalMethodStatus
this.listQuery.key = dataForm.disposalMethodStatus
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
@ -172,7 +189,7 @@ export default {
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
this.getDataList()
},
});
} else {
@ -186,7 +203,27 @@ export default {
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
})
} else if (val.type === 'change') {
let obj = {
disposalMethodStatus: val.data.disposalMethodStatus === 0 ? 1 : 0,
id: val.data.id
}
this.$http.put(this.urlOptions.submitURL, obj)
.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.getDataList()
},
});
})
}
},
buttonClick(val) {
@ -194,7 +231,7 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.listQuery.status =val.status ? val.status : null
this.getDataList();
break;
case "add":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:53:49
* @LastEditTime: 2023-07-12 14:43:09
* @LastEditors: zhp
* @Description:
-->
@ -9,7 +9,7 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<!-- <el-badge :value="1" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge> -->
</SearchBar>
@ -23,12 +23,13 @@
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<InspectionPosition-add ref="addOrUpdate" @refreshDataList="successSubmit">
</InspectionPosition-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</InspectionPosition-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">
<!-- <failureType-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></failureType-search> -->
<inspectionPosition-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
</inspectionPosition-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -50,7 +51,7 @@
import basicPage from "@/mixins/basic-page"
import InspectionPositionAdd from "./components/InspectionPosition-add"
// import AddOrUpdate from './params-add-or-update'
// import failureTypeSearch from "./components/failureTypeSearch"
import inspectionPositionSearch from "./components/inspectionPositionSearch"
// import available from "./components/available.vue"
import basicSearch from "@/mixins/basic-search"
import i18n from "@/i18n"
@ -85,6 +86,7 @@ export default {
mixins: [basicPage, basicSearch],
components: {
// failureTypeSearch,
inspectionPositionSearch,
InspectionPositionAdd
},
data() {
@ -98,20 +100,26 @@ export default {
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('quality.code'),
placeholder: i18n.t('quality.code'),
param: 'code',
clearable: true
},
{
type: 'input',
label: i18n.t('quality.name'),
placeholder: i18n.t('quality.name'),
param: 'name',
clearable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: "success",
plain: true
},
{
type: "button",
@ -144,6 +152,7 @@ export default {
},
conditionSearchSubmit(dataForm) {
this.listQuery.code = dataForm.code
this.listQuery.name = dataForm.name
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
@ -188,7 +197,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.listQuery.code = val.code ? val.code : null
this.listQuery.name = val.name ? val.name : null
this.getDataList();
break;
case "add":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:53:43
* @LastEditTime: 2023-07-12 14:22:56
* @LastEditors: zhp
* @Description:
-->
@ -9,7 +9,7 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<!-- <el-badge :value="1" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge> -->
</SearchBar>
@ -23,12 +23,12 @@
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<samplingPlan-add ref="addOrUpdate" @refreshDataList="successSubmit">
</samplingPlan-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</samplingPlan-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">
<!-- <failureType-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit"></failureType-search> -->
<samplingPlan-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></samplingPlan-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" type="primary" plain class="btnTextStyle" @click="handleSearchCancel">
@ -50,49 +50,40 @@
import basicPage from "@/mixins/basic-page"
import samplingPlanAdd from "./components/samplingPlan-add"
// import AddOrUpdate from './params-add-or-update'
// import failureTypeSearch from "./components/failureTypeSearch"
// import available from "./components/available.vue"
import samplingPlanSearch from "./components/samplingPlanSearch.vue"
import lowHigh from "./components/lowHigh.vue"
import basicSearch from "@/mixins/basic-search"
import i18n from "@/i18n"
const tableProps = [
{
prop: 'sampleRange',
label: i18n.t("quality.sampleRange"),
align: 'center',
subcomponent: lowHigh,
},
{
prop: 'zeroPointZeroOne',
label: i18n.t("quality.zeroPointZeroOne"),
align: 'center'
},
{
prop: 'fourPointZero',
label: i18n.t("quality.fourPointZero"),
prop: 'zeroPointZeroOneFive',
label: i18n.t("quality.zeroPointZeroOneFive"),
align: 'center'
},
{
prop: 'onePointFive',
label: i18n.t("quality.onePointFive"),
align: 'center'
},
{
prop: 'onePointZero',
label: i18n.t("quality.onePointZero"),
prop: 'zeroPointZeroTwoFive',
label: i18n.t("quality.zeroPointZeroTwoFive"),
align: 'center'
},
{
prop: 'sixPointFive',
label: i18n.t("quality.sixPointFive"),
align: 'center'
},
{
prop: 'ten',
label: i18n.t("quality.ten"),
prop: 'zeroPointZeroFour',
label: i18n.t("quality.zeroPointZeroFour"),
align: 'center'
},
{
prop: 'twoPointFive',
label: i18n.t("quality.twoPointFive"),
align: 'center'
},
{
prop: 'zeroPointFour',
label: i18n.t("quality.zeroPointFour"),
prop: 'zeroPointZeroSixFive',
label: i18n.t("quality.zeroPointZeroSixFive"),
align: 'center'
},
{
@ -105,41 +96,52 @@ const tableProps = [
label: i18n.t("quality.zeroPointOneFive"),
align: 'center'
},
{
prop: 'zeroPointSixFive',
label: i18n.t("quality.zeroPointSixFive"),
align: 'center'
},
{
prop: 'zeroPointTwoFive',
label: i18n.t("quality.zeroPointTwoFive"),
align: 'center'
},
{
prop: 'zeroPointZeroFour',
label: i18n.t("quality.zeroPointZeroFour"),
prop: 'zeroPointFour',
label: i18n.t("quality.zeroPointFour"),
align: 'center'
},
{
prop: 'zeroPointZeroOne',
label: i18n.t("quality.zeroPointZeroOne"),
prop: 'zeroPointSixFive',
label: i18n.t("quality.zeroPointSixFive"),
align: 'center'
},
{
prop: 'zeroPointZeroOneFive',
label: i18n.t("quality.zeroPointZeroOneFive"),
prop: 'onePointZero',
label: i18n.t("quality.onePointZero"),
align: 'center'
},
{
prop: 'zeroPointZeroSixFive',
label: i18n.t("quality.zeroPointZeroSixFive"),
prop: 'onePointFive',
label: i18n.t("quality.onePointFive"),
align: 'center'
},
{
prop: 'zeroPointZeroTwoFive',
label: i18n.t("quality.zeroPointZeroTwoFive"),
prop: 'twoPointFive',
label: i18n.t("quality.twoPointFive"),
align: 'center'
},
{
prop: 'fourPointZero',
label: i18n.t("quality.fourPointZero"),
align: 'center'
},
{
prop: 'sixPointFive',
label: i18n.t("quality.sixPointFive"),
align: 'center'
},
{
prop: 'ten',
label: i18n.t("quality.ten"),
align: 'center'
},
]
const tableBtn = [
{
@ -154,7 +156,7 @@ const tableBtn = [
export default {
mixins: [basicPage, basicSearch],
components: {
// failureTypeSearch,
samplingPlanSearch,
samplingPlanAdd
},
data() {
@ -167,27 +169,67 @@ export default {
tableBtn,
searchOrEditTitle: '',
searchOrUpdateVisible: false,
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('quality.sampleSize'),
placeholder: i18n.t('quality.sampleSize'),
param: 'sampleSize',
clearable: true
},
{
type: 'select',
label: i18n.t('quality.inspectionLevel'),
placeholder: i18n.t('quality.inspectionLevel'),
param: 'inspectionLevel',
selectOptions: [
{
id: 'S-1',
name: 'S-1'
},
{
id: 'S-2',
name: 'S-2'
},
{
id: 'S-3',
name: 'S-3'
},
{
id: 'S-4',
name: 'S-4'
},
{
id: '',
name: ''
},
{
id: 'Ⅱ',
name: 'Ⅱ'
},
{
id: 'Ⅲ',
name: 'Ⅲ'
}
],
clearable: true,
filterable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
@ -195,6 +237,10 @@ export default {
// components: {
// AddOrUpdate,
// },
deactivated() {
this.listQuery.inspectionLevel = null
this.listQuery.sampleSize = null
},
methods: {
//search-bar
handleProductCancel() {
@ -213,7 +259,8 @@ export default {
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.code = dataForm.code
this.listQuery.inspectionLevel = dataForm.inspectionLevel
this.listQuery.sampleSize = dataForm.sampleSize
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
@ -258,7 +305,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.listQuery.inspectionLevel = val.inspectionLevel ? val.inspectionLevel :null
this.listQuery.sampleSize = val.sampleSize ? val.sampleSize :null
this.getDataList();
break;
case "add":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:53:38
* @LastEditTime: 2023-07-12 14:30:03
* @LastEditors: zhp
* @Description:
-->
@ -9,7 +9,7 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<el-badge :value="5" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</SearchBar>
@ -28,7 +28,7 @@
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<transferRecords-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
<transferRecords-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
</transferRecords-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
@ -133,7 +133,8 @@ export default {
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: "success",
plain: true
},
{
type: "button",
@ -144,9 +145,14 @@ export default {
],
};
},
// components: {
// AddOrUpdate,
// },
deactivated() {
this.listQuery.startTime =null
this.listQuery.endTime = null
this.listQuery.inspectionStage = null
this.listQuery.inspectionTypeId = null
this.listQuery.productId = null
this.listQuery.supplierId = null
},
methods: {
//search-bar
handleProductCancel() {
@ -215,7 +221,12 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.listQuery.startTime = null
this.listQuery.endTime = null
this.listQuery.inspectionStage = null
this.listQuery.inspectionTypeId = null
this.listQuery.productId = null
this.listQuery.supplierId = null
this.getDataList();
break;
case "add":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-06-02 13:53:32
* @LastEditTime: 2023-07-12 14:32:41
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="1" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</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"
@ -28,7 +28,7 @@
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<transferScheme-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
<transferScheme-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
</transferScheme-search>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
@ -123,20 +123,26 @@ export default {
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable: true
},
{
type: 'input',
label: i18n.t('basic.code'),
placeholder: i18n.t('basic.code'),
param: 'code',
clearable: true
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: "success",
plain: true
},
{
type: "button",
@ -147,9 +153,6 @@ export default {
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar
handleProductCancel() {
@ -168,9 +171,8 @@ export default {
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.transferSchemeCode = dataForm.transferSchemeCode
this.listQuery.transferSchemeName = dataForm.transferSchemeName
this.listQuery.name = dataForm.name
this.listQuery.code = dataForm.code
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
@ -215,7 +217,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.failureTypeStatus = null
this.listQuery.name = val.name ? val.name : null
this.listQuery.code = val.code ? val.code : null
this.getDataList();
break;
case "add":

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-04-17 10:59:15
* @LastEditTime: 2023-07-11 14:31:18
* @LastEditors: zhp
* @Description:
-->

View File

@ -0,0 +1,59 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 14:12:10
* @LastEditTime: 2023-07-11 14:40:39
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<el-switch @change="changeStatus" v-model="injectData.ment" :active-value="1"
:inactive-value="0">
</el-switch>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({}),
},
},
data() {
return {
urlOptions: {
submitURL: "/supplier/qmsSupplier"
}
}
},
methods: {
//
changeStatus () {
//
let obj= {
ment: this.injectData.ment,
id:this.injectData.id
}
this.$http.put(this.urlOptions.submitURL, obj)
.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)
console.log(this.$parent.$parent.$parent.$parent.$parent)
this.$parent.$parent.$parent.$parent.$parent.$parent.getDataList()
},
});
})
}
},
};
</script>

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-05 16:38:54
* @LastEditTime: 2023-07-11 14:59:11
* @LastEditors: zhp
* @Description:
-->
@ -26,8 +26,8 @@
</el-input>
</el-form-item>
<el-form-item prop="statisticalValue" :label="$t('supplier.statisticalValue')">
<K v-model="dataForm.closedLoop" :active-value="1" :inactive-value="0">
</K>
<el-switch v-model="dataForm.closedLoop" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-form>
</template>

View File

@ -1,16 +1,16 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-19 15:29:42
* @LastEditTime: 2023-07-12 16:16:30
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="evaluationTemplateId" :label="$t('supplier.evaluationTemplateName')">
<el-select v-model="dataForm.evaluationTemplateId" :placeholder="$t('supplier.evaluationTemplateName')"
@change="getProductCode">
<el-option v-for="item in templateList" :key="item.id" :label="item.name" :value="item.id">
<el-option v-for="item in templateList" :key="item.id" :label="item.title" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -118,27 +118,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
evaluationTemplateId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
evaluationType: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
title: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-16 14:22:14
* @LastEditTime: 2023-07-11 16:57:00
* @LastEditors: zhp
* @Description:
-->
@ -138,6 +138,38 @@ export default {
.catch(() => {});
},
//
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (Number(this.dataForm.online) <= Number(this.dataForm.offline)) {
this.$message({
message: "上限要大于下限",
type: "warning",
duration: 500,
onClose: () => {
},
});
}
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(
function () {
this.$refs["dataForm"].validate((valid) => {

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-19 14:20:14
* @LastEditTime: 2023-07-12 15:46:50
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="productId" :label="$t('supplier.materialName')">
<el-select v-model="dataForm.productId" :placeholder="$t('supplier.materialName')" @change="getProductCode">
<el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
@ -106,27 +106,55 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
productId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
supplierId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
supplierBatch: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
offlineTime: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change ",
},
],
defectiveQuantity: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
undesirablePhenomena: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
productCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},

View File

@ -1,20 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-06-09 15:05:26
* @LastEditTime: 2023-06-09 15:05:26
* @LastEditors: zhp
* @Description:
-->
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-08 15:13:41
* @LastEditTime: 2023-07-12 16:19:42
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="code" :label="$t('basic.code')">
<el-input v-model="dataForm.code" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -68,37 +60,30 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
code: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
name: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},
methods: {
init(id, ) {
init(id) {
this.dataForm.id = id || ""
// this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
this.$refs["dataForm"].resetFields()
if (this.dataForm.id) {
this.getInfo();
} else {

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-18 15:40:53
* @LastEditTime: 2023-07-12 15:49:14
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="productId" :label="$t('supplier.materialName')">
<el-select v-model="dataForm.productId" :placeholder="$t('supplier.materialName')" @change="getProductCode">
<el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
@ -124,6 +124,7 @@ export default {
causeAnalysis:null,
closedLoop: null,
everlastMeasures: null,
productCode:null,
interimMeasures:null,
lostHour: null,
place: null,
@ -136,27 +137,41 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
productId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
problemBatch: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
supplierId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
productCode: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
applicationDate: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-18 14:21:19
* @LastEditTime: 2023-07-12 15:54:54
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="code" :label="$t('supplier.code')">
<el-input v-model="dataForm.code" :placeholder="$t('supplier.code')" />
</el-form-item>
@ -18,6 +18,10 @@
<el-input v-model="dataForm.abbreviation" :placeholder="$t('supplier.abbreviation')">
</el-input>
</el-form-item>
<el-form-item prop="grade" :label="$t('supplier.grade')">
<el-input v-model="dataForm.grade" :placeholder="$t('supplier.grade')">
</el-input>
</el-form-item>
<el-form-item prop="supplierTypeId" :label="$t('supplier.supplierType')">
<el-select v-model="dataForm.supplierTypeId" :placeholder="$t('supplier.supplierType')">
<el-option v-for="item in supplierTypeList" :key="item.id" :label="item.name" :value="item.id">
@ -34,6 +38,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="supplierStatus" :label="$t('supplier.supplierStatus')">
<el-select v-model="dataForm.supplierStatus" :placeholder="$t('supplier.supplierStatus')">
<el-option v-for="item in supplierStatus" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="contact" :label="$t('supplier.contact')">
<el-input v-model="dataForm.contact" :placeholder="$t('supplier.contact')">
</el-input>
@ -91,7 +101,21 @@ export default {
{
value: 1,
label: '可用'
}],
}
],
supplierStatus: [{
value: 0,
label: '合格'
},
{
value: 1,
label: '不合格'
},
{
value: 2,
label: '黑名单'
}
],
enterpriseNatureList: [
{
value: 0,
@ -128,6 +152,7 @@ export default {
name:null,
address: null,
abbreviation: null,
supplierStatus:null,
grade: null,
contact:null,
contactEmail:null,
@ -141,27 +166,34 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
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",
},
],
};
},
},

View File

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-18 09:36:39
* @LastEditTime: 2023-07-12 15:55:44
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="productId" :label="$t('supplier.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('supplier.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.productName" :value="item.id">
@ -14,7 +14,7 @@
</el-select>
</el-form-item>
<el-form-item prop="supplierId" :label="$t('supplier.supplierName')">
<el-select v-model="dataForm.supplierList" :placeholder="$t('supplier.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('supplier.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
@ -36,8 +36,8 @@ export default {
data() {
return {
urlOptions: {
submitURL: "/supplier/qmsSupplierType",
infoURL: "/supplier/qmsSupplierType/{id}",
submitURL: "/supplier/qmsSupplierProduct",
infoURL: "/supplier/qmsSupplierProduct/{id}",
getProductListURL: '/basic/qmsProduct/page',
// getCodeURL: '/supplier/qmsSupplierType/getCode',
getSupplierListURL: '/supplier/qmsSupplier/page'
@ -67,27 +67,20 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
supplierId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
productId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
]
};
},
},
@ -130,7 +123,7 @@ export default {
//
getInfo() {
this.$http
.get(`/supplier/qmsSupplierType/${this.dataForm.id}`)
.get(`/supplier/qmsSupplierProduct/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);

View File

@ -0,0 +1,136 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 16:20:26
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="name" :label="$t('basic.name')">
<el-input v-model="dataForm.name" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<!-- <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/qmsSupplierRequirementListGroup",
infoURL: "/supplier/qmsSupplierRequirementListGroup/{id}"
// getTypeListURL: '/basic/qmsProductType/page'
},
options: [{
value: 0,
label: '不可用'
},
{
value: 1,
label: '可用'
}],
typeList:[],
visible: false,
listQuery: {
limit: 999,
page:1
},
dataForm: {
id: "",
code:null,
name: null,
supplierTypeStatus:null,
},
};
},
computed: {
dataRule() {
return {
code: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
name: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
]
};
},
},
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()
}
});
},
//
getInfo() {
this.$http
.get(`/supplier/qmsProjectType/${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

@ -1,12 +1,12 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-04-17 10:56:39
* @LastEditTime: 2023-07-12 15:58:36
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @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="code" :label="$t('basic.code')">
<el-input v-model="dataForm.code" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
@ -66,27 +66,27 @@ export default {
computed: {
dataRule() {
return {
// dictLabel: [
// {
// 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",
// },
// ],
code: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
name: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
supplierTypeStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "change",
},
],
};
},
},

View File

@ -1,14 +1,14 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-20 15:39:07
* @LastEditTime: 2023-07-11 15:20:16
* @LastEditors: zhp
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-tabs @tab-click="clickTabs" tab-position="left" style="height: 200px;">
<el-tabs @tab-click="clickTabs" tab-position="left">
<el-tab-pane v-for="(item,index) in projectTypeList" :name="item.id" :key="index" :label="item.name">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
</SearchBar>
@ -112,7 +112,7 @@ export default {
type: 'input',
label: i18n.t('supplier.name'),
placeholder: i18n.t('supplier.name'),
param: 'name'
param: 'title'
},
{
type: 'input',
@ -275,7 +275,7 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.name = val.name ? val.name : undefined
this.listQuery.title = val.title ? val.title : undefined
this.listQuery.code = val.code ? val.code : undefined
// console.log(i18n);
this.listQuery.page = 1;

View File

@ -1,8 +1,8 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-28 14:04:45
* @LastEditors: DY
* @LastEditTime: 2023-07-12 16:05:36
* @LastEditors: zhp
* @Description: 评估计划
-->
<template>
@ -144,8 +144,8 @@ export default {
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
// plain: true,
color: "success",
plain: true
},
],
};

View File

@ -167,7 +167,7 @@ export default {
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
color: "success",
// plain: true,
},
{
@ -175,7 +175,7 @@ export default {
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true,
}
],
};
@ -224,7 +224,12 @@ export default {
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res.data);
this.formConfig[1].selectOptions = res.data.list
this.formConfig[1].selectOptions = res.data.list.map((item) => {
return {
id: item.id,
name: item.title,
}
})
}
})
.catch(() => {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-06-08 14:29:46
* @LastEditTime: 2023-06-16 14:20:12
* @LastEditTime: 2023-07-11 16:38:02
* @LastEditors: zhp
* @Description:
-->
@ -20,7 +20,7 @@
{{item.name}}
</span>
<el-button style="margin-left:5px" type="text" icon="el-icon-edit" @click="handleEdit(item.id)"></el-button>
<el-progress :stroke-width="26" :percentage="item.online ? item.online : ''">
<el-progress :stroke-width="26" :percentage="item.online ? item.online : 0 ">
</el-progress>
</div>
</el-tooltip>

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-20 15:38:40
* @LastEditTime: 2023-07-12 15:18:25
* @LastEditors: zhp
* @Description:
-->
@ -173,15 +173,15 @@ export default {
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
// plain: true,
color: "success",
plain: true,
},
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true,
}
],
};

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-06-08 14:29:46
* @LastEditTime: 2023-06-20 15:38:33
* @LastEditTime: 2023-07-12 16:03:12
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
@ -23,8 +23,8 @@
<!-- 弹窗, 新增 / 修改 -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<projectsType-add ref="addOrUpdate" @refreshDataList="successSubmit">
</projectsType-add>
<projectType-add ref="addOrUpdate" @refreshDataList="successSubmit">
</projectType-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible" @cancel="handleSearchCancel"
@ -100,20 +100,24 @@ export default {
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('supplier.code'),
placeholder: i18n.t('supplier.code'),
param: 'code'
},
{
type: 'input',
label: i18n.t('supplier.name'),
placeholder: i18n.t('supplier.name'),
param: 'name'
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
color: "success",
plain:true
},
{
type: "button",
@ -127,7 +131,7 @@ export default {
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true
}
],
};
@ -250,6 +254,8 @@ export default {
case "search":
// this.listQuery.paramCode = val.paramCode;
// console.log(i18n);
this.listQuery.name = val.name ? val.name : null
this.listQuery.code = val.code ? val.code : null
this.listQuery.page = 1
this.getDataList()
break;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-20 15:38:27
* @LastEditTime: 2023-07-11 14:44:36
* @LastEditors: zhp
* @Description:
-->
@ -96,7 +96,7 @@ const tableProps = [
{
prop: "closedLoop",
label: i18n.t('supplier.closedLoop'),
filter: supplier('whether'),
filter: supplier('whether')
}
];
const tableBtn = [
@ -159,11 +159,11 @@ export default {
name:'全部'
},
{
id: 0,
id: '0',
name: '否'
},
{
id: 1,
id: '1',
name: '是'
}
],
@ -209,15 +209,15 @@ export default {
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
// plain: true,
color: "success",
plain: true
},
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true
}
],
};
@ -370,7 +370,7 @@ export default {
// this.listQuery.paramCode = val.paramCode;
this.listQuery.productName = val.productName ? val.productName : undefined
this.listQuery.problemDescription = val.problemDescription ? val.problemDescription : undefined
this.listQuery.closedLoop = closedLoop ? closedLoop : undefined
this.listQuery.closedLoop = val.closedLoop ? val.closedLoop : undefined
this.listQuery.supplierName = val.supplierName ? val.supplierName : undefined
this.listQuery.startTime = val.timeSlot ? val.timeSlot[0] : undefined
this.listQuery.endTime = val.timeSlot ? val.timeSlot[1] : undefined

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-20 15:38:21
* @LastEditTime: 2023-07-11 14:35:52
* @LastEditors: zhp
* @Description:
-->
@ -59,10 +59,9 @@ import supplierProductSearch from "./components/supplierProductSearch.vue"
import supplierAdd from "./components/supplier-add.vue"
import inputArea from "./components/inputArea"
import innerTable from "./components/innerTable"
// import available from "./components/available.vue"
// import radio from "./components/radio.vue"
import changeStatus from "./components/changeStatus.vue"
import i18n from "@/i18n"
// import i18n from "@/i18n";
import supplier from '@/filters/supplier'
const tableProps = [
{
prop: "detail",
@ -90,9 +89,15 @@ const tableProps = [
prop: "address",
label: i18n.t('supplier.address'),
},
{
prop: "supplierStatus",
label: i18n.t('supplier.supplierStatus'),
filter: supplier('supplierStatus'),
},
{
prop: "ment",
label: i18n.t('supplier.ment'),
subcomponent: changeStatus
}
];
const tableBtn = [
@ -184,15 +189,15 @@ export default {
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
// plain: true,
color: "success",
plain: true
},
{
type: "button",
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true
}
],
};
@ -284,7 +289,7 @@ export default {
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
this.getDataList()
},
});
} else {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-04-17 14:23:17
* @LastEditTime: 2023-06-20 15:38:13
* @LastEditTime: 2023-07-12 15:57:57
* @LastEditors: zhp
* @Description:
-->
@ -9,9 +9,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
highlight-current-row :limit="listQuery.limit" :table-data="tableData" @current-change="handleCurrentChange">
@ -110,20 +110,18 @@ export default {
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('supplier.supplierName'),
placeholder: i18n.t('supplier.supplierName'),
param: 'supplierName'
},
{
type: "button",
btnName: i18n.t('supplier.supplierRelevance'),
name: "supplierRelevance",
color: "primary",
color: "success",
plain:true
},
{
type: "button",
@ -220,7 +218,7 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.supplierName = val.supplierName ? val.supplierName : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();

View File

@ -0,0 +1,257 @@
<!--
* @Author: zhp
* @Date: 2023-06-08 14:29:46
* @LastEditTime: 2023-07-12 16:24:41
* @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="2" 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">
<supplierRequirementListGroup-add ref="addOrUpdate" @refreshDataList="successSubmit">
</supplierRequirementListGroup-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">
<projectType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit">
</projectType-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 projectTypeSearch from "./components/projectTypeSearch.vue"
import supplierRequirementListGroupAdd from "./components/supplierRequirementListGroup-add.vue"
import i18n from "@/i18n"
// import i18n from "@/i18n";
const tableProps = [
{
prop: "name",
label: i18n.t('supplier.name'),
}
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('edit'),
},
{
type: "delete",
btnName: i18n.t('delete'),
}
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/supplier/qmsSupplierRequirementListGroup/page",
deleteURL: "/supplier/qmsSupplierRequirementListGroup",
exportURL: '/supplier/qmsSupplierRequirementListGroup/export',
submitURL: '/supplier/qmsSupplierRequirementListGroup'
},
tableProps,
tableBtn,
productData: {},
dataForm:{
limit: 999,
page:1
},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('supplier.name'),
placeholder: i18n.t('supplier.name'),
param: 'name'
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "success",
plain:true
},
{
type: "button",
btnName: i18n.t('search'),
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
supplierRequirementListGroupAdd
},
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.name = dataForm.name
this.listQuery.code = dataForm.code
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
exportHandle() {
this.$http.get(this.urlOptions.exportURL, { responseType: 'blob' }, {
...this.dataForm
}).then((res) => {
console.log(res)
// if (res !== 0) {
// return this.$message.error(res.msg)
// }
let fileName = ''
const contentDisposition = res.headers['content-disposition']
if (contentDisposition) {
const temp = res.headers['content-disposition']
.split(';')[1]
.split('=')[1]
// --Node.js使iconv-lite
fileName = decodeURI(temp)
console.log(temp)
}
const blob = new Blob([res.data])
const reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
const a = document.createElement('a')
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
}).catch(() => { })
},
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;
// console.log(i18n);
this.listQuery.name = val.name ? val.name : null
this.listQuery.code = val.code ? val.code : null
this.listQuery.page = 1
this.getDataList()
break;
case "export":
this.exportHandle()
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
}
},
},
};
</script>

View File

@ -2,9 +2,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
<el-badge :value="2" class="item">
<!-- <el-badge :value="2" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</el-badge>
</el-badge> -->
</SearchBar>
<base-table id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
@ -104,20 +104,24 @@ export default {
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: 'input',
label: i18n.t('supplier.name'),
placeholder: i18n.t('supplier.name'),
param: 'name'
},
{
type: 'input',
label: i18n.t('supplier.code'),
placeholder: i18n.t('supplier.code'),
param: 'code'
},
{
type: "button",
btnName: i18n.t('add'),
name: "add",
color: "primary",
color: "success",
plain:true
},
{
type: "button",
@ -131,7 +135,7 @@ export default {
btnName: i18n.t('export'),
name: "export",
color: "primary",
// plain: true,
plain: true
}
],
};
@ -283,7 +287,8 @@ export default {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.name = val.name ? val.name :null
this.listQuery.code = val.code ? val.code : null
// console.log(i18n);
this.listQuery.page = 1;
this.getDataList();