74 Commits

Author SHA1 Message Date
helloDy
9f485a35e9 Merge branch 'master' into dy 2023-08-25 14:46:33 +08:00
helloDy
b1749486fe 提交 2023-08-25 11:11:34 +08:00
zhp
2859ec78c4 Merge pull request 'zhp' (#30) from zhp into master
Reviewed-on: #30
2023-07-21 17:04:29 +08:00
‘937886381’
a17d258934 Merge branch 'master' into zhp 2023-07-21 17:03:56 +08:00
‘937886381’
837991ee91 表格计算新增 2023-07-21 17:03:25 +08:00
258b9f1256 Merge pull request 'dy' (#29) from dy into master
Reviewed-on: #29
2023-07-21 16:47:13 +08:00
helloDy
bcdb04059b 冲突 2023-07-21 16:46:28 +08:00
helloDy
2ba0a42a1f 供应商 2023-07-21 16:45:10 +08:00
94a359fe1e Merge pull request '更新8Dbug' (#28) from zwq into master
Reviewed-on: #28
2023-07-20 15:07:35 +08:00
zwq
d942fd83f8 更新8Dbug 2023-07-20 15:07:20 +08:00
931fb70ee9 Merge pull request '更新nav-tab标签首页可以关闭' (#27) from zwq into master
Reviewed-on: #27
2023-07-20 09:08:09 +08:00
zwq
97fe6d23b3 更新nav-tab标签首页可以关闭 2023-07-20 09:07:53 +08:00
zhp
93f92f42c5 Merge pull request '客户质量新增' (#26) from zhp into master
Reviewed-on: #26
2023-07-19 17:03:32 +08:00
‘937886381’
ab30435246 客户质量新增 2023-07-19 17:02:32 +08:00
26a0d9827c Merge pull request '改变navbar小图标样式' (#25) from zwq into master
Reviewed-on: #25
2023-07-19 16:50:11 +08:00
zwq
7d1e82b818 改变navbar小图标样式 2023-07-19 16:49:48 +08:00
005143cd2d Merge pull request 'zhp' (#24) from zhp into master
Reviewed-on: #24
2023-07-19 09:38:08 +08:00
‘937886381’
05c4374d36 Merge branch 'master' into zhp 2023-07-19 09:24:03 +08:00
‘937886381’
b810720fbd 修改bug 2023-07-19 09:23:37 +08:00
zhp
cdca6407ff Merge pull request 'zhp' (#23) from zhp into master
Reviewed-on: #23
2023-07-17 17:01:46 +08:00
‘937886381’
f002123cf5 Merge branch 'master' into zhp 2023-07-17 17:00:50 +08:00
‘937886381’
bc6ae3a005 修改bug 2023-07-17 17:00:11 +08:00
7cee18e20d Merge pull request '更新8D的bug' (#22) from zwq into master
Reviewed-on: #22
2023-07-17 15:50:23 +08:00
zwq
675b716a32 更新8D的bug 2023-07-17 15:50:12 +08:00
7acd83e501 Merge pull request '更新8D' (#21) from zwq into master
Reviewed-on: #21
2023-07-17 10:18:51 +08:00
zwq
0626237912 更新8D 2023-07-17 10:18:06 +08:00
bef845eb3d Merge pull request 'dy' (#20) from dy into master
Reviewed-on: #20
2023-07-17 08:56:23 +08:00
‘937886381’
f8dd086cf9 修改页面 2023-07-14 16:01:10 +08:00
helloDy
3e9e5f82db 解决冲突 2023-07-14 15:57:47 +08:00
helloDy
229b59f424 更新 2023-07-14 15:50:58 +08:00
zhp
2866927528 Merge pull request 'zhp' (#19) from zhp into master
Reviewed-on: #19
2023-07-14 15:37:23 +08:00
‘937886381’
9702f23d55 Merge branch 'master' into zhp 2023-07-14 15:36:44 +08:00
‘937886381’
87957315b3 客户质量模块 2023-07-14 15:36:21 +08:00
ec4f3fcf04 Merge pull request '更新8d处理和管理' (#18) from zwq into master
Reviewed-on: #18
2023-07-14 14:42:48 +08:00
zwq
e27ef93af9 更新8d处理和管理 2023-07-14 14:42:31 +08:00
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
zwq
8d2f26293e 更新8D处理中心和管理中心 2023-07-04 09:26:40 +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
251345fad8 Merge pull request '更新8D管理中心' (#10) from zwq into master
Reviewed-on: #10
2023-06-30 16:29:45 +08:00
zwq
3e2dd63f36 更新8D管理中心 2023-06-30 16:29:32 +08:00
b11683e519 Merge pull request '更新8D处理中心' (#9) from zwq into master
Reviewed-on: #9
2023-06-30 11:14:46 +08:00
zwq
73578abfb4 更新8D处理中心 2023-06-30 11:14:09 +08:00
185a99ca2c Merge pull request '修改bug' (#8) from zwq into master
Reviewed-on: #8
2023-06-28 16:55:05 +08:00
zwq
0405ccfa25 修改bug 2023-06-28 16:54:46 +08:00
ec00c58c6c Merge pull request '更新中英文切换部分无效' (#7) from zwq into master
Reviewed-on: #7
2023-06-28 15:42:35 +08:00
zwq
6a03ac5a9e 更新中英文切换部分无效 2023-06-28 15:42:16 +08:00
zhp
a7df5e4bcd Merge pull request 'zhp' (#6) from zhp into master
Reviewed-on: #6
2023-06-28 14:24:11 +08:00
‘937886381’
ae1a9c1883 Merge branch 'master' into zhp 2023-06-28 14:22:20 +08:00
‘937886381’
460cca785b 更新代码 2023-06-28 14:21:52 +08:00
zhp
34c54e7633 Merge pull request 'dy' (#5) from dy into master
Reviewed-on: #5
2023-06-28 14:18:36 +08:00
helloDy
063c2da768 merge 2023-06-28 14:05:58 +08:00
helloDy
80796fd241 project 2023-06-28 13:58:24 +08:00
09a7392e49 Merge pull request 'zhp' (#4) from zhp into master
Reviewed-on: #4
2023-06-21 17:10:01 +08:00
‘937886381’
6489dcc55c Merge branch 'master' into zhp 2023-06-21 16:57:15 +08:00
‘937886381’
9ebd455859 更新模块 2023-06-21 16:56:28 +08:00
316 changed files with 48309 additions and 2217 deletions

83
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",
@@ -15086,6 +15087,11 @@
"is-plain-obj": "^1.0.0"
}
},
"sortablejs": {
"version": "1.10.2",
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.10.2.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
},
"source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
@@ -16940,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",
@@ -16999,6 +17074,14 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
"vuedraggable": {
"version": "2.24.3",
"resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-2.24.3.tgz",
"integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==",
"requires": {
"sortablejs": "1.10.2"
}
},
"vuex": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz",

View File

@@ -15,7 +15,7 @@
"axios": "^0.19.2",
"babel-eslint": "^8.0.1",
"babel-plugin-component": "^1.1.1",
"code-brick-zj": "0.0.7",
"code-brick-zj": "1.0.2",
"core-js": "^3.6.5",
"echarts": "^5.4.2",
"element-theme": "^2.0.1",
@@ -33,6 +33,7 @@
"vue-cron": "^1.0.9",
"vue-i18n": "^8.18.2",
"vue-router": "3.0.7",
"vuedraggable": "^2.24.3",
"vuex": "^3.5.1"
},
"devDependencies": {

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2022-08-22 14:57:50
* @LastEditors: zhp
* @LastEditTime: 2023-05-12 14:03:44
* @LastEditors: DY
* @LastEditTime: 2023-08-01 14:42:59
* @Description:
-->
<!DOCTYPE html>
@@ -38,7 +38,9 @@
<!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV==='dev' ) { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.23:8080';
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.76:8080/ym-pass';
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.23:8080/';
// window.SITE_CONFIG['apiURL'] = 'http://192.168.0.31:8080/';
</script>
<% } %>
<!-- 集成测试环境 -->

BIN
src/assets/img/add_new.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

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

View File

@@ -0,0 +1,66 @@
/*
* @Date: 2020-12-29 16:49:28
* @LastEditors: zwq
* @LastEditTime: 2023-07-03 10:40:31
* @FilePath: \basic-admin\src\filters\basicData\index.js
* @Description:
*/
import moment from 'moment'
const table = {
eightDisciplineType: {
1: '客诉问题',
2: '重大质量问题',
0: '重复发生问题',
},
examineStatus: {
1: '需要审批',
0: '不需要审批',
},
gradeFinish: {
1: '已打分',
0: '未打分',
},
step: {
0: 'D0',
1: 'D1',
2: 'D2',
3: 'D3',
4: 'D4',
5: 'D5',
6: 'D6',
7: 'D7',
8: 'D8',
},
containmentLocaleName:
{
1: "装配线",
2: "生产线",
3: "实验室",
4: "成品在途",
5: "第三方中间商",
},
developCountermeasuresName:
{
1: "让步接收",
2: "分选返工",
3: "隔离",
4: "退换货",
5: "通知供应商",
},
}
export function timeFormatter(timeObj) {
if (timeObj) {
return moment(timeObj).format('YYYY-MM-DD HH:mm:ss')
} else {
return '-'
}
}
export default function (dictTable) {
return function (val) {
return table?.[dictTable]?.[val]
}
}

View File

@@ -0,0 +1,33 @@
/*
* @Date: 2020-12-29 16:49:28
* @LastEditors: zhp
* @LastEditTime: 2023-07-13 15:52:31
* @FilePath: \basic-admin\src\filters\DataDict\index.js
* @Description: 部分常量的数据字典定义
*/
const table = {
currentStage:{
0: '接受投诉阶段',
1: '解释澄清阶段',
2: '提出解决方案阶段',
3: '回访阶段'
},
questionType: {
0: '产品质量题',
1: '售后服务题',
2: '物流配送问题',
3: '单关问题',
4: '4系统故问题'
},
status: {
0: '不可用',
1: '可用'
},
}
export default function (dictTable) {
return function (val) {
return table?.[dictTable]?.[val]
}
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
import module from './en'
import module from './eng'
const t = {}
t.module = module

View File

@@ -13,6 +13,7 @@ t.brand.mini = 'qms'
t.public = {}
t.public.operation = '操作'
t.public.activate = '启动'
t.add = '新增'
t.delete = '删除'
@@ -42,6 +43,13 @@ t.available = '可用'
t.notAvailable = '不可用'
t.time = '时间段'
t.parameter = '台差参数'
t.configuration = '配置'
t.uploadFile = '上传'
t.detail = '查看详情'
t.preview = '预览'
t.edit = '编辑'
t.finished = '已完成'
t.implementation = '实施中'
@@ -49,9 +57,11 @@ t.parameter = '台差参数'
t.prompt = {}
t.prompt.title = '提示'
t.prompt.info = '确定进行[{handle}]操作?'
t.prompt.delete = '是否对[{object}]进行删除操作?'
t.prompt.success = '操作成功'
t.prompt.failed = '操作失败'
t.prompt.deleteBatch = '请选择删除项'
t.prompt.chooseGroup = '请选择要求分组'
t.validate = {}
t.validate.required = '必填项不能为空'
@@ -286,13 +296,26 @@ 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 = '检验计划'
t.basic.customerTypeName = '客户类型'
t.basic.productTypeName = '产品类型名称'
t.basic.client = '服务对象'
t.basic.stock = '进货检验'
t.basic.finishedProduct = '成品检验'
t.basic.course = '过程检验'
t.basic.shipment = '出货检验'
t.basic.userName = '用户名'
t.basic.departName = '部门名'
t.basic.productCode = '产品编码'
t.basic.productName = '产品名称'
t.quality = {}
@@ -329,7 +352,7 @@ t.quality.judgmentMark = '判断标识'
t.quality.disposalMethodStatus = '状态'
t.quality.inspectionPositionNumber = '序号'
t.quality.productName = '检验产品'
t.quality.supplierName = '供应商名称'
t.quality.suppliername = '供应商名称'
t.quality.transferOutName = '转出'
t.quality.transferInName = '转入'
t.quality.dataSources = '数据来源'
@@ -337,12 +360,41 @@ t.quality.remark = '备注'
t.quality.userName = '创建人'
t.quality.inspectionStage = '检验阶段'
t.quality.supplierName = '供应商'
t.quality.supplierList = '供应商列表'
t.quality.principal = '负责人列表'
t.quality.normalToRelaxed = '正常转放宽'
t.quality.normalToTightened = '正常转加严'
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 = '样本量'
t.quality.inspectionPlan = '是否有检验计划'
t.quality.analyzeDrawings = '分析图形'
t.quality.characteristicsType = '特性类型'
t.quality.company = '单位'
t.quality.decimalDigits = '小数位数'
t.quality.measuringToolsType = '量具类型'
t.quality.monitor = '是否监控'
t.quality.parameterName = '参数名称'
t.quality.parameterCode = ' 参数编码'
t.quality.sampleSize = '样本大小'
t.quality.source = '来源'
t.quality.specificationCenterline = 'SL'
t.quality.specificationOffline = 'LSL'
t.quality.specifications = '规格'
t.quality.targetCpk = '目标CPK'
t.quality.targetPpk = '目标PPK'
t.quality.upperSpecificationLimit = 'USL'
@@ -351,6 +403,7 @@ t.quality.transferTime = '转移时间'
t.disqualification = {}
t.disqualification.inspectionTypeId = '检验类型'
t.disqualification.name = '名称'
t.disqualification.productTypeName = '产品类型'
t.disqualification.productName = '产品名称'
t.disqualification.teamName = '处置团队'
@@ -368,7 +421,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 = '步骤'
@@ -387,7 +439,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 = '联系人电话'
@@ -419,6 +471,25 @@ t.supplier.evaluationPeriod = '评估时间段'
t.supplier.evaluationType = '评估类型'
t.supplier.reminder = '提醒人'
t.supplier.title = '标题'
t.supplier.projectType = '评估项类型'
t.supplier.weight = '权重'
t.supplier.projectName = '评估项目'
t.supplier.projectTypeName = '类别'
t.supplier.requirement = '要求'
t.supplier.statisticalValue = '是否统计值'
t.supplier.lastStartTime = '上次启动时间段'
t.supplier.lastStartEvaluationPeriod = '上次启动评估时间段'
t.supplier.estimatedNextStartTime = '预计下次启动时间'
t.supplier.offline = '下限'
t.supplier.online = '上限'
t.supplier.supplierStatus = '供应商状态'
t.supplier.year = '年度'
t.supplier.quarter = '季度'
t.supplier.month = '月度'
t.supplier.materiel = '物料'
t.supplier.requiredGrouping = '要求分组'
t.gage = {}
t.gage.name = '名称'
@@ -503,13 +574,21 @@ t.gage.verifyLog = '校验记录'
t.gage.insideVerify = '内部校验'
t.gage.outsideVerify = '外部校验'
t.gage.verificationFee = '校验费用'
t.gage.report = '量具重复性及再现性分析报告'
t.gage.model = '型号'
t.gage.meanRange = '极差均值'
t.gage.meanDifference = '均值差'
t.gage.partAverageMean = 'Rp 零件均值极差'
t.gage.measuringUnit = '测量单元分析'
t.gage.totalVariation = '%总变查(TV)'
t.gage.reproducibility = '再现性-实验人员变差(AV)'
t.gage.repeatability = '重复性-设备变差(EV)'
t.gage.repeatabilityAndReproducibility = '重复性和再现性(R&R)'
t.gage.partVariation = '零件变差(TV)'
t.gage.decide = '综合判定'
t.gage.tabularComputations = '表格计算'
t.gage.tabularComputationsAdd = '表格计算新增'
t.gage.fabrication = '制作'
@@ -538,48 +617,163 @@ t.laboratory.title = '主题'
t.laboratory.trainContent = '培训内容'
t.laboratory.trainDate = '培训日期'
t.laboratory.trainDuration = '培训时长'
t.laboratory.trainType = '培训类型'
t.laboratory.trainType = '培训类型'
t.laboratory.timeSlot = '时间段'
t.code = {}
t.code.name = '名称'
t.code.code = '编码'
t.code.description = '描述'
t.code.eightDisciplineType = '8D类型'
t.code.problemStatus = '状态'
t.code.actualResponsePeriod = '实际响应周期'
t.code.batchNumber = '批次数'
t.code.customName = '客户'
t.code.defectSource = '缺陷来源'
t.code.eightDisciplineId = '8D来源id'
t.code.eightDisciplineStatus = '8D状态'
t.code.productName = '产品名'
t.code.orderNo = '订单号'
t.code.productType = '产品类型'
t.code.requestResponseCycle = '要求响应周期'
t.code.responsibilityAttribution = '责任归属'
t.code.sampleAcceptanceTime = '样品接收时间'
t.code.supportProducts = '配套产品/系统'
t.code.title = '标题'
t.code.userId = '启动人'
t.code.examineStatus = '审核状态'
t.code.finalCompletionDate = '最终完成日期 '
t.code.occurrenceDate = '发生日期'
t.code.eightDTeam = '通知8D小组'
t.code.inspectionStatus = '报检状态'
t.code.batchNo = '批号'
t.code.batchQuantity = '批次数量'
t.code.batchSize = '批规格'
t.code.checkoutTime = '检验时间'
t.code.companyName = '单位'
t.code.inspectionQuantity = '报检数量'
t.code.inspectionStatus = '报检状态'
t.code.inspectionType = '检验类型'
t.code.orderNumber = '订单号'
t.code.productCode = '产品编码'
t.code.productName = '产品'
t.code.recheck = '复检'
t.code.remark = '备注'
t.code.samplesQuantity = '抽样数'
t.code.source = '来源'
t.code.supplierName = '供应商'
t.code.username = '检验人员'
t.code.factoryName = '工厂'
t.code.inspectionPlan = '报检计划'
t.code.inspectionTime = '报检时间'
t.code.customSampling = '抽样方案'
t.code.task = '任务'
t.code.upload = '上传'
t.code.judgmentResult = '判断结果'
t.code.defectiveQuantity = '不良数量'
t.code.defectsNumber = '缺陷数量'
t.code.submit = '提交'
t.code.processingMethod = '处理方法'
t.code.processingResults = '处理结果'
t.code.characteristics = '特性'
t.code.sampleSize = '样本大小'
t.code.grouping = '分组'
t.code.grouping = '分组'
t.code.meanRange = '均值极差图'
t.code.meanStandard = '均值标准差图'
t.code.medianRange = '中位数极差图'
t.code.singleValueMovingRange = '单值移动极差图'
t.code.meanMovingRangeRange = '均值移动极差极差极'
t.code.meanMovingRangeStandardDeviation = '均值移动极差标准差图'
t.code.originalData = '原始数据'
t.code.inspectionNumber = '检验单号'
t.code.locationNo = ' 样品/位置号'
t.code.groupNo = '组号'
t.code.parsingTime = '分析时间'
t.code.assayValue = '分析值'
t.code.status = '状态'
t.code.approval = '审批中'
t.code.approvalComplete = '审批完成'
t.code.uploaded = '已上传'
t.code.notUploaded = '未上传'
t.code.Examiner = '检验人'
t.dictionary = {}
t.dictionary.name = ' 名称'
t.dictionary.code = ' 编码'
t.researchquality = {}
t.researchquality.title = '标题'
t.researchquality.description = '描述'
t.researchquality.code = '编码'
t.researchquality.requirementListGroupId = '所属分组'
t.researchquality.registrationDate = '登记日期'
t.researchquality.changeSource = '变更来源'
t.researchquality.owner = '所有者'
t.researchquality.category = 'Category'
t.researchquality.currentStage = '当前阶段'
t.researchquality.productName = '产品名称'
t.researchquality.qualityChangeStatus = '状态'
t.researchquality.temporaryChange = '临时变更'
t.researchquality.sourceRemark = '来源备注'
t.researchquality.processName = '工序名称'
t.researchquality.productTypeName = '产品类型'
t.researchquality.planPhase = '计划阶段'
t.researchquality.planTime = '计划时间'
t.researchquality.stageOneName = '阶段1'
t.researchquality.stageTwoName = '阶段2'
t.researchquality.stageThreeName = '阶段3'
t.researchquality.stageFourName = '阶段4'
t.researchquality.stageOneDate = '阶段1时间'
t.researchquality.stageTwoDate = '阶段2时间'
t.researchquality.stageThreeDate = '阶段3时间'
t.researchquality.stageFourDate = '阶段4时间'
t.researchquality.approvedMemo = '审核记录'
t.researchquality.phase = '阶段'
t.researchquality.realTime = '实际完成时间'
t.customerquality = {}
t.customerquality.customerName = '客户名称'
t.customerquality.currentStage = '当前阶段'
t.customerquality.serialNumber = '序列号'
t.customerquality.description = '描述'
t.customerquality.questionType = '问题类型'
t.customerquality.knowledgeBaseName = '知识库名称'
t.customerquality.code = '编号'
t.customerquality.category = '类别'
t.customerquality.requirementListName = '要求清单名称'
t.customerquality.uploadFiles = '不可上传文件'
t.customerquality.accessPath = '访问路径'
t.customerquality.knowledgeBaseFileId = '知识库文件标识'
t.customerquality.title = '标题'
t.customerquality.knowledgeBase = '知识库'
t.customerquality.productName = '品名'
t.customerquality.customerName = '客户'
t.customerquality.qualityAcceptanceDate = '质量接收日期'
t.customerquality.confirmDeliveryDate = '确认交付日期'
t.customerquality.deliveryRequiredDate = '要求交付日期'
t.customerquality.status = '状态'
t.customerquality.file = '清单文件'
t.customerquality.previousVersionCode = '上一版本号'
t.customerquality.first = '首次'
t.customerquality.confidentialityAgreement = '保密协议'
t.customerquality.ppapGrade = ' ppap等级'
t.customerquality.version = ' 版本'
t.customerquality.amendment = ' 修订'
export default t

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>删除</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689">
<g id="供应商评估_评估模版" transform="translate(-1241.000000, -403.000000)" fill-rule="nonzero">
<g id="删除" transform="translate(1241.000000, 403.000000)">
<rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect>
<path d="M25.5755088,1.28498542 C27.8552525,1.28498542 29.739258,3.1141321 29.8368374,5.37516257 L29.840807,5.5594082 L29.84046,6.86781876 L36.7102456,6.86802554 C37.3996072,6.86802554 37.8113884,7.26595838 38.0368575,7.91362769 L38.0794942,8.04644746 L38.1173248,8.18566341 L38.13,8.28889447 C38.13,9.06911419 37.5468225,9.64626258 36.8307452,9.70485377 L36.7102456,9.70976341 L35.16042,9.70934985 L35.1607368,33.8468114 C35.1607368,36.0667398 33.4366512,37.9141397 31.2664665,38.1049823 L31.079388,38.1172534 L30.8954386,38.1212342 L9.6157193,38.1212342 C7.3359756,38.1212342 5.45197012,36.2920875 5.3543907,34.0310571 L5.35042105,33.8468114 L5.35024,9.70934985 L3.42975439,9.70976341 C2.69477563,9.70976341 2.14173305,9.19187233 2.03050853,8.53418971 L2.01489493,8.40932835 L2.01,8.28889447 C2.01,7.50867476 2.59317752,6.93152637 3.30925482,6.87293518 L3.42975439,6.86802554 L9.92802,6.86781876 L9.92803509,5.5594082 C9.92803509,3.33947983 11.6521207,1.49207995 13.8223054,1.30123731 L14.0093839,1.28896619 L14.1933333,1.28498542 L25.5755088,1.28498542 Z M32.3207,9.70934985 L8.31122,9.70934985 L8.18992982,33.970879 C8.18992982,34.6086332 8.93553979,35.2156816 9.73635524,35.274792 L9.86315789,35.2794963 L31.1428772,35.2794963 C31.7547945,35.2794963 32.2675306,34.5542502 32.3172744,33.6232439 L32.3212281,33.4746088 L32.3207,9.70934985 Z M14.4407719,14.1880115 C15.1760909,14.1880115 15.5955852,14.6407706 15.8100205,15.3664334 L15.8478511,15.5056493 L15.8605263,15.6088804 L15.8605263,28.8841091 C15.8605263,29.7076744 15.2107514,30.3049781 14.4407719,30.3049781 C13.7113177,30.3049781 13.0897479,29.7688939 13.0263401,29.0122113 L13.0210175,28.8841091 L13.0210175,15.6088804 C13.0210175,14.7526239 13.5840451,14.1880115 14.4407719,14.1880115 Z M20.6267368,14.1880115 C21.3620559,14.1880115 21.7815501,14.6407706 21.9959854,15.3664334 L22.0338161,15.5056493 L22.0464912,15.6088804 L22.0464912,28.8841091 C22.0464912,29.7076744 21.3967163,30.3049781 20.6267368,30.3049781 C19.8972826,30.3049781 19.2757128,29.7688939 19.212305,29.0122113 L19.2069825,28.8841091 L19.2069825,15.6088804 C19.2069825,14.7526239 19.77001,14.1880115 20.6267368,14.1880115 Z M26.8127018,14.1880115 C27.5480208,14.1880115 27.967515,14.6407706 28.1819503,15.3664334 L28.219781,15.5056493 L28.2324561,15.6088804 L28.2324561,28.8841091 C28.2324561,29.7076744 27.5826812,30.3049781 26.8127018,30.3049781 C26.0832476,30.3049781 25.4616777,29.7688939 25.39827,29.0122113 L25.3929474,28.8841091 L25.3929474,15.6088804 C25.3929474,14.7526239 25.9559749,14.1880115 26.8127018,14.1880115 Z M25.6992281,4.1267233 L14.3170526,4.1267233 C13.6049877,4.1267233 12.9624425,4.73349464 12.8967786,5.44069788 L12.8912632,5.5594082 L12.89072,6.86781876 L27.12458,6.86781876 L27.1250175,5.5594082 C27.1250175,4.84260863 26.5199494,4.19811099 25.8171749,4.13225473 L25.6992281,4.1267233 Z" id="形状结合" fill="#000000"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>删除</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="供应商评估_评估模版" transform="translate(-689.000000, -403.000000)" fill-rule="nonzero">
<g id="删除" transform="translate(689.000000, 403.000000)">
<rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect>
<path d="M25.5755088,1.28498542 C27.8552525,1.28498542 29.739258,3.1141321 29.8368374,5.37516257 L29.840807,5.5594082 L29.84046,6.86781876 L36.7102456,6.86802554 C37.3996072,6.86802554 37.8113884,7.26595838 38.0368575,7.91362769 L38.0794942,8.04644746 L38.1173248,8.18566341 L38.13,8.28889447 C38.13,9.06911419 37.5468225,9.64626258 36.8307452,9.70485377 L36.7102456,9.70976341 L35.16042,9.70934985 L35.1607368,33.8468114 C35.1607368,36.0667398 33.4366512,37.9141397 31.2664665,38.1049823 L31.079388,38.1172534 L30.8954386,38.1212342 L9.6157193,38.1212342 C7.3359756,38.1212342 5.45197012,36.2920875 5.3543907,34.0310571 L5.35042105,33.8468114 L5.35024,9.70934985 L3.42975439,9.70976341 C2.69477563,9.70976341 2.14173305,9.19187233 2.03050853,8.53418971 L2.01489493,8.40932835 L2.01,8.28889447 C2.01,7.50867476 2.59317752,6.93152637 3.30925482,6.87293518 L3.42975439,6.86802554 L9.92802,6.86781876 L9.92803509,5.5594082 C9.92803509,3.33947983 11.6521207,1.49207995 13.8223054,1.30123731 L14.0093839,1.28896619 L14.1933333,1.28498542 L25.5755088,1.28498542 Z M32.3207,9.70934985 L8.31122,9.70934985 L8.18992982,33.970879 C8.18992982,34.6086332 8.93553979,35.2156816 9.73635524,35.274792 L9.86315789,35.2794963 L31.1428772,35.2794963 C31.7547945,35.2794963 32.2675306,34.5542502 32.3172744,33.6232439 L32.3212281,33.4746088 L32.3207,9.70934985 Z M14.4407719,14.1880115 C15.1760909,14.1880115 15.5955852,14.6407706 15.8100205,15.3664334 L15.8478511,15.5056493 L15.8605263,15.6088804 L15.8605263,28.8841091 C15.8605263,29.7076744 15.2107514,30.3049781 14.4407719,30.3049781 C13.7113177,30.3049781 13.0897479,29.7688939 13.0263401,29.0122113 L13.0210175,28.8841091 L13.0210175,15.6088804 C13.0210175,14.7526239 13.5840451,14.1880115 14.4407719,14.1880115 Z M20.6267368,14.1880115 C21.3620559,14.1880115 21.7815501,14.6407706 21.9959854,15.3664334 L22.0338161,15.5056493 L22.0464912,15.6088804 L22.0464912,28.8841091 C22.0464912,29.7076744 21.3967163,30.3049781 20.6267368,30.3049781 C19.8972826,30.3049781 19.2757128,29.7688939 19.212305,29.0122113 L19.2069825,28.8841091 L19.2069825,15.6088804 C19.2069825,14.7526239 19.77001,14.1880115 20.6267368,14.1880115 Z M26.8127018,14.1880115 C27.5480208,14.1880115 27.967515,14.6407706 28.1819503,15.3664334 L28.219781,15.5056493 L28.2324561,15.6088804 L28.2324561,28.8841091 C28.2324561,29.7076744 27.5826812,30.3049781 26.8127018,30.3049781 C26.0832476,30.3049781 25.4616777,29.7688939 25.39827,29.0122113 L25.3929474,28.8841091 L25.3929474,15.6088804 C25.3929474,14.7526239 25.9559749,14.1880115 26.8127018,14.1880115 Z M25.6992281,4.1267233 L14.3170526,4.1267233 C13.6049877,4.1267233 12.9624425,4.73349464 12.8967786,5.44069788 L12.8912632,5.5594082 L12.89072,6.86781876 L27.12458,6.86781876 L27.1250175,5.5594082 C27.1250175,4.84260863 26.5199494,4.19811099 25.8171749,4.13225473 L25.6992281,4.1267233 Z" id="形状结合" fill="#FF2323"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>编辑</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="供应商评估_评估模版" transform="translate(-513.000000, -404.000000)">
<g id="编组-2备份" transform="translate(512.000000, 404.000000)">
<g id="编辑" transform="translate(1.000000, 0.000000)">
<rect id="矩形" x="0" y="0" width="35.5555556" height="35.5555556"></rect>
<g id="常用购票人编辑32" fill-rule="nonzero">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="40" height="40"></rect>
<path d="M21.9461538,3.08333333 C22.4935031,3.08333333 22.9992746,3.37534065 23.2729492,3.84935897 C23.5466238,4.32337729 23.5466238,4.90739194 23.2729492,5.38141027 C23.0241541,5.81233601 22.5835434,6.09283945 22.0942569,6.14027869 L21.9461538,6.1474359 L9.74358974,6.1474359 C7.82155659,6.1474359 6.25170159,7.65528983 6.15242066,9.55260178 L6.1474359,9.74358974 L6.1474359,30.2564103 C6.1474359,32.1784434 7.65528983,33.7482984 9.55260178,33.8475793 L9.74358974,33.8525641 L30.2564103,33.8525641 C32.1784434,33.8525641 33.7482984,32.3447102 33.8475793,30.4473982 L33.8525641,30.2564103 L33.8525641,19.5602564 C33.8525641,18.7141279 34.5384868,18.0282051 35.3846154,18.0282051 C36.1837368,18.0282051 36.8399586,18.6400313 36.9104057,19.4208085 L36.9166667,19.5602564 L36.9166667,30.2564103 C36.9166667,33.8565054 34.0603077,36.7894621 30.4902312,36.912639 L30.2564103,36.9166667 L9.74358974,36.9166667 C6.14349464,36.9166667 3.21053791,34.0603077 3.08736098,30.4902312 L3.08333333,30.2564103 L3.08333333,9.74358974 C3.08333333,6.14349464 5.93969229,3.21053791 9.50976879,3.08736098 L9.74358974,3.08333333 L21.9461538,3.08333333 Z M35.5111781,5.19079908 C36.0819035,5.72326795 36.1560265,6.59166826 35.7034748,7.2136457 L35.6059332,7.334583 L21.6187527,22.3371482 C21.2454671,22.7375271 20.6869374,22.908347 20.1535563,22.7852616 C19.6201753,22.6621763 19.1929761,22.2638853 19.0328806,21.7404211 C18.8873392,21.2645445 18.9826458,20.7509435 19.2816371,20.3606783 L19.3774079,20.2474599 L33.3698382,5.24073629 C33.951474,4.64500849 34.9024043,4.62283227 35.5111781,5.19079908 Z" id="形状结合" fill="#0B58FF"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>编辑</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689">
<g id="供应商评估_评估模版" transform="translate(-1065.000000, -404.000000)">
<g id="编组-2备份-3" transform="translate(1064.000000, 404.000000)">
<g id="编辑" transform="translate(1.000000, 0.000000)">
<rect id="矩形" x="0" y="0" width="35.5555556" height="35.5555556"></rect>
<g id="常用购票人编辑32" fill="#000000" fill-rule="nonzero">
<rect id="矩形" opacity="0" x="0" y="0" width="40" height="40"></rect>
<path d="M21.9461538,3.08333333 C22.4935031,3.08333333 22.9992746,3.37534065 23.2729492,3.84935897 C23.5466238,4.32337729 23.5466238,4.90739194 23.2729492,5.38141027 C23.0241541,5.81233601 22.5835434,6.09283945 22.0942569,6.14027869 L21.9461538,6.1474359 L9.74358974,6.1474359 C7.82155659,6.1474359 6.25170159,7.65528983 6.15242066,9.55260178 L6.1474359,9.74358974 L6.1474359,30.2564103 C6.1474359,32.1784434 7.65528983,33.7482984 9.55260178,33.8475793 L9.74358974,33.8525641 L30.2564103,33.8525641 C32.1784434,33.8525641 33.7482984,32.3447102 33.8475793,30.4473982 L33.8525641,30.2564103 L33.8525641,19.5602564 C33.8525641,18.7141279 34.5384868,18.0282051 35.3846154,18.0282051 C36.1837368,18.0282051 36.8399586,18.6400313 36.9104057,19.4208085 L36.9166667,19.5602564 L36.9166667,30.2564103 C36.9166667,33.8565054 34.0603077,36.7894621 30.4902312,36.912639 L30.2564103,36.9166667 L9.74358974,36.9166667 C6.14349464,36.9166667 3.21053791,34.0603077 3.08736098,30.4902312 L3.08333333,30.2564103 L3.08333333,9.74358974 C3.08333333,6.14349464 5.93969229,3.21053791 9.50976879,3.08736098 L9.74358974,3.08333333 L21.9461538,3.08333333 Z M35.5111781,5.19079908 C36.0819035,5.72326795 36.1560265,6.59166826 35.7034748,7.2136457 L35.6059332,7.334583 L21.6187527,22.3371482 C21.2454671,22.7375271 20.6869374,22.908347 20.1535563,22.7852616 C19.6201753,22.6621763 19.1929761,22.2638853 19.0328806,21.7404211 C18.8873392,21.2645445 18.9826458,20.7509435 19.2816371,20.3606783 L19.3774079,20.2474599 L33.3698382,5.24073629 C33.951474,4.64500849 34.9024043,4.62283227 35.5111781,5.19079908 Z" id="形状结合"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>预览</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="供应商评估_评估模版" transform="translate(-333.000000, -404.000000)" fill-rule="nonzero">
<g id="预览" transform="translate(333.000000, 404.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="39.7350993" height="40"></rect>
<path d="M38.0837006,36.8192237 L34.2436156,32.9468752 C34.9636315,31.7367663 35.4436422,30.2846356 35.4436422,28.8325049 C35.4436422,24.7181346 32.0835677,21.3298297 28.0034774,21.3298297 C23.923387,21.3298297 20.5633126,24.7181346 20.5633126,28.8325049 C20.5633126,32.9468752 23.923387,36.3351801 28.0034774,36.3351801 C29.6835146,36.3351801 31.1235465,35.8511366 32.3235731,34.8830494 L36.1636581,38.7553979 C36.6436687,39.2394415 37.60369,39.2394415 38.0837006,38.7553979 C38.5637113,38.2713544 38.5637113,37.3032673 38.0837006,36.8192237 Z M27.7634721,33.4309188 C25.1234136,33.4309188 23.2033711,31.2527227 23.2033711,28.8325049 C23.2033711,26.1702653 25.3634189,24.234091 27.7634721,24.234091 C30.4035305,24.234091 32.3235731,26.4122871 32.3235731,28.8325049 C32.5635784,31.4947445 30.4035305,33.4309188 27.7634721,33.4309188 Z M8.5630468,39.4814633 C6.64300427,39.4814633 2.56291391,38.2713544 2.56291391,34.1569841 L2.56291391,8.26065345 C2.56291391,3.42021782 5.68298301,1 8.5630468,1 L29.4435093,1 C33.043589,1 35.4436422,3.42021782 35.4436422,7.29256632 L35.4436422,16.0053505 C35.4436422,16.7314158 34.9636315,17.6995029 34.0036103,17.6995029 C32.8035837,17.4574812 32.3235731,16.9734376 32.3235731,16.0053505 L32.3235731,7.77660989 C32.3235731,5.11437029 29.9235199,4.14628316 28.9634986,4.14628316 L8.5630468,4.14628316 C7.36302022,4.14628316 5.4429777,5.59841385 5.4429777,8.74469702 L5.4429777,32.9468752 C5.4429777,36.5772019 7.84303085,36.5772019 8.80305212,36.5772019 L16.0032116,36.5772019 C16.9632329,36.3351801 17.4432435,37.3032673 17.4432435,38.0293326 C17.4432435,38.7553979 16.9632329,39.4814633 15.7632063,39.4814633 L8.5630468,39.4814633 Z M10.7230946,7.53458811 L27.0434561,7.53458811 C27.7634721,7.53458811 28.2434827,8.01863167 28.2434827,8.74469702 C28.2434827,9.47076236 27.7634721,9.95480592 27.0434561,9.95480592 L10.7230946,9.95480592 C10.0030787,9.95480592 9.52306806,9.47076236 9.52306806,8.74469702 C9.52306806,8.01863167 9.76307338,7.53458811 10.7230946,7.53458811 Z M10.7230946,14.5532198 L27.0434561,14.5532198 C27.7634721,14.5532198 28.2434827,15.0372633 28.2434827,15.7633287 C28.2434827,16.489394 27.7634721,16.9734376 27.0434561,16.9734376 L10.7230946,16.9734376 C10.0030787,16.9734376 9.52306806,16.489394 9.52306806,15.7633287 C9.52306806,15.2792851 9.76307338,14.5532198 10.7230946,14.5532198 Z M10.7230946,21.8138732 L17.6832488,21.8138732 C18.4032647,21.8138732 18.8832754,22.2979168 18.8832754,23.0239821 C18.8832754,23.7500475 18.1632594,24.234091 17.6832488,24.234091 L10.7230946,24.234091 C10.0030787,24.234091 9.52306806,23.7500475 9.52306806,23.0239821 C9.52306806,22.2979168 9.76307338,21.8138732 10.7230946,21.8138732 Z" id="形状" fill="#0B58FF"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>预览</title>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.69689">
<g id="供应商评估_评估模版" transform="translate(-885.000000, -404.000000)" fill="#000000" fill-rule="nonzero">
<g id="预览" transform="translate(885.000000, 404.000000)">
<rect id="矩形" opacity="0" x="0" y="0" width="39.7350993" height="40"></rect>
<path d="M38.0837006,36.8192237 L34.2436156,32.9468752 C34.9636315,31.7367663 35.4436422,30.2846356 35.4436422,28.8325049 C35.4436422,24.7181346 32.0835677,21.3298297 28.0034774,21.3298297 C23.923387,21.3298297 20.5633126,24.7181346 20.5633126,28.8325049 C20.5633126,32.9468752 23.923387,36.3351801 28.0034774,36.3351801 C29.6835146,36.3351801 31.1235465,35.8511366 32.3235731,34.8830494 L36.1636581,38.7553979 C36.6436687,39.2394415 37.60369,39.2394415 38.0837006,38.7553979 C38.5637113,38.2713544 38.5637113,37.3032673 38.0837006,36.8192237 Z M27.7634721,33.4309188 C25.1234136,33.4309188 23.2033711,31.2527227 23.2033711,28.8325049 C23.2033711,26.1702653 25.3634189,24.234091 27.7634721,24.234091 C30.4035305,24.234091 32.3235731,26.4122871 32.3235731,28.8325049 C32.5635784,31.4947445 30.4035305,33.4309188 27.7634721,33.4309188 Z M8.5630468,39.4814633 C6.64300427,39.4814633 2.56291391,38.2713544 2.56291391,34.1569841 L2.56291391,8.26065345 C2.56291391,3.42021782 5.68298301,1 8.5630468,1 L29.4435093,1 C33.043589,1 35.4436422,3.42021782 35.4436422,7.29256632 L35.4436422,16.0053505 C35.4436422,16.7314158 34.9636315,17.6995029 34.0036103,17.6995029 C32.8035837,17.4574812 32.3235731,16.9734376 32.3235731,16.0053505 L32.3235731,7.77660989 C32.3235731,5.11437029 29.9235199,4.14628316 28.9634986,4.14628316 L8.5630468,4.14628316 C7.36302022,4.14628316 5.4429777,5.59841385 5.4429777,8.74469702 L5.4429777,32.9468752 C5.4429777,36.5772019 7.84303085,36.5772019 8.80305212,36.5772019 L16.0032116,36.5772019 C16.9632329,36.3351801 17.4432435,37.3032673 17.4432435,38.0293326 C17.4432435,38.7553979 16.9632329,39.4814633 15.7632063,39.4814633 L8.5630468,39.4814633 Z M10.7230946,7.53458811 L27.0434561,7.53458811 C27.7634721,7.53458811 28.2434827,8.01863167 28.2434827,8.74469702 C28.2434827,9.47076236 27.7634721,9.95480592 27.0434561,9.95480592 L10.7230946,9.95480592 C10.0030787,9.95480592 9.52306806,9.47076236 9.52306806,8.74469702 C9.52306806,8.01863167 9.76307338,7.53458811 10.7230946,7.53458811 Z M10.7230946,14.5532198 L27.0434561,14.5532198 C27.7634721,14.5532198 28.2434827,15.0372633 28.2434827,15.7633287 C28.2434827,16.489394 27.7634721,16.9734376 27.0434561,16.9734376 L10.7230946,16.9734376 C10.0030787,16.9734376 9.52306806,16.489394 9.52306806,15.7633287 C9.52306806,15.2792851 9.76307338,14.5532198 10.7230946,14.5532198 Z M10.7230946,21.8138732 L17.6832488,21.8138732 C18.4032647,21.8138732 18.8832754,22.2979168 18.8832754,23.0239821 C18.8832754,23.7500475 18.1632594,24.234091 17.6832488,24.234091 L10.7230946,24.234091 C10.0030787,24.234091 9.52306806,23.7500475 9.52306806,23.0239821 C9.52306806,22.2979168 9.76307338,21.8138732 10.7230946,21.8138732 Z" id="形状"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

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

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

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-24 11:19:43
* @LastEditors: zhp
* @LastEditTime: 2023-05-16 14:55:04
* @LastEditTime: 2023-07-11 11:03:11
* @Description:
*/
export default {
@@ -15,7 +15,6 @@ export default {
statusUrl: '',
exportURL: ''
},
addOrEditTitle: '',
tableData: [],
listQuery: {
limit: 10,
@@ -23,13 +22,16 @@ export default {
total: 1,
},
dataListLoading: false,
addOrEditTitle: '',
addOrUpdateVisible: false,
searchsTitle: '',
searchsVisible: false,
}
},
created() {
},
activated() {
this.getDataList();
mounted() {
this.getDataList()
},
methods: {
// 获取数据列表
@@ -71,6 +73,13 @@ export default {
this.$refs.addOrUpdate.init(id);
});
},
// 条件搜索
searchsHandle() {
this.searchsVisible = true;
this.$nextTick(() => {
this.$refs.searchsRef.init();
});
},
cancel(id) {
this.$refs["popover-" + id].showPopper = false;
},
@@ -158,13 +167,26 @@ export default {
this.addOrUpdateVisible = false
this.addOrEditTitle = ''
},
searchsCancel(){
this.$refs.searchsRef.formClear()
this.searchsVisible = false
this.searchsTitle = ''
},
handleConfirm() {
this.$refs.addOrUpdate.dataFormSubmit()
},
searchsConfirm(){
this.$refs.searchsRef.dataFormSubmit()
},
successSubmit() {
this.handleCancel()
this.getDataList()
},
searchsSubmit(obj){
this.listQuery = {...this.listQuery,...obj}
this.searchsCancel()
this.getDataList()
},
// 导出
exportHandle(name) {
this.$http

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

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

View File

@@ -1,8 +1,8 @@
/*
* @Author: zhp
* @Date: 2023-01-06 10:13:07
* @LastEditTime: 2023-05-12 12:42:15
* @LastEditors: zwq
* @LastEditTime: 2023-05-31 10:11:32
* @LastEditors: zhp
* @Description:
*/
import axios from 'axios'

View File

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

View File

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

View File

@@ -1,36 +1,47 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-03-29 09:09:20
* @LastEditTime: 2023-07-18 16:55: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="controlCode" :label="$t('basic.code')">
<el-input v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input>
<el-input clearable v-model="dataForm.controlCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="controlName" :label="$t('basic.name')">
<el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
<el-input clearable v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item 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 clearable v-model="dataForm.specifications" :placeholder="$t('basic.specification')"></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 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="controlName" :label="$t('basic.name')">
<el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
<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>
<el-form-item prop="controlName" :label="$t('basic.name')">
<el-input v-model="dataForm.controlName" :placeholder="$t('basic.name')"></el-input>
<el-form-item prop="outInspection" :label="$t('basic.shipment')">
<el-switch v-model="dataForm.outInspection" :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="processInspection" :label="$t('basic.course')">
<el-switch v-model="dataForm.processInspection" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="controlStatus" :label="$t('basic.status')">
<el-select clearable v-model="dataForm.controlStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="remark" :label="$t('basic.remark')">
<el-input clearable v-model="dataForm.remark" :placeholder="$t('basic.remark')"></el-input>
</el-form-item>
</el-form>
</template>
@@ -42,8 +53,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: [{
@@ -59,32 +70,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",
},
],
};
@@ -95,13 +112,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,26 +1,27 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:58:53
* @LastEditTime: 2023-07-18 16:55:57
* @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-input clearable v-model="dataForm.customerCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="customerName" :label="$t('basic.name')">
<el-input v-model="dataForm.customerName" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="customerTypeId" :label="$t('basic.customerTypeName')">
<el-select v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')">
<el-select clearable v-model="dataForm.customerTypeId" :placeholder="$t('basic.customerTypeName')">
<el-option v-for="item in customerTypeList" :key="item.id" :label="item.customerTypeName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="customerTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -67,27 +68,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,21 +1,21 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:59:19
* @LastEditTime: 2023-07-18 16:56:08
* @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>
<el-input clearable v-model="dataForm.customerTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="customerTypeName" :label="$t('basic.name')">
<el-input v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input>
<el-input clearable v-model="dataForm.customerTypeName" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="customerTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-select clearable v-model="dataForm.customerTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -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,20 +1,21 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-02-24 14:56:56
* @LastEditTime: 2023-07-18 16:56:16
* @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-input clearable v-model="dataForm.failureTypeCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="failureTypeName" :label="$t('basic.name')">
<el-input v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input>
<el-input clearable v-model="dataForm.failureTypeName" :placeholder="$t('basic.name')"></el-input>
</el-form-item>
<el-form-item prop="failureTypeStatus" :label="$t('basic.status')">
<el-select v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')">
<el-select clearable v-model="dataForm.failureTypeStatus" :placeholder="$t('basic.status')">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -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

@@ -0,0 +1,152 @@
<!--
* @Author: zhp
* @Date: 2023-07-13 11:18:36
* @LastEditTime: 2023-07-13 13:49:00
* @LastEditors: zhp
* @Description:
-->
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-12 14:04:19
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="processCode" :label="$t('basic.code')">
<el-input v-model="dataForm.processCode" :placeholder="$t('basic.code')"></el-input>
</el-form-item>
<el-form-item prop="processName" :label="$t('basic.name')">
<el-input v-model="dataForm.processName" :placeholder="$t('basic.name')"></el-input>
</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>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/basic/qmsProcess",
infoURL: "/basic/qmsProcess/{id}",
getCodeURL: '/basic/qmsProcess/getCode'
},
options: [{
value: 0,
label: '不可用'
},
{
value: 1,
label: '可用'
}],
visible: false,
dataForm: {
id: "",
processCode:null,
processName:null,
remark:null
},
};
},
computed: {
dataRule() {
return {
processName: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
processCode: [
{
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()
}
});
},
getCode() {
// console.log(111111);
this.$http
.post(this.urlOptions.getCodeURL)
.then(({ data: res }) => {
if (res.code === 0) {
console.log(res);
this.dataForm.processCode = res.data
}
})
.catch(() => {
});
},
// 获取信息
getInfo() {
this.$http
.get(`/basic/qmsProcess/${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,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,22 +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"
>进货检验</el-radio
>
<el-radio v-model="injectData.processInspection" :label="1"
>过程检验</el-radio
>
<el-radio v-model="injectData.finishInspection" :label="1"
>成品检验</el-radio
>
<el-radio v-model="injectData.outInspection" :label="1">出货检验</el-radio>
<el-radio v-model="injectData.incomingInspection" :label="1">{{ $t('basic.stock') }}</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

@@ -0,0 +1,247 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-06-30 09:58:35
* @LastEditors: zhp
* @Description:
-->
<template>
<el-transfer v-model="chooseData" :titles="['用户列表', '团队成员']" :data="notChooseData"></el-transfer>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
// const generateData = _ => {
// const data = [];
// const cities = ['上海', '北京', '广州', '深圳', '南京', '西安', '成都'];
// const pinyin = ['shanghai', 'beijing', 'guangzhou', 'shenzhen', 'nanjing', 'xian', 'chengdu'];
// cities.forEach((city, index) => {
// data.push({
// label: city,
// key: index,
// pinyin: pinyin[index]
// });
// });
// return data;
// }
return {
notChooseData:[],
chooseData: [],
urlOptions: {
submitURL: "/basic/qmsCustomer",
getTeamMemberURL: '/basic/qmsTeamMember/page',
getUserListURL: '/sys/user/page',
editTeamMemberListURL: '/basic/qmsTeamMember'
},
options: [{
value: 0,
label: '不可用'
},
{
value: 1,
label: '可用'
}],
listQuery: {
limit: 999,
page:1
},
visible: false,
customerTypeList: {},
teamId: 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",
// },
// ],
};
},
},
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: {
limit: 999,
page: 1,
teamId: id
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
if (res.data.list.length > 0) {
var data = res.data.list
for (let i = 0; i < data.length; i++) {
this.chooseData.push(data[i].userId)
}
}
}
})
this.$http
.get(this.urlOptions.getUserListURL, {
params: {
limit: 999,
page: 1,
}
})
.then(({ data: res }) => {
// this.dataListLoading = false;
if (res.code === 0) {
this.notChooseData = res.data.list.map((item) => {
return {
key: item.id,
label: item.username
}
})
}
})
this.visible = true;
// this.$nextTick(() => {
// // this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// // console.log(1111);
// this.getInfo();
// } else {
// this.getCode()
// }
// });
},
// getCode() {
// // console.log(111111);
// this.$http
// .post(this.urlOptions.getCodeURL)
// .then(({ data: res }) => {
// if (res.code === 0) {
// console.log(res);
// this.dataForm.customerCode = res.data
// }
// })
// .catch(() => {
// });
// },
// 获取信息
// getInfo() {
// this.$http
// .get(`/basic/qmsCustomer/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => { });
// },
// 表单提交
dataFormSubmit() {
let ids = this.chooseData
ids.unshift(this.teamId)
this.$http.put(this.urlOptions.editTeamMemberListURL,ids)
.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.notChooseData = []
this.chooseData = []
this.$emit("refreshDataList")
},
});
})
.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: () => {
// this.visible = false;
// console.log(1111);
// this.$emit("successSubmit");
// },
// });
// })
// .catch(() => { });
// });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@@ -0,0 +1,314 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-07-13 13:49:10
* @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="3" 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">
<process-add ref="addOrUpdate" @refreshDataList="successSubmit">
</process-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">
<productType-search ref="searchOrUpdate" @successSubmit="conditionSearchSubmit"></productType-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 processAdd from "./components/process-add";
// import productTypeSearch from "./components/productTypeSearch.vue";
import available from "./components/available.vue";
import Cookies from 'js-cookie'
import qs from 'qs'
// import radio from "./components/radio.vue";
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "processCode",
label: '编码'
},
{
prop: "processName",
label: "名称"
},
{
prop: "remark",
label: "备注"
}
];
const tableBtn = [
{
type: "edit",
btnName: "修改"
},
{
type: "delete",
btnName: "删除"
}
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsProcess/page",
deleteURL: "/basic/qmsProcess",
exportURL: "/basic/qmsProcess/export",
},
tableProps,
tableBtn,
productData: {},
addOrUpdateVisible:false,
searchOrEditTitle: "",
addOrEditTitle:'',
searchOrUpdateVisible: false,
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: '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: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "导出",
name: "export",
color: "primary",
plain: true
// plain: true,
}
],
};
},
components: {
processAdd
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// 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.status = dataForm.status
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
// handleCancel() {
// },
// handleConfirm() {
// this.$refs.addOrUpdate.dataFormSubmit()
// },
successSubmit() {
console.log(11111);
this.$refs.addOrUpdate.formClear()
this.addOrUpdateVisible = false
this.addOrEditTitle = ''
this.getDataList();
},
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) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.productTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
console.log(val);
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);
});
}
},
buttonClick(val) {
console.log(val);
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
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)
this.getDataList();
break;
case "export":
this.exportHandle();
break;
case "add":
this.addOrEditTitle = "新增";
this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.addOrUpdate.init();
});
break;
// case "correlation":
// this.productOrEditTitle = "产品";
// this.productOrUpdateVisible = true;
// this.addOrUpdateHandle(this.productData);
// console.log(this.productId);
// break;
// case "cancel":
// this.$refs.palletTable1.setCurrent("palletTable", -1);
// break;
default:
console.log(val);
}
},
},
};
</script>

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,14 @@ 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: "button",
btnName: "新增",
name: "add",
color: "primary",
type: 'input',
label: i18n.t('basic.name'),
placeholder: i18n.t('basic.name'),
param: 'name',
clearable:true
},
{
type: "button",
@@ -138,6 +128,13 @@ export default {
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain:true
},
{
type: "button",
btnName: "关联产品列表",
@@ -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();
},
@@ -223,7 +217,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -236,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,37 +78,72 @@ 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: "button",
btnName: "新增",
name: "add",
color: "primary",
// plain: true,
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",
@@ -117,11 +152,20 @@ export default {
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
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}]进行删除操作?`, "提示", {
@@ -192,7 +254,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -230,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">
@@ -16,12 +16,12 @@
<!-- 弹窗, 新增 / 修改 -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<customer-type-add ref="addOrUpdate" @successSubmit="successSubmit"></customer-type-add>
<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,38 @@ 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: "搜索",
@@ -114,22 +137,23 @@ export default {
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "导出",
name: "export",
color: "primary",
color: 'primary',
plain: true
// plain: true,
}
],
};
},
components: {
customerTypeAdd,
customerTypeSearch
customerTypeAdd
},
methods: {
//search-bar点击
@@ -221,8 +245,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrEditTitle = "修改"
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -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-04-17 11:03:23
* @LastEditTime: 2023-07-18 10:19:11
* @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: "button",
btnName: "新增",
name: "add",
color: "primary",
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: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
}
],
};
@@ -178,8 +203,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrEditTitle = "修改"
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -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,12 +86,13 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsProduct/page",
deleteURL: "/basic/qmsProduct",
exportURL: '/basic/qmsProduct/export',
},
tableProps,
tableBtn,
@@ -108,20 +104,19 @@ export default {
addOrUpdateVisible: false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
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",
@@ -129,12 +124,26 @@ export default {
name: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: "新增",
name: "add",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "导出",
name: "export",
color: "primary",
plain: true
}
],
};
},
components: {
productSearch,
productAdd
},
methods: {
@@ -158,7 +167,7 @@ export default {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
this.$refs.searchOrUpdate.init()
});
},
// handleConfirm() {
@@ -171,7 +180,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();
@@ -201,8 +210,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrEditTitle = "修改"
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -219,7 +228,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();
@@ -236,11 +246,11 @@ export default {
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrUpdateHandle()
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
case "export":
this.exportHandle()
break;
default:
console.log(val);

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-02-21 14:30:17
* @LastEditTime: 2023-04-17 11:03:48
* @LastEditTime: 2023-07-18 10:19:37
* @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,14 +101,37 @@ 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",
@@ -121,7 +144,8 @@ export default {
type: "button",
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
@@ -129,14 +153,14 @@ export default {
btnName: "导出",
name: "export",
color: "primary",
plain: true
// plain: true,
}
],
};
},
components: {
productTypeAdd,
productTypeSearch
productTypeAdd
},
methods: {
//search-bar点击
@@ -242,8 +266,8 @@ export default {
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrEditTitle = "修改"
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
@@ -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-04-17 11:04:00
* @LastEditTime: 2023-07-18 10:19:49
* @LastEditors: zhp
* @Description:
-->
@@ -11,12 +11,9 @@
<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 id="palletTable" :table-props="tableProps" :page="listQuery.page" ref="palletTable1"
:limit="listQuery.limit" :table-data="tableData">
<base-table highlight-current-row id="palletTable" :table-props="tableProps" :page="listQuery.page"
@current-change="handleCurrentChange" 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>
@@ -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,42 +41,37 @@
</el-button>
</el-col>
</el-row>
</base-dialog>
</base-dialog> -->
</div>
</el-col>
<el-col :span="10">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfigMember" ref="ruleForm" @headBtnClick="buttonClick">
<SearchBar :formConfigs="formConfigMember" ref="ruleForm" @headBtnClick="teamMemberButtonClick">
</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 id="palletTable" :table-props="depProps" ref="palletTable1" :table-data="teamMemberData">
</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">
<team-add ref="addOrUpdate" @refreshDataList="successSubmit"></team-add>
<base-dialog :dialogTitle="teamMemberOrEditTitle" :dialogVisible="teamMemberOrUpdateVisible"
@cancel="handleTeamMemberCancel" @confirm="handleTeamMemberConfirm" :before-close="handleTeamMemberCancel">
<teamMember-add ref="teamMemberOrUpdate" @refreshDataList="successTeamMemberSubmit"></teamMember-add>
<!-- <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 teamSearch from "./components/teamSearch.vue";
import teamMemberAdd from './components/teamMember-add'
// import teamSearch from "./components/teamSearch.vue";
import Cookies from 'js-cookie'
import qs from 'qs'
// import radio from "./components/radio.vue";
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "teamCode",
@@ -98,6 +90,16 @@ const tableProps = [
label: i18n.t('basic.remark')
},
];
const depProps = [
{
prop: "departName",
label: i18n.t('basic.departName')
},
{
prop: "userName",
label: i18n.t('basic.userName')
}
];
const tableBtn = [
{
type: "edit",
@@ -109,54 +111,74 @@ const tableBtn = [
}
];
export default {
mixins: [basicPage, basicSearch],
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsTeam/page",
deleteURL: "/basic/qmsTeam",
exportURL: "/basic/qmsTeam/export",
teamMemberURL: '/basic/qmsTeamMember/page'
},
tableProps,
depProps,
teamId:null,
teamMemberData: [],
teamMemberOrEditTitle:'',
tableBtn,
productData: {},
addOrUpdateVisible: false,
teamMemberOrUpdateVisible:false,
searchOrEditTitle: "",
addOrEditTitle: '',
searchOrUpdateVisible: false,
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: "search",
color: "primary",
// plain: true,
},
{
type: "button",
btnName: i18n.t('add'),
btnName: "新增",
name: "add",
color: "primary",
color: 'success',
plain: true
// plain: true,
},
{
type: "button",
btnName: "导出",
name: i18n.t('export'),
btnName: i18n.t('export'),
name: 'export',
color: "primary",
plain: true
// plain: true,
},
{
type: "button",
btnName: "取消选中",
name: "cancel",
color: "primary",
// plain: true,
}
},
],
formConfigMember: [
// {
@@ -180,14 +202,36 @@ export default {
},
components: {
teamAdd,
teamSearch
teamMemberAdd
},
// mounted() {
// this.getDepData()
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
setCurrent(index) {
this.$refs.palletTable1.setCurrent("palletTable", index)
console.log(index)
},
handleCurrentChange(val) {
this.teamId = val.newVal.id
this.$http.get(this.urlOptions.teamMemberURL, {
params: {
limit: 999,
page: 1,
teamId:val.newVal.id
}
}).then(({ data: res } ) => {
console.log(res)
if (res && res.code === 0) {
this.teamMemberData = res.data.list
}
})
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
@@ -215,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") {
@@ -268,31 +311,65 @@ export default {
} else {
this.$message.error(data.msg);
}
});
})
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrEditTitle = "修改"
this.addOrUpdateVisible = true;
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
successTeamMemberSubmit() {
this.handleTeamMemberCancel()
this.$http.get(this.urlOptions.teamMemberURL, {
params: {
limit: 999,
page: 1,
teamId: this.teamId
}
}).then(({ data: res } ) => {
if (res && res.code === 0) {
this.teamMemberData = res.data.list
}
});
},
handleTeamMemberCancel() {
this.teamMemberOrUpdateVisible = false
this.teamMemberOrEditTitle = ''
},
teamMemberButtonClick(val) {
console.log(val);
switch (val.btnName) {
case "change":
this.teamMemberOrEditTitle = '修改团队成员'
this.teamMemberOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.teamMemberOrUpdate.init(this.teamId)
});
break;
default:
console.log(val);
}
},
handleTeamMemberConfirm() {
this.$refs.teamMemberOrUpdate.dataFormSubmit()
},
buttonClick(val) {
console.log(val);
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 = "新增";
@@ -301,6 +378,9 @@ export default {
this.$refs.addOrUpdate.init();
});
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
break;
// case "correlation":
// this.productOrEditTitle = "产品";
// this.productOrUpdateVisible = true;
@@ -311,7 +391,6 @@ export default {
// this.$refs.palletTable1.setCurrent("palletTable", -1);
// break;
default:
console.log(val);
}
},
},

View File

@@ -0,0 +1,41 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-07-14 13:46:42
* @LastEditors: zwq
* @Description:
-->
<template>
<span>
<el-tag v-if="injectData.eightDisciplineStatus === 1||injectData.problemStatus === 1" type="success">可用</el-tag>
<el-tag v-else type="warning">不可用</el-tag>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({})
}
},
methods: {
// 子级
// emitClick () {
// // 路由参数
// const routeParams = {
// routeName: `${this.$route.name}__${this.injectData.id}`,
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`,
// path: 'sys/dict-data',
// params: {
// dictTypeId: this.injectData.id
// }
// }
// // 动态路由
// addDynamicRoute(routeParams, this.$router)
// }
}
}
</script>

View File

@@ -0,0 +1,424 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:24:03
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime"
:placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/deliveryInspection",
infoURL: "/code/deliveryInspection/{id}",
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
supplierList: [],
userList: [],
samplingPlanList:[],
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
unitList:[],
productList: [],
factoryList:[],
visible: false,
listQuery: {
limit: 999,
page:1
},
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
id:null,
batchNo: null,
batchSize: null,
checkoutTime: null,
companyId: null,
factoryId: null,
inspectionPlan: null,
inspectionQuantity: null,
inspectionStatus: null,
inspectionTime: null,
inspectionType: null,
orderNumber: null,
productCode: null,
productId: null,
recheck: null,
remark: null,
samplesQuantity: null,
shiftId: null,
source: null,
supplierId: null,
teamId: 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",
},
],
};
},
},
created() {
this.getDict()
},
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();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/code/deliveryInspection/${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.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
;console.log(res.data.list)
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getDictDataList, {
params: {
limit: 999,
page: 1,
dictTypeId: '1665966021935190018'
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.unitList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// 表单提交
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: () => {
this.visible = false;
this.$emit("successSubmit");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>

View File

@@ -0,0 +1,317 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 10:17:37
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="task" :label="$t('code.task')">
<el-switch v-model="dataForm.task" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</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: "/basic/qmsCustomerType",
infoURL: "/basic/qmsCustomerType/{id}",
getCodeURL: '/basic/qmsControlMode/getCode',
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
// urlOptions: {
// submitURL: "/sys/params/",
// infoURL: "/sys/params",
// },
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
supplierList: [],
userList: [],
samplingPlanList: [],
unitList: [],
productList: [],
factoryList: [],
visible: false,
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
batchNo: null,
customSamplingId: null,
endTime: null,
factoryId: null,
inspectionStatus: null,
inspectionType: null,
productId: null,
recheck: null,
startTime: null,
supplierId: null,
task: null,
userId: null,
},
};
},
computed: {
// dataRule() {
// return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// paramValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// };
// },
},
mounted () {
this.getDict()
},
methods: {
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// init(id) {
// this.dataForm.id = id || "";
// this.visible = true;
// this.$nextTick(() => {
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// this.getInfo();
// }
// });
// },
// 获取信息
// getInfo() {
// this.$http
// .get(`/sys/params/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => {});
// },
// 表单提交
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm)
},
// dataFormSubmitHandle: debounce(
// function () {
// // console.log(1111);
// // this.visible = false;
// this.$emit("successSubmit", this.dataForm.key);
// // this.$refs["dataForm"].validate((valid) => {
// // if (!valid) {
// // return false;
// // }
// // this.$http[!this.dataForm.id ? "post" : "put"](
// // "/sys/params",
// // this.dataForm
// // )
// // .then(({ data: res }) => {
// // if (res.code !== 0) {
// // return this.$message.error(res.msg);
// // }
// // this.$message({
// // message: this.$t("prompt.success"),
// // type: "success",
// // duration: 500,
// // onClose: () => {
// // },
// // });
// // })
// // .catch(() => {});
// // });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@@ -0,0 +1,179 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:21:47
* @LastEditors: zwq
* @Description:
-->
<template>
<el-form
:model="dataForm"
ref="dataForm"
:rules="dataRule"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="130px"
>
<el-form-item prop="name" :label="$t('code.name')">
<el-input v-model="dataForm.name" :placeholder="$t('code.name')"> </el-input>
</el-form-item>
<el-form-item prop="code" :label="$t('code.code')">
<el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input>
</el-form-item>
<el-form-item prop="eightDisciplineStatus" :label="$t('code.eightDisciplineStatus')">
<el-switch v-model="dataForm.eightDisciplineStatus" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')">
<el-select
v-model="dataForm.eightDisciplineType"
:placeholder="$t('code.eightDisciplineType')"
>
<el-option
v-for="item in eightDisciplineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-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: "/code/eightDiscipline",
infoURL: "/code/eightDiscipline",
},
options: [
{
value: 0,
label: "不可用",
},
{
value: 1,
label: "可用",
},
],
eightDisciplineTypeList: [
{
value: "0",
label: "重复发生问题 ",
},
{
value: "1",
label: "客诉问题",
},
{
value: "2",
label: "重大质量问题",
},
],
visible: false,
dataForm: {
id: null,
name: null,
code: null,
eightDisciplineType: null,
eightDisciplineStatus: 0,
},
};
},
computed: {
dataRule() {
return {
code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入名称",
trigger: "blur",
},
],
};
},
},
methods: {
init(id) {
this.dataForm.id = id || "";
// console.log(11111)
// this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
} else {
// this.getCode()
}
});
},
// getCode() {
// this.$http.post(this.urlOptions.getCodeURL)
// .then(({ data: res }) => {
// if (res.code === 0) {
// console.log(res);
// this.dataForm.customSamplingCode = res.data
// }
// })
// .catch(() => {
// });
// },
// 获取信息
getInfo() {
this.$http
.get(`/code/eightDiscipline/${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: () => {
this.visible = false;
this.$emit("successSubmit");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>

View File

@@ -0,0 +1,69 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 14:03:43
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" label-width="120px">
<el-form-item prop="name" :label="$t('code.name')">
<el-input v-model="dataForm.name" :placeholder="$t('code.name')">
</el-input>
</el-form-item>
<el-form-item prop="code" :label="$t('code.code')">
<el-input v-model="dataForm.code" :placeholder="$t('code.code')"></el-input>
</el-form-item>
<el-form-item prop="eightDisciplineStatus" :label="$t('code.eightDisciplineStatus')">
<el-switch v-model="dataForm.eightDisciplineStatus" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
optionArrUrl: [],
},
visible: false,
dataForm: {
code: "",
name: "",
eightDisciplineStatus: 0
},
};
},
computed: {
dataRule() {
return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
};
},
},
methods: {
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
this.getArr();
});
},
dataFormSubmit() {
this.$emit("refreshDataList", this.dataForm);
},
},
};
</script>

View File

@@ -0,0 +1,37 @@
<template>
<div class="tableInner">
<el-input v-model="list[itemProp]" @blur="changeInput" />
</div>
</template>
<script>
export default {
name: "InputArea",
props: {
injectData: {
type: Object,
default: () => ({}),
},
itemProp: {
type: String,
},
},
data() {
return {
list: this.injectData,
};
},
methods: {
changeInput() {
this.list.sType = 1
this.$emit("emitData", this.list,1);
},
},
};
</script>
<style scoped>
.tableInner .el-input__inner {
border: none;
padding: 0;
height: 33px;
}
</style>

View File

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

View File

@@ -0,0 +1,424 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:24:07
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime"
:placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/productInspection",
infoURL: "/code/productInspection/{id}",
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
supplierList: [],
userList: [],
samplingPlanList:[],
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
unitList:[],
productList: [],
factoryList:[],
visible: false,
listQuery: {
limit: 999,
page:1
},
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
id: null,
batchNo: null,
batchSize: null,
checkoutTime: null,
companyId: null,
factoryId: null,
inspectionPlan: null,
inspectionQuantity: null,
inspectionStatus: null,
inspectionTime: null,
inspectionType: null,
orderNumber: null,
productCode: null,
productId: null,
recheck: null,
remark: null,
samplesQuantity: null,
shiftId: null,
source: null,
supplierId: null,
teamId: 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",
},
],
};
},
},
created() {
this.getDict()
},
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();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/code/productInspection/${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.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getDictDataList, {
params: {
limit: 999,
page: 1,
dictTypeId: '1665966021935190018'
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.unitList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// 表单提交
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: () => {
this.visible = false;
this.$emit("successSubmit");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>

View File

@@ -0,0 +1,317 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 10:18:16
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="task" :label="$t('code.task')">
<el-switch v-model="dataForm.task" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</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: "/basic/qmsCustomerType",
infoURL: "/basic/qmsCustomerType/{id}",
getCodeURL: '/basic/qmsControlMode/getCode',
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
// urlOptions: {
// submitURL: "/sys/params/",
// infoURL: "/sys/params",
// },
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
supplierList: [],
userList: [],
samplingPlanList: [],
unitList: [],
productList: [],
factoryList: [],
visible: false,
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
batchNo: null,
customSamplingId: null,
endTime: null,
factoryId: null,
inspectionStatus: null,
inspectionType: null,
productId: null,
recheck: null,
startTime: null,
supplierId: null,
task: null,
userId: null,
},
};
},
computed: {
// dataRule() {
// return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// paramValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// };
// },
},
mounted () {
this.getDict()
},
methods: {
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// init(id) {
// this.dataForm.id = id || "";
// this.visible = true;
// this.$nextTick(() => {
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// this.getInfo();
// }
// });
// },
// 获取信息
// getInfo() {
// this.$http
// .get(`/sys/params/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => {});
// },
// 表单提交
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm)
},
// dataFormSubmitHandle: debounce(
// function () {
// // console.log(1111);
// // this.visible = false;
// this.$emit("successSubmit", this.dataForm.key);
// // this.$refs["dataForm"].validate((valid) => {
// // if (!valid) {
// // return false;
// // }
// // this.$http[!this.dataForm.id ? "post" : "put"](
// // "/sys/params",
// // this.dataForm
// // )
// // .then(({ data: res }) => {
// // if (res.code !== 0) {
// // return this.$message.error(res.msg);
// // }
// // this.$message({
// // message: this.$t("prompt.success"),
// // type: "success",
// // duration: 500,
// // onClose: () => {
// // },
// // });
// // })
// // .catch(() => {});
// // });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@@ -0,0 +1,639 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:24:12
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime"
:placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider content-position="center">GBT2828.1</el-divider>
<el-form :model="GBTDataForm" ref="GBTDataForm" label-width="80px">
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="critical" label="CR" label-width="50px">
<el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalAccept" label="Accept">
<el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.criticalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="major" label="MA" label-width="50px">
<el-input v-model="GBTDataForm.major" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorAccept" label="Accept">
<el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.majorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="minor" label="MI" label-width="50px">
<el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorAccept" label="Accept">
<el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.minorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="total" label="total" label-width="50px">
<el-input v-model="GBTDataForm.total" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalAccept" label="Accept">
<el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.totalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
GBTSubmitURL: "/code/productRegistration",
submitURL: "/code/productRegistration",
infoURL: "/code/productRegistration/{id}",
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
supplierList: [],
userList: [],
samplingPlanList:[],
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
unitList:[],
productList: [],
factoryList:[],
visible: false,
listQuery: {
limit: 999,
page:1
},
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
GBTDataForm: {
critical:null,
criticalAccept: null,
criticalDefectiveNumber: null,
criticalNumber: null,
criticalReject: null,
id: null,
major: null,
majorAccept: null,
majorDefectiveNumber: null,
majorNumber: null,
majorReject: null,
minor: null,
minorAccept: null,
minorDefectiveNumber: null,
minorNumber: null,
minorReject: null,
purchaseRegistrationId: null,
total: null,
totalAccept: null,
totalDefectiveNumber: null,
totalNumber: null,
totalReject: null,
},
dataForm: {
batchNo:null,
batchQuantity: null,
batchSize: null,
checkoutTime: null,
companyId: null,
customSamplingId: null,
defectiveQuantity: null,
defectsNumber: null,
distributionUserId: null,
factoryId: null,
id: null,
inspectionQuantity: null,
inspectionTime: null,
inspectionType: null,
orderNumber: null,
parameterName: null,
processingMethod: null,
processingResults: null,
productId: null,
recordQuantity: null,
remark: null,
shiftId: null,
submit: null,
supplierId: null,
teamId: null,
upload: 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",
},
],
};
},
},
created() {
this.getDict()
},
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();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/code/productRegistration/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { })
this.$http
.get(`/code/shipmentInspectionNationalStandard/getById/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm = {
...this.GBTDataForm,
...res.data,
};
})
.catch(() => { })
},
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getDictDataList, {
params: {
limit: 999,
page: 1,
dictTypeId: '1665966021935190018'
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.unitList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
if (this.dataForm.id) {
this.$http.put(this.urlOptions.submitURL, this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm.purchaseRegistrationId = res.data
this.$http.post(this.urlOptions.GBTSubmitURL, this.parameterData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
.catch(() => { });
} else {
this.$http.post(this.urlOptions.submitURL, this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm.purchaseRegistrationId = res.data
this.$http.post(this.urlOptions.GBTSubmitURL, this.parameterData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
.catch(() => { });
}
});
},
// 表单提交
},
};
</script>

View File

@@ -0,0 +1,361 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 10:19:47
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="userId" :label="$t('code.Examiner')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.Examiner')">
<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="judgmentResult" :label="$t('code.judgmentResult')">
<el-select v-model="dataForm.judgmentResult" :placeholder="$t('code.judgmentResult')">
<el-option v-for="item in judgmentResultList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="task" :label="$t('code.processingResults')">
<el-radio-group v-model="dataForm.processingResults">
<el-radio :label="0"> {{ $t('code.approval') }} </el-radio>
<el-radio :label="1">{{ $t('code.approvalComplete') }} </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="task" :label="$t('code.status')">
<el-radio-group v-model="dataForm.upload">
<el-radio :label="0">{{ $t('code.notUploaded') }}</el-radio>
<el-radio :label="1">{{ $t('code.uploaded') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</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: "/basic/qmsCustomerType",
infoURL: "/basic/qmsCustomerType/{id}",
getCodeURL: '/basic/qmsControlMode/getCode',
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
// urlOptions: {
// submitURL: "/sys/params/",
// infoURL: "/sys/params",
// },
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
supplierList: [],
userList: [],
samplingPlanList: [],
judgmentResultList: [
{
id: 0,
name: '0未判定'
},
{
id: 1,
name: '1合格'
},
{
id: 2,
name: '不合格'
},
],
unitList: [],
productList: [],
factoryList: [],
visible: false,
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
processingResults: null,
batchNo: null,
customSamplingId: null,
factoryId: null,
inspectionType: null,
judgmentResult: null,
orderNumber: null,
productId: null,
recheck: null,
supplierId: null,
upload: null,
userId: null
},
};
},
computed: {
// dataRule() {
// return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// paramValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// };
// },
},
mounted() {
this.getDict()
},
methods: {
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// init(id) {
// this.dataForm.id = id || "";
// this.visible = true;
// this.$nextTick(() => {
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// this.getInfo();
// }
// });
// },
// 获取信息
// getInfo() {
// this.$http
// .get(`/sys/params/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => {});
// },
// 表单提交
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm)
},
// dataFormSubmitHandle: debounce(
// function () {
// // console.log(1111);
// // this.visible = false;
// this.$emit("successSubmit", this.dataForm.key);
// // this.$refs["dataForm"].validate((valid) => {
// // if (!valid) {
// // return false;
// // }
// // this.$http[!this.dataForm.id ? "post" : "put"](
// // "/sys/params",
// // this.dataForm
// // )
// // .then(({ data: res }) => {
// // if (res.code !== 0) {
// // return this.$message.error(res.msg);
// // }
// // this.$message({
// // message: this.$t("prompt.success"),
// // type: "success",
// // duration: 500,
// // onClose: () => {
// // },
// // });
// // })
// // .catch(() => {});
// // });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@@ -0,0 +1,49 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 14:12:10
* @LastEditTime: 2023-01-31 16:47:32
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<el-radio v-model="injectData.incomingInspection" :label="1"
>进货检验</el-radio
>
<el-radio v-model="injectData.processInspection" :label="1"
>过程检验</el-radio
>
<el-radio v-model="injectData.finishInspection" :label="1"
>成品检验</el-radio
>
<el-radio v-model="injectData.outInspection" :label="1">出货检验</el-radio>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({}),
},
},
methods: {
// 子级
// emitClick () {
// // 路由参数
// const routeParams = {
// routeName: `${this.$route.name}__${this.injectData.id}`,
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`,
// path: 'sys/dict-data',
// params: {
// dictTypeId: this.injectData.id
// }
// }
// // 动态路由
// addDynamicRoute(routeParams, this.$router)
// }
},
};
</script>

View File

@@ -0,0 +1,45 @@
<template>
<div class="tableInner">
<el-select v-model="list.string" @change="changeInput">
<el-option
v-for="item in injectData.roleList"
:key="item.id"
:label="item.username"
:value="item.id + '+' + item.username"
>
</el-option>
</el-select>
</div>
</template>
<script>
export default {
name: "InputArea",
props: {
injectData: {
type: Object,
default: () => ({}),
},
itemProp: {
type: String,
},
},
data() {
return {
list: this.injectData,
};
},
methods: {
changeInput() {
this.list.sType = 2
this.$emit("emitData", this.list);
},
},
};
</script>
<style scoped>
.tableInner .el-input__inner {
border: none;
padding: 0;
height: 33px;
}
</style>

View File

@@ -0,0 +1,47 @@
<template>
<div class="tableInner">
<el-date-picker
@change="changeInput"
v-model="list.time"
type="date"
size="mini"
:style="{width:'100%'}"
format='yyyy-MM-dd'
valueFormat='yyyy-MM-ddTHH:mm:ss'
prefix-icon="none"
placeholder="选择日期">
</el-date-picker>
</div>
</template>
<script>
export default {
name: "InputArea",
props: {
injectData: {
type: Object,
default: () => ({}),
},
itemProp: {
type: String,
},
},
data() {
return {
list: this.injectData,
};
},
methods: {
changeInput() {
this.list.sType = 3
this.$emit("emitData", this.list);
},
},
};
</script>
<style scoped>
.tableInner .el-input__inner {
border: none;
padding: 0;
height: 33px;
}
</style>

View File

@@ -0,0 +1,639 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:24:16
* @LastEditors: zhp
* @Description:
-->
<template>
<div>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionTime" :label="$t('code.inspectionTime')">
<el-date-picker v-model="dataForm.inspectionTime" type="datetime"
:placeholder="$t('code.inspectionTime')" format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchQuantity" :label="$t('code.batchQuantity')">
<el-input v-model="dataForm.batchQuantity" :placeholder="$t('code.batchQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="inspectionQuantity" :label="$t('code.inspectionQuantity')">
<el-input v-model="dataForm.inspectionQuantity"
:placeholder="$t('code.inspectionQuantity')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchSize" :label="$t('code.batchSize')">
<el-input v-model="dataForm.batchSize" :placeholder="$t('code.batchSize')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="samplesQuantity" :label="$t('code.samplesQuantity')">
<el-input v-model="dataForm.samplesQuantity" :placeholder="$t('code.samplesQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="companyId" :label="$t('code.companyName')">
<el-select v-model="dataForm.companyId" :placeholder="$t('code.companyName')">
<el-option v-for="item in unitList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="userId" :label="$t('code.username')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.username')">
<el-option v-for="item in userList" :key="item.id" :label="item.realName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider content-position="center">GBT2828.1</el-divider>
<el-form :model="GBTDataForm" ref="GBTDataForm" label-width="80px">
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="critical" label="CR" label-width="50px">
<el-input v-model="GBTDataForm.critical" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalAccept" label="Accept">
<el-input v-model="GBTDataForm.criticalAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.criticalReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.criticalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="criticalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.criticalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="major" label="MA" label-width="50px">
<el-input v-model="GBTDataForm.major" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorAccept" label="Accept">
<el-input v-model="GBTDataForm.majorAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.majorReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.majorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="majorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.majorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="minor" label="MI" label-width="50px">
<el-input v-model="GBTDataForm.minor" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorAccept" label="Accept">
<el-input v-model="GBTDataForm.minorAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.minorReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.minorNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="minorDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.minorDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="4">
<el-form-item prop="total" label="total" label-width="50px">
<el-input v-model="GBTDataForm.total" placeholder="CR"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalAccept" label="Accept">
<el-input v-model="GBTDataForm.totalAccept" placeholder="Accept"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalReject" label="Reject" label-width="60px">
<el-input v-model="GBTDataForm.totalReject" placeholder="Reject"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalNumber" :label="$t('code.defectsNumber')">
<el-input v-model="GBTDataForm.totalNumber" :placeholder="$t('code.defectsNumber')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="totalDefectiveNumber" :label="$t('code.defectiveQuantity')">
<el-input v-model="GBTDataForm.totalDefectiveNumber"
:placeholder="$t('code.defectiveQuantity')">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
GBTSubmitURL: "/code/shipmentRegistration",
submitURL: "/code/shipmentRegistration",
infoURL: "/code/shipmentRegistration/{id}",
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
supplierList: [],
userList: [],
samplingPlanList:[],
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
unitList:[],
productList: [],
factoryList:[],
visible: false,
listQuery: {
limit: 999,
page:1
},
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
GBTDataForm: {
critical:null,
criticalAccept: null,
criticalDefectiveNumber: null,
criticalNumber: null,
criticalReject: null,
id: null,
major: null,
majorAccept: null,
majorDefectiveNumber: null,
majorNumber: null,
majorReject: null,
minor: null,
minorAccept: null,
minorDefectiveNumber: null,
minorNumber: null,
minorReject: null,
purchaseRegistrationId: null,
total: null,
totalAccept: null,
totalDefectiveNumber: null,
totalNumber: null,
totalReject: null,
},
dataForm: {
batchNo: null,
batchQuantity: null,
batchSize: null,
checkoutTime: null,
companyId: null,
customSamplingId: null,
defectiveQuantity: null,
defectsNumber: null,
distributionUserId: null,
factoryId: null,
id: null,
inspectionQuantity: null,
inspectionTime: null,
inspectionType: null,
orderNumber: null,
parameterName: null,
processingMethod: null,
processingResults: null,
productId: null,
recordQuantity: null,
remark: null,
shiftId: null,
submit: null,
supplierId: null,
teamId: null,
upload: 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",
},
],
};
},
},
created() {
this.getDict()
},
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();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/code/shipmentRegistration/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => { })
this.$http
.get(`/code/purchaseRegistrationNationalStandard/getById/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm = {
...this.GBTDataForm,
...res.data,
};
})
.catch(() => { })
},
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getDictDataList, {
params: {
limit: 999,
page: 1,
dictTypeId: '1665966021935190018'
}
})
.then(({ data: res }) => {
if (res.code === 0) {
this.unitList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
if (this.dataForm.id) {
this.$http.put(this.urlOptions.submitURL, this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm.purchaseRegistrationId = res.data
this.$http.post(this.urlOptions.GBTSubmitURL, this.parameterData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
.catch(() => { });
} else {
this.$http.post(this.urlOptions.submitURL, this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.GBTDataForm.purchaseRegistrationId = res.data
this.$http.post(this.urlOptions.GBTSubmitURL, this.parameterData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList")
}
})
})
.catch(() => { });
}
});
},
// 表单提交
},
};
</script>

View File

@@ -0,0 +1,361 @@
<!--
* @Author: zwq
* @Date: 2023-01-04 10:29:40
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 10:19:42
* @Description:
-->
<template>
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="factoryId" :label="$t('code.factoryName')">
<el-select v-model="dataForm.factoryId" :placeholder="$t('code.factoryName')">
<el-option v-for="item in factoryList" :key="item.id" :label="item.factoryName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="batchNo" :label="$t('code.batchNo')">
<el-input v-model="dataForm.batchNo" :placeholder="$t('code.batchNo')"></el-input>
</el-form-item>
<el-form-item prop="inspectionType" :label="$t('code.inspectionType')">
<el-select v-model="dataForm.inspectionType" :placeholder="$t('code.inspectionType')">
<el-option v-for="item in inspectionTypeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="productId" :label="$t('code.productName')">
<el-select v-model="dataForm.productId" :placeholder="$t('code.productName')">
<el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="supplierId" :label="$t('code.supplierName')">
<el-select v-model="dataForm.supplierId" :placeholder="$t('code.supplierName')">
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="userId" :label="$t('code.Examiner')">
<el-select v-model="dataForm.userId" :placeholder="$t('code.Examiner')">
<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="customSamplingId" :label="$t('code.customSampling')">
<el-select v-model="dataForm.customSamplingId" :placeholder="$t('code.customSampling')">
<el-option v-for="item in samplingPlanList" :key="item.id" :label="item.sampleRange" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="judgmentResult" :label="$t('code.judgmentResult')">
<el-select v-model="dataForm.judgmentResult" :placeholder="$t('code.judgmentResult')">
<el-option v-for="item in judgmentResultList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="orderNumber" :label="$t('code.orderNumber')">
<el-input v-model="dataForm.orderNumber" :placeholder="$t('code.orderNumber')"></el-input>
</el-form-item>
<el-form-item prop="recheck" :label="$t('code.recheck')">
<el-switch v-model="dataForm.recheck" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item prop="task" :label="$t('code.processingResults')">
<el-radio-group v-model="dataForm.processingResults">
<el-radio :label="0"> {{ $t('code.approval') }} </el-radio>
<el-radio :label="1">{{ $t('code.approvalComplete') }} </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="task" :label="$t('code.status')">
<el-radio-group v-model="dataForm.upload">
<el-radio :label="0">{{ $t('code.notUploaded') }}</el-radio>
<el-radio :label="1">{{ $t('code.uploaded') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="inspectionStatus" :label="$t('code.inspectionStatus')">
<el-select v-model="dataForm.inspectionStatus" :placeholder="$t('code.inspectionStatus')">
<el-option v-for="item in inspectionStatusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</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: "/basic/qmsCustomerType",
infoURL: "/basic/qmsCustomerType/{id}",
getCodeURL: '/basic/qmsControlMode/getCode',
getFactoryURL: '/code/factory/page',
getProductURL: '/basic/product/page',
getSupplierURL: '/supplier/qmsSupplier/page',
getDictDataList: '/sys/dict/data/page',
getUserURL: '/sys/user/page',
getSamplingPlanURL: '/quality/qmsSamplingPlan/page'
},
// urlOptions: {
// submitURL: "/sys/params/",
// infoURL: "/sys/params",
// },
inspectionStatusList: [
{
id: 0,
name: '未登记'
},
{
id: 1,
name: '已登记'
}
],
supplierList: [],
userList: [],
samplingPlanList: [],
judgmentResultList: [
{
id: 0,
name: '0未判定'
},
{
id: 1,
name: '1合格'
},
{
id: 2,
name: '不合格'
},
],
unitList: [],
productList: [],
factoryList: [],
visible: false,
inspectionTypeList: [{
value: 0,
label: '监控'
},
{
value: 1,
label: '电芯来料检验'
},
{
value: 2,
label: 'IQC抽检'
},
{
value: 3,
label: 'IQC抽检2'
},
{
value: 4,
label: '原料抽检'
},
{
value: 5,
label: '进货外观检验'
},
{
value: 6,
label: '库内原料检验'
},
{
value: 7,
label: '来料检验'
},
{
value: 8,
label: '胶片'
},
{
value: 9,
label: '抽检'
},
{
value: 10,
label: '巡检'
}, {
value: 11,
label: '首检'
},
{
value: 12,
label: '末检'
},
{
value: 13,
label: '实时监测'
},
{
value: 14,
label: 'FQC抽检'
},
{
value: 15,
label: 'OQC抽检'
},
],
dataForm: {
processingResults: null,
batchNo: null,
customSamplingId: null,
factoryId: null,
inspectionType: null,
judgmentResult: null,
orderNumber: null,
productId: null,
recheck: null,
supplierId: null,
upload: null,
userId: null
},
};
},
computed: {
// dataRule() {
// return {
// paramCode: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// paramValue: [
// {
// required: true,
// message: this.$t("validate.required"),
// trigger: "blur",
// },
// ],
// };
// },
},
mounted() {
this.getDict()
},
methods: {
getDict() {
this.$http
.get(this.urlOptions.getSamplingPlanURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.samplingPlanList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getProductURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.productList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getSupplierURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.supplierList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getUserURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.userList = res.data.list
}
})
.catch(() => {
})
this.$http
.get(this.urlOptions.getFactoryURL, {
params: this.listQuery
})
.then(({ data: res }) => {
if (res.code === 0) {
this.factoryList = res.data.list
}
})
.catch(() => {
})
// console.log(111111);
},
// init(id) {
// this.dataForm.id = id || "";
// this.visible = true;
// this.$nextTick(() => {
// this.$refs["dataForm"].resetFields();
// if (this.dataForm.id) {
// this.getInfo();
// }
// });
// },
// 获取信息
// getInfo() {
// this.$http
// .get(`/sys/params/${this.dataForm.id}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// }
// this.dataForm = {
// ...this.dataForm,
// ...res.data,
// };
// })
// .catch(() => {});
// },
// 表单提交
handleConditionSearch() {
this.$emit("successSubmit", this.dataForm)
},
// dataFormSubmitHandle: debounce(
// function () {
// // console.log(1111);
// // this.visible = false;
// this.$emit("successSubmit", this.dataForm.key);
// // this.$refs["dataForm"].validate((valid) => {
// // if (!valid) {
// // return false;
// // }
// // this.$http[!this.dataForm.id ? "post" : "put"](
// // "/sys/params",
// // this.dataForm
// // )
// // .then(({ data: res }) => {
// // if (res.code !== 0) {
// // return this.$message.error(res.msg);
// // }
// // this.$message({
// // message: this.$t("prompt.success"),
// // type: "success",
// // duration: 500,
// // onClose: () => {
// // },
// // });
// // })
// // .catch(() => {});
// // });
// },
// 1000,
// { leading: true, trailing: false }
// ),
},
};
</script>

View File

@@ -0,0 +1,490 @@
<!--
* @Author: zhp
* @Date: 2023-02-14 15:02:26
* @LastEditTime: 2023-07-17 10:27:00
* @LastEditors: zwq
* @Description:
-->
<template>
<el-form
:model="dataForm"
ref="dataForm"
:rules="dataRule"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="100px"
>
<el-row :gutter="24">
<el-col :span="8">
<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-col>
<el-col :span="8">
<el-form-item prop="title" :label="$t('code.title')">
<el-input v-model="dataForm.title" :placeholder="$t('code.title')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')">
<el-select
:style="{ width: '100%' }"
v-model="dataForm.eightDisciplineType"
:placeholder="$t('code.eightDisciplineType')"
>
<el-option
v-for="item in eightDisciplineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="orderNo" :label="$t('code.orderNo')">
<el-input v-model="dataForm.orderNo" :placeholder="$t('code.orderNo')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="requestResponseCycle" :label="$t('code.requestResponseCycle')">
<el-input
v-model="dataForm.requestResponseCycle"
:placeholder="$t('code.requestResponseCycle')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="batchNumber" :label="$t('code.batchNumber')">
<el-input v-model="dataForm.batchNumber" :placeholder="$t('code.batchNumber')"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="sampleAcceptanceTime" :label="$t('code.sampleAcceptanceTime')">
<el-date-picker
:style="{ width: '100%' }"
v-model="dataForm.sampleAcceptanceTime"
type="datetime"
:placeholder="$t('code.sampleAcceptanceTime')"
format="yyyy-MM-dd HH:mm:ss"
valueFormat="yyyy-MM-ddTHH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="defectSourceId" :label="$t('code.defectSource')">
<el-select
:style="{ width: '100%' }"
v-model="dataForm.defectSourceId"
:placeholder="$t('code.defectSource')"
>
<el-option
v-for="item in defectList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="actualResponsePeriod" :label="$t('code.actualResponsePeriod')">
<el-input
v-model="dataForm.actualResponsePeriod"
:placeholder="$t('code.requestResponseCycle')"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="occurrenceDate" :label="$t('code.occurrenceDate')">
<el-date-picker
v-model="dataForm.occurrenceDate"
type="datetime"
:style="{ width: '100%' }"
:placeholder="$t('code.occurrenceDate')"
format="yyyy-MM-dd HH:mm:ss"
valueFormat="yyyy-MM-ddTHH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
prop="responsibilityAttributionId"
:label="$t('code.responsibilityAttribution')"
>
<el-select
:style="{ width: '100%' }"
v-model="dataForm.responsibilityAttributionId"
:placeholder="$t('code.responsibilityAttribution')"
>
<el-option
v-for="item in dutyList"
:key="item.dictTypeId"
:label="item.dictLabel"
:value="item.dictTypeId"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="finalCompletionDate" :label="$t('code.finalCompletionDate')">
<el-date-picker
:style="{ width: '100%' }"
v-model="dataForm.finalCompletionDate"
type="datetime"
:placeholder="$t('code.finalCompletionDate')"
format="yyyy-MM-dd HH:mm:ss"
valueFormat="yyyy-MM-ddTHH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item prop="examineStatus" :label="$t('code.examineStatus')">
<el-select
:style="{ width: '100%' }"
v-model="dataForm.examineStatus"
:placeholder="$t('code.examineStatus')">
<el-option
v-for="item in examineStatusList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col> -->
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="teamList" :label="$t('code.eightDTeam')">
<el-select
:style="{ width: '100%' }"
v-model="dataForm.teamList"
:placeholder="$t('code.eightDTeam')"
multiple>
<el-option
v-for="item in teamList"
:key="item.id"
:label="item.teamName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="custom" label="客户">
<el-select v-model="dataForm.custom" @change="changeCustom" filterable clearable placeholder="请选择客户">
<el-option
v-for="item in urlOptions.optionArr.arr0"
:key="item.id"
:label="item.customerName"
:value="item.id+'+'+item.customerName"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="product" label="产品">
<el-select v-model="dataForm.product" @change="changeProduct" filterable clearable placeholder="请选择产品">
<el-option
v-for="item in urlOptions.optionArr.arr1"
:key="item.id"
:label="item.productName"
:value="item.id+'+'+item.productName"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item prop="description" :label="$t('code.description')">
<el-input v-model="dataForm.description" :placeholder="$t('code.description')"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script>
import debounce from "lodash/debounce";
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
getOption: true,
submitURL: "/code/startEightDiscipline",
infoURL: "/code/startEightDiscipline/{id}",
getDictURL: "/sys/dict/data/page",
customerListURL: "/basic/qmsCustomer/page",
productListURL: "/basic/qmsProduct/page",
teamListURL: "/basic/qmsTeam/page",
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"],
},
defectList: [],
teamList: [],
customerList: [],
productList: [],
dutyList: [],
productList: [],
customList: [],
examineStatusList: [
{
id: 0,
name: "不需要审批",
},
{
id: 1,
name: "需要审批",
},
],
options: [
{
value: 0,
label: "不可用",
},
{
value: 1,
label: "可用",
},
],
eightDisciplineTypeList: [
{
value: '0',
label: "重复发生问题 ",
},
{
value: '1',
label: "客诉问题",
},
{
value: '2',
label: "重大质量问题",
},
],
listQuery: {
limit: 10,
page: 1,
},
visible: false,
dataForm: {
actualResponsePeriod: null,
batchNumber: null,
code: null,
customId: null,
custom: null,
customName: null,
defectSourceId: null,
description: null,
eightDisciplineId: null,
eightDisciplineStatus: 0,
eightDisciplineType: null,
examineStatus: null,
finalCompletionDate: null,
id: null,
occurrenceDate: null,
orderNo: null,
productId: null,
product: null,
productName: null,
productTypeId: null,
teamList: undefined,
requestResponseCycle: null,
responsibilityAttributionId: null,
sampleAcceptanceTime: null,
supportProducts: null,
title: null,
userId: null,
},
};
},
computed: {
dataRule() {
return {
code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
],
title: [
{
required: true,
message: "请输入标题",
trigger: "blur",
},
],
eightDisciplineType: [
{
required: true,
message: "请选择8D类型",
trigger: "change",
},
],
defectSourceId: [
{
required: true,
message: "请选择缺陷来源",
trigger: "change",
},
],
occurrenceDate: [
{
required: true,
message: "请选择发生日期",
trigger: "change",
},
],
product: [
{
required: true,
message: "请选择产品",
trigger: "change",
},
],
};
},
},
mounted() {
this.getDict();
},
methods: {
init(id) {
this.dataForm.id = id || "";
// console.log(11111)
// this.dataForm.dictTypeId = dictTypeId || "";
this.visible = true;
if (this.urlOptions.getOption) {
this.getArr()
}
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
} else {
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/code/startEightDiscipline/${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.teamListURL, {
params: {
limit: 999,
page: 1,
},
})
.then(({ data: res }) => {
if (res.code === 0) {
this.teamList = res.data.list;
}
})
.catch(() => {});
this.$http
.get("code/problemType/page", {
params: {
limit: 999,
page: 1,
dictTypeId: "1664162193896206337",
},
})
.then(({ data: res }) => {
if (res.code === 0) {
this.defectList = res.data.list;
}
})
.catch(() => {});
this.$http
.get(this.urlOptions.getDictURL, {
params: {
limit: 999,
page: 1,
dictTypeId: "1664162455184568321",
},
})
.then(({ data: res }) => {
if (res.code === 0) {
this.dutyList = res.data.list;
}
})
.catch(() => {});
},
changeCustom(){
this.dataForm.customId = this.dataForm.custom
? this.dataForm.custom.split("+")[0]
: "";
this.dataForm.customName = this.dataForm.custom
? this.dataForm.custom.split("+")[1]
: "";
},
changeProduct(){
this.dataForm.productId = this.dataForm.product
? this.dataForm.product.split("+")[0]
: "";
this.dataForm.productName = this.dataForm.product
? this.dataForm.product.split("+")[1]
: "";
},
// 表单提交
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: () => {
this.visible = false;
this.$emit("successSubmit");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>

View File

@@ -0,0 +1,207 @@
<!--
* @Author: zwq
* @Date: 2023-06-29 14:12:48
* @LastEditors: zwq
* @LastEditTime: 2023-06-30 09:03:53
* @Description:
-->
<template>
<base-table border :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" />
</template>
<script>
import basicAdd from "@/mixins/basic-add";
import inputArea from "./inputArea";
import selectMember from "./selectMember";
import i18n from "@/i18n";
const tableProps = [
{
prop: "stepName",
label: i18n.t("disqualification.step"),
align: "center",
},
{
prop: "member",
label: "成员",
align: "center",
subcomponent: selectMember,
},
{
prop: "time",
label: "时间(小时)",
align: "center",
subcomponent: inputArea,
},
{
prop: "approver",
label: "审批人",
align: "center",
subcomponent: selectMember,
},
{
prop: "terminationApprover",
label: "终止审批人",
align: "center",
subcomponent: selectMember,
},
];
export default {
components: {
inputArea,
selectMember,
},
mixins: [basicAdd],
props: {
roleList: {
type: Array,
default: () => [],
},
},
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
},
tableProps,
visible: false,
tableData: [
{
stepName: "D3",
step: 3,
roleList: this.roleList,
},
{
stepName: "D4",
step: 4,
roleList: this.roleList,
},
{
stepName: "D5",
step: 5,
roleList: this.roleList,
},
{
stepName: "D6",
step: 6,
roleList: this.roleList,
},
{
stepName: "D7",
step: 7,
roleList: this.roleList,
},
{
stepName: "D8",
step: 8,
roleList: this.roleList,
},
],
id: "",
};
},
computed: {
dataRule() {
return {
// description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.id = id;
this.visible = true;
this.$nextTick(() => {});
},
inputChange(data) {
switch (data.sType) {
case 1:
this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
break;
case 2:
this.tableData[data._pageIndex - 1][data.prop] = data.string
? data.string.split("+")[0]
: "";
this.tableData[data._pageIndex - 1][data.prop + "Name"] = data.string
? data.string.split("+")[1]
: "";
break;
default:
console.log(val);
}
},
formClear() {},
// 表单提交
dataFormSubmit() {
let putData = {
eightDisciplineStatus: 3,
examineStatus: 1,
id: this.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.tableData.forEach((item) => {
item.startEightDisciplineId = this.id;
});
this.$http.post("/code/startEightDisciplineCreateTeam/save/list", this.tableData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,117 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="description" :label="$t('code.description')">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplineDescriptionCorrectiveAction",
},
visible: false,
dataForm: {
description: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.dataForm.startEightDisciplineId = id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 6,
examineStatus: 1,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,117 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="description" :label="$t('code.description')">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
},
visible: false,
dataForm: {
description: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(data) {
this.dataForm.startEightDisciplineId = data.id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 2,
examineStatus: 1,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,117 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="description" :label="$t('code.description')">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplinePreventRecurrence",
},
visible: false,
dataForm: {
description: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.dataForm.startEightDisciplineId = id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 8,
examineStatus: 1,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,117 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="problemType" label="问题类型">
<el-input type="textarea" :rows="2" placeholder="请输入工艺问题" v-model="dataForm.problemType">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplineRootCauseAnalysis",
},
visible: false,
dataForm: {
problemType: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
problemType: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(data) {
this.dataForm.startEightDisciplineId = data.id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 5,
examineStatus: 1,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,116 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="description" :label="$t('code.description')">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplineSummaryExperience",
},
visible: false,
dataForm: {
description: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.dataForm.startEightDisciplineId = id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 9,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,224 @@
<!--
* @Author: zwq
* @Date: 2023-06-29 14:12:48
* @LastEditors: zwq
* @LastEditTime: 2023-07-14 10:20:11
* @Description:
-->
<template>
<base-table border :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" />
</template>
<script>
import basicAdd from "@/mixins/basic-add";
import inputArea from "./inputArea";
import selectMember from "./selectMember";
import selectTime from "./selectTime";
import i18n from "@/i18n";
const tableProps = [
{
prop: "containmentLocaleName",
label: "遏制区域设置",
align: "center",
},
{
prop: "developCountermeasuresName",
label: "拟定对策",
align: "center",
},
{
prop: "controlleQuantity",
label: "应受控数量",
align: "center",
subcomponent: inputArea,
},
{
prop: "actualQuantity",
label: "实际数量",
align: "center",
subcomponent: inputArea,
},
{
prop: "defectQuantity",
label: "不良数量",
align: "center",
subcomponent: inputArea,
},
{
prop: "userName",
label: "负责人",
align: "center",
subcomponent: selectMember,
},
{
prop: "completionDate",
label: "完成日期",
align: "center",
subcomponent: selectTime,
},
];
export default {
components: {
inputArea,
selectMember,
},
mixins: [basicAdd],
props: {
roleList: {
type: Array,
default: () => [],
},
},
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
},
tableProps,
visible: false,
tableData: [
{
containmentLocaleName: "装配线",
containmentLocale: 1,
developCountermeasuresName: "让步接收",
developCountermeasures: 1,
roleList: this.roleList,
},
{
containmentLocaleName: "生产线",
containmentLocale: 2,
developCountermeasuresName: "分选返工",
developCountermeasures: 2,
roleList: this.roleList,
},
{
containmentLocaleName: "实验室",
containmentLocale: 3,
developCountermeasuresName: "隔离",
developCountermeasures: 3,
roleList: this.roleList,
},
{
containmentLocaleName: "成品在途",
containmentLocale: 4,
developCountermeasuresName: "退换货",
developCountermeasures: 4,
roleList: this.roleList,
},
{
containmentLocaleName: "第三方中间商",
containmentLocale: 5,
developCountermeasuresName: "通知供应商",
developCountermeasures: 5,
roleList: this.roleList,
},
],
id: "",
};
},
computed: {
dataRule() {
return {
// description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.id = id;
this.visible = true;
this.$nextTick(() => {});
},
inputChange(data) {
switch (data.sType) {
case 1:
this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
break;
case 2:
this.tableData[data._pageIndex - 1].userName = data.string
? data.string.split("+")[1]
: "";
this.tableData[data._pageIndex - 1].userId = data.string ? data.string.split("+")[0] : "";
break;
case 3:
this.tableData[data._pageIndex - 1][data.prop] = data.time;
break;
default:
console.log(val);
}
},
formClear() {},
// 表单提交
dataFormSubmit() {
let putData = {
eightDisciplineStatus: 4,
examineStatus: 1,
id: this.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.tableData.forEach((item) => {
item.startEightDisciplineId = this.id;
});
this.$http.post("/code/startEightDisciplineTemporaryTreatmentMeasures/save/list", this.tableData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,117 @@
<template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item prop="description" :label="$t('code.description')">
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
</el-input>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplineValidation",
},
visible: false,
dataForm: {
description: "",
startEightDisciplineId: "",
},
};
},
computed: {
dataRule() {
return {
description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.dataForm.startEightDisciplineId = id;
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
let putData = {
eightDisciplineStatus: 7,
examineStatus: 1,
id: this.dataForm.startEightDisciplineId,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http
.post(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(() => {});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,223 @@
<!--
* @Author: zwq
* @Date: 2023-06-29 14:12:48
* @LastEditors: zwq
* @LastEditTime: 2023-07-17 13:30:04
* @Description:
-->
<template>
<base-table
border
show-summary
:table-props="tableProps"
:table-data="tableData"
@emitFun="inputChange"
/>
</template>
<script>
import basicAdd from "@/mixins/basic-add";
import selectMember from "./selectMember";
import i18n from "@/i18n";
const tableProps = [
{
prop: "stepName",
label: i18n.t("disqualification.step"),
align: "center",
},
{
prop: "desc",
label: "打分项",
align: "center",
},
{
prop: "gradeList",
label: "打分",
align: "center",
subcomponent: selectMember,
},
{
prop: "grade",
label: "分数",
align: "center",
},
];
const gradeList = [
{ id: 1, username: "优" },
{ id: 2, username: "良" },
{ id: 3, username: "差" },
];
const score = [10, 8, 0];
export default {
components: {
selectMember,
},
mixins: [basicAdd],
data() {
return {
urlOptions: {
submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
},
tableProps,
score,
visible: false,
tableData: [
{
stepName: "D1",
step: 1,
desc: "初步分析",
roleList: gradeList,
},
{
stepName: "D2",
step: 2,
desc: "创建团队",
roleList: gradeList,
},
{
stepName: "D3",
step: 3,
desc: "临时处理措施",
roleList: gradeList,
},
{
stepName: "D4",
step: 4,
desc: "根本原因分析",
roleList: gradeList,
},
{
stepName: "D5",
step: 5,
desc: "纠正措施描述",
roleList: gradeList,
},
{
stepName: "D6",
step: 6,
desc: "有效性验证",
roleList: gradeList,
},
{
stepName: "D7",
step: 7,
desc: "预防再发生",
roleList: gradeList,
},
{
stepName: "D8",
step: 8,
desc: "总结与经验分享",
roleList: gradeList,
},
],
id: "",
};
},
computed: {
dataRule() {
return {
// description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
};
},
},
methods: {
init(id) {
this.id = id;
this.visible = true;
this.$nextTick(() => {});
},
inputChange(data) {
switch (data.sType) {
case 1:
this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
break;
case 2:
this.tableData[data._pageIndex - 1].gradeStatus = data.string
? data.string.split("+")[0]
: "";
if (this.tableData[data._pageIndex - 1].gradeStatus) {
this.$set(
this.tableData[data._pageIndex - 1],
"grade",
this.score[this.tableData[data._pageIndex - 1].gradeStatus - 1]
);
}
break;
default:
console.log(val);
}
},
formClear() {},
// 表单提交
dataFormSubmit() {
this.tableData.forEach((item) => {
item.startEightDisciplineId = this.id;
});
let putData = {
gradeFinish: 1,
id: this.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
} else {
this.$message.error(data.msg);
}
});
this.$http.post("/code/startEightGrade/save/list", this.tableData).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
});
},
},
};
</script>
<style lang="scss">
.mod-sys__menu {
.menu-list,
.icon-list {
.el-input__inner,
.el-input__suffix {
cursor: pointer;
}
}
&-icon-popover {
width: 458px;
overflow: hidden;
}
&-icon-inner {
width: 478px;
max-height: 258px;
overflow-x: hidden;
overflow-y: auto;
}
&-icon-list {
width: 458px;
padding: 0;
margin: -8px 0 0 -8px;
> .el-button {
padding: 8px;
margin: 8px 0 0 8px;
> span {
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
font-size: 18px;
}
}
}
}
</style>

View File

@@ -0,0 +1,318 @@
<!--
* @Author: zhp
* @Date: 2023-06-19 15:52:51
* @LastEditTime: 2023-07-17 10:31:16
* @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="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">
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<deliveryInspection-add ref="addOrUpdate" @successSubmit="successSubmit">
</deliveryInspection-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<deliveryInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</deliveryInspection-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 showProductList from "./components/showProductList.vue";
import deliveryInspectionSearch from "./components/deliveryInspectionSearch.vue";
import deliveryInspectionAdd from "./components/deliveryInspection-add.vue";
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "inspectionStatus",
label: i18n.t('code.inspectionStatus'),
},
{
prop: "factoryName",
label: i18n.t('code.factoryName'),
},
{
prop: "batchNo",
label: i18n.t('code.batchNo'),
},
{
prop: "orderNumber",
label: i18n.t('code.orderNumber'),
},
{
prop: "productName",
label: i18n.t('code.productName'),
},
{
prop: "companyName",
label: i18n.t('code.companyName'),
},
{
prop: "productCode",
label: i18n.t('code.productCode'),
},
{
prop: "supplierName",
label: i18n.t('code.supplierName'),
},
{
prop: "batchQuantity",
label: i18n.t('code.batchQuantity'),
},
{
prop: "inspectionQuantity",
label: i18n.t('code.inspectionQuantity'),
},
{
prop: "checkoutTime",
label: i18n.t('code.checkoutTime'),
},
{
prop: "inspectionTime",
label: i18n.t('code.inspectionTime'),
},
{
prop: "inspectionType",
label: i18n.t('code.inspectionType'),
},
{
prop: "username",
label: i18n.t('code.username'),
},
{
prop: "source",
label: i18n.t('code.source'),
}
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('t.edit'),
},
{
type: "delete",
btnName: i18n.t('t.delete'),
},
];
export default {
mixins: [basicPage, basicSearch],
data() {
return {
urlOptions: {
getDataListURL: "code/deliveryInspection/page/term",
deleteURL: "/code/deliveryInspection",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page:1
},
productData: {},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible:false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
deliveryInspectionSearch,
deliveryInspectionAdd
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
handleCurrentChange(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);
this.listQuery.batchNo = dataForm.batchNo ? dataForm.batchNo : null
this.listQuery.customSamplingId = dataForm.customSamplingId ? dataForm.customSamplingId : null
this.listQuery.endTime = dataForm.timeSlot ? dataForm.timeSlot[1] : null
this.listQuery.startTime = dataForm.timeSlot ? dataForm.timeSlot[0] : null
this.listQuery.factoryId = dataForm.factoryId ? dataForm.factoryId : null
this.listQuery.inspectionStatus = dataForm.inspectionStatus ? dataForm.inspectionStatus : null
this.listQuery.inspectionType = dataForm.inspectionType ? dataForm.inspectionType : null
this.listQuery.productId = dataForm.productId ? dataForm.productId : null
this.listQuery.recheck = dataForm.recheck ? dataForm.recheck : null
this.listQuery.supplierId = dataForm.supplierId ? dataForm.supplierId : null
this.listQuery.task = dataForm.task ? dataForm.task : null
this.listQuery.userId = dataForm.userId ? dataForm.userId : null
this.listQuery.page = 1
this.getDataList(this.listQuery)
this.searchOrUpdateVisible = false
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
// addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(productData);
// });
// },
getDataList() {
this.dataListLoading = true;
this.$http
.post(this.urlOptions.getDataListURL, this.listQuery,
)
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.page = 1;
this.getDataList();
break;
case "correlation":
this.productOrEditTitle = "产品";
this.productOrUpdateVisible = true;
// this.searchOrUpdateHandle(this.productData);
// this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.productOrUpdate.init(this.productData);
});
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,180 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 09:08:38
* @LastEditors: zwq
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
</SearchBar>
<base-table
:table-props="tableProps"
:page="listQuery.page"
:limit="listQuery.limit"
:table-data="tableData"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="100"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
:limit.sync="listQuery.limit"
:page.sync="listQuery.page"
:total="listQuery.total"
@pagination="getDataList"
/>
<!-- 弹窗, 条件搜索-->
<!-- <base-dialog
:dialogTitle="searchsTitle"
:dialogVisible="searchsVisible"
@cancel="searchsCancel"
@confirm="searchsConfirm"
:before-close="searchsCancel"
>
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
</base-dialog> -->
<!-- 弹窗, 新增 / 修改 -->
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="addOrUpdateVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
>
<eightDiscipline-add ref="addOrUpdate" @refreshDataList="successSubmit">
</eightDiscipline-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import eightDisciplineAdd from "./components/eightDiscipline-add";
import available from "./components/available.vue";
// import Searchs from "./components/eightDiscipline-searchs";
import codeFilter from "@/filters/code-filter";
import i18n from "@/i18n";
const tableProps = [
{
prop: "name",
label: i18n.t("code.name"),
align: "center",
},
{
prop: "code",
label: i18n.t("code.code"),
align: "center",
},
{
prop: "eightDisciplineType",
label: i18n.t("code.eightDisciplineType"),
align: "center",
filter: codeFilter("eightDisciplineType"),
},
{
prop: "problemStatus",
label: i18n.t("code.problemStatus"),
align: "center",
subcomponent: available,
},
];
const tableBtn = [
{
type: "edit",
btnName: "编辑",
},
{
type: "delete",
btnName: "删除",
},
];
export default {
mixins: [basicPage],
components: {
eightDisciplineAdd,
// Searchs,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/eightDiscipline/page",
deleteURL: "/code/eightDiscipline",
},
tableProps,
tableBtn,
formConfig: [
{
type: "input",
label: i18n.t("code.name"),
placeholder: i18n.t("code.name"),
param: "name",
},
{
type: "input",
label: i18n.t("code.code"),
placeholder: i18n.t("code.code"),
param: "code",
},
{
type: "select",
label: i18n.t('code.eightDisciplineStatus'),
selectOptions: [
{ id: 1, name: "可用" },
{ id: 0, name: "不可用" },
],
param: "eightDisciplineStatus",
defaultSelect: "",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
],
};
},
methods: {
//search-bar点击
searchsClick() {
this.searchsTitle = "条件搜索";
this.searchsHandle();
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.code = val.code;
this.listQuery.name = val.name;
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus;
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t("add");
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,248 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:22
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
@pagination="getDataList" />
<!-- 弹窗, 新增 / 修改 -->
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
import basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
{
prop: 'productName',
label: i18n.t("code.productName"),
align: 'center'
},
{
prop: 'customName',
label: i18n.t("code.customName"),
align: 'center'
},
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "approve",
btnName: "审批",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
// transferSchemeSearch,
// transferSchemeAdd
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
examineStatus:1
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
// {
// type: 'select',
// label: i18n.t('code.examineStatus'),
// selectOptions: [
// {
// id: 0,
// name: '不需要审批',
// },
// {
// id: 1,
// name: '需要审批',
// }
// ],
// param: 'examineStatus',
// clearable: true,
// filterable: true
// },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "approve") {
this.$confirm(`确定对此条数据进行审批操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let putData = {
examineStatus: 0,
id: val.data.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => {});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -1,20 +1,14 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-01-12 09:46:23
* @LastEditors: zhp
* @LastEditTime: 2023-07-14 13:53:02
* @LastEditors: zwq
* @Description:
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<SearchBar
:formConfigs="formConfig"
ref="ruleForm"
@headBtnClick="buttonClick"
>
<el-button type="primary" size="small" plain>导入</el-button>
</SearchBar>
<SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick"> </SearchBar>
<base-table
:table-props="tableProps"
:page="listQuery.page"
@@ -44,7 +38,7 @@
@confirm="handleConfirm"
:before-close="handleCancel"
>
<!-- <add-or-update ref="addOrUpdate" @successSubmit="successSubmit"></add-or-update> -->
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
@@ -52,20 +46,30 @@
<script>
import basicPage from "@/mixins/basic-page";
// import AddOrUpdate from './params-add-or-update'
import AddOrUpdate from "./components/problemType-add";
import available from "./components/available.vue";
import i18n from "@/i18n";
const tableProps = [
{
prop: "paramCode",
label: i18n.t("params.paramCode"),
prop: "name",
label: i18n.t("code.name"),
align: "center",
},
{
prop: "paramValue",
label: i18n.t("params.paramValue"),
prop: "code",
label: i18n.t("code.code"),
align: "center",
},
{
prop: "remark",
label: i18n.t("params.remark"),
prop: "description",
label: "描述",
align: "center",
},
{
prop: "problemStatus",
label: i18n.t("code.problemStatus"),
align: "center",
subcomponent: available,
},
];
const tableBtn = [
@@ -80,55 +84,60 @@ const tableBtn = [
];
export default {
mixins: [basicPage],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/basic/qmsControlMode/page",
deleteURL: "/basic/qmsControlMode",
getDataListURL: "/code/problemType/page",
deleteURL: "/code/problemType",
},
tableProps,
tableBtn,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "select",
label: "状态",
selectOptions: [
{ id: 1, name: "可用" },
{ id: 0, name: "不可用" },
],
param: "problemStatus",
defaultSelect: "",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
plain: true,
},
],
};
},
// components: {
// AddOrUpdate,
// },
methods:{
//search-bar
methods: {
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.problemStatus = val.problemStatus;
this.getDataList();
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
this.addOrEditTitle = this.$t("add");
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
break;
default:
console.log(val)
}
console.log(val);
}
},
}
},
};
</script>

View File

@@ -0,0 +1,317 @@
<!--
* @Author: zhp
* @Date: 2023-06-19 15:52:51
* @LastEditTime: 2023-07-17 10:30:40
* @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="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">
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<productInspection-add ref="addOrUpdate" @successSubmit="successSubmit"></productInspection-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<productInspection-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</productInspection-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 showProductList from "./components/showProductList.vue";
import productInspectionSearch from "./components/productInspectionSearch.vue";
import productInspectionAdd from "./components/productInspection-add.vue";
import i18n from "@/i18n";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "inspectionStatus",
label: i18n.t('code.inspectionStatus'),
},
{
prop: "factoryName",
label: i18n.t('code.factoryName'),
},
{
prop: "batchNo",
label: i18n.t('code.batchNo'),
},
{
prop: "orderNumber",
label: i18n.t('code.orderNumber'),
},
{
prop: "productName",
label: i18n.t('code.productName'),
},
{
prop: "companyName",
label: i18n.t('code.companyName'),
},
{
prop: "productCode",
label: i18n.t('code.productCode'),
},
{
prop: "supplierName",
label: i18n.t('code.supplierName'),
},
{
prop: "batchQuantity",
label: i18n.t('code.batchQuantity'),
},
{
prop: "inspectionQuantity",
label: i18n.t('code.inspectionQuantity'),
},
{
prop: "checkoutTime",
label: i18n.t('code.checkoutTime'),
},
{
prop: "inspectionTime",
label: i18n.t('code.inspectionTime'),
},
{
prop: "inspectionType",
label: i18n.t('code.inspectionType'),
},
{
prop: "username",
label: i18n.t('code.username'),
},
{
prop: "source",
label: i18n.t('code.source'),
}
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('t.edit'),
},
{
type: "delete",
btnName: i18n.t('t.delete'),
},
];
export default {
mixins: [basicPage, basicSearch],
data() {
return {
urlOptions: {
getDataListURL: "code/productInspection/page/term",
deleteURL: "/code/productInspection",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page:1
},
productData: {},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible:false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
productInspectionSearch,
productInspectionAdd
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
handleCurrentChange(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);
this.listQuery.batchNo = dataForm.batchNo ? dataForm.batchNo : null
this.listQuery.customSamplingId = dataForm.customSamplingId ? dataForm.customSamplingId : null
this.listQuery.endTime = dataForm.timeSlot ? dataForm.timeSlot[1] : null
this.listQuery.startTime = dataForm.timeSlot ? dataForm.timeSlot[0] : null
this.listQuery.factoryId = dataForm.factoryId ? dataForm.factoryId : null
this.listQuery.inspectionStatus = dataForm.inspectionStatus ? dataForm.inspectionStatus : null
this.listQuery.inspectionType = dataForm.inspectionType ? dataForm.inspectionType : null
this.listQuery.productId = dataForm.productId ? dataForm.productId : null
this.listQuery.recheck = dataForm.recheck ? dataForm.recheck : null
this.listQuery.supplierId = dataForm.supplierId ? dataForm.supplierId : null
this.listQuery.task = dataForm.task ? dataForm.task : null
this.listQuery.userId = dataForm.userId ? dataForm.userId : null
this.listQuery.page = 1
this.getDataList(this.listQuery)
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
// addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(productData);
// });
// },
getDataList() {
this.dataListLoading = true;
this.$http
.post(this.urlOptions.getDataListURL, this.listQuery,
)
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.page = 1;
this.getDataList();
break;
case "correlation":
this.productOrEditTitle = "产品";
this.productOrUpdateVisible = true;
// this.searchOrUpdateHandle(this.productData);
// this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.productOrUpdate.init(this.productData);
});
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,337 @@
<!--
* @Author: zhp
* @Date: 2023-06-12 13:22:50
* @LastEditTime: 2023-07-17 10:29:25
* @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="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">
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<productRegistration-add ref="addOrUpdate" @successSubmit="successSubmit">
</productRegistration-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<productRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</productRegistration-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 productRegistrationSearch from "./components/productRegistrationSearch.vue"
import productRegistrationAdd from "./components/productRegistration-add.vue"
import i18n from "@/i18n"
import incoming from "@/filters/incoming"
// import i18n from "@/i18n";
const tableProps = [
{
prop: "customSamplingId",
label: i18n.t('code.customSampling'),
},
{
prop: "factoryName",
label: i18n.t('code.factoryName'),
},
{
prop: "batchNo",
label: i18n.t('code.batchNo'),
},
{
prop: "orderNumber",
label: i18n.t('code.orderNumber'),
},
{
prop: "upload",
label: i18n.t('code.upload'),
filter: incoming('upload'),
},
{
prop: "judgmentResult",
label: i18n.t('code.judgmentResult'),
filter: incoming('judgmentResult'),
},
{
prop: "productCode",
label: i18n.t('code.productCode'),
},
{
prop: "supplierName",
label: i18n.t('code.supplierName'),
},
{
prop: "batchQuantity",
label: i18n.t('code.batchQuantity'),
},
{
prop: "defectiveQuantity",
label: i18n.t('code.defectiveQuantity'),
},
{
prop: "defectsNumber",
label: i18n.t('code.defectsNumber'),
},
{
prop: "inspectionQuantity",
label: i18n.t('code.inspectionQuantity'),
},
{
prop: "checkoutTime",
label: i18n.t('code.checkoutTime'),
},
{
prop: "inspectionTime",
label: i18n.t('code.inspectionTime'),
},
{
prop: "inspectionType",
label: i18n.t('code.inspectionType'),
},
{
prop: "submit",
label: i18n.t('code.submit'),
},
{
prop: "username",
label: i18n.t('code.username'),
},
{
prop: "processingMethod",
label: i18n.t('code.processingMethod'),
},
{
prop: "processingResults",
label: i18n.t('code.processingResults'),
},
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('t.edit'),
},
{
type: "delete",
btnName: i18n.t('t.delete'),
},
];
export default {
mixins: [basicPage, basicSearch],
data() {
return {
urlOptions: {
getDataListURL: "/code/productRegistration/page/term",
deleteURL: "/code/productRegistration",
exportURL: "/code/productRegistration/export",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page:1
},
productData: {},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible:false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
productRegistrationSearch,
productRegistrationAdd
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
handleCurrentChange(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);
this.listQuery.processingResults = dataForm.processingResults ? dataForm.processingResults : null
this.listQuery.batchNo = dataForm.batchNo ? dataForm.batchNo : null
this.listQuery.customSamplingId = dataForm.customSamplingId ? dataForm.customSamplingId : null
this.listQuery.factoryId = dataForm.factoryId ? dataForm.factoryId : null
this.listQuery.inspectionType = dataForm.inspectionType ? dataForm.inspectionType : null
this.listQuery.judgmentResult = dataForm.judgmentResult ? dataForm.judgmentResult : null
this.listQuery.orderNumber = dataForm.orderNumber ? dataForm.orderNumber : null
this.listQuery.productId = dataForm.productId ? dataForm.productId : null
this.listQuery.recheck = dataForm.recheck ? dataForm.recheck : null
this.listQuery.supplierId = dataForm.supplierId ? dataForm.supplierId : null
this.listQuery.upload = dataForm.upload ? dataForm.upload : null
this.listQuery.userId = dataForm.userId ? dataForm.userId : null
this.listQuery.page = 1
this.getDataList(this.listQuery)
this.searchOrUpdateVisible = false
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
// addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(productData);
// });
// },
getDataList() {
this.dataListLoading = true;
this.$http
.post(this.urlOptions.getDataListURL, this.listQuery,
)
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.page = 1;
this.getDataList();
break;
case "correlation":
this.productOrEditTitle = "产品";
this.productOrUpdateVisible = true;
// this.searchOrUpdateHandle(this.productData);
// this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.productOrUpdate.init(this.productData);
});
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,337 @@
<!--
* @Author: zhp
* @Date: 2023-06-12 13:22:50
* @LastEditTime: 2023-07-17 10:29:35
* @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="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">
<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 width="70%" :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
@confirm="handleConfirm" :before-close="handleCancel">
<shipmentRegistration-add ref="addOrUpdate" @successSubmit="successSubmit">
</shipmentRegistration-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
<base-dialog width="70%" :dialogTitle="searchOrEditTitle" :dialogVisible="searchOrUpdateVisible"
@cancel="handleSearchCancel" @confirm="handleSearchConfirm" :before-close="handleSearchCancel">
<shipmentRegistration-search ref="searchOrUpdate" @refreshDataList="conditionSearchSubmit">
</shipmentRegistration-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 shipmentRegistrationSearch from "./components/shipmentRegistrationSearch.vue";
import shipmentRegistrationAdd from "./components/shipmentRegistration-add.vue";
import i18n from "@/i18n";
import incoming from "@/filters/incoming";
// import i18n from "@/i18n";
const tableProps = [
{
prop: "customSamplingId",
label: i18n.t('code.customSampling'),
},
{
prop: "factoryName",
label: i18n.t('code.factoryName'),
},
{
prop: "batchNo",
label: i18n.t('code.batchNo'),
},
{
prop: "orderNumber",
label: i18n.t('code.orderNumber'),
},
{
prop: "upload",
label: i18n.t('code.upload'),
filter: incoming('upload'),
},
{
prop: "judgmentResult",
label: i18n.t('code.judgmentResult'),
filter: incoming('judgmentResult'),
},
{
prop: "productCode",
label: i18n.t('code.productCode'),
},
{
prop: "supplierName",
label: i18n.t('code.supplierName'),
},
{
prop: "batchQuantity",
label: i18n.t('code.batchQuantity'),
},
{
prop: "defectiveQuantity",
label: i18n.t('code.defectiveQuantity'),
},
{
prop: "defectsNumber",
label: i18n.t('code.defectsNumber'),
},
{
prop: "inspectionQuantity",
label: i18n.t('code.inspectionQuantity'),
},
{
prop: "checkoutTime",
label: i18n.t('code.checkoutTime'),
},
{
prop: "inspectionTime",
label: i18n.t('code.inspectionTime'),
},
{
prop: "inspectionType",
label: i18n.t('code.inspectionType'),
},
{
prop: "submit",
label: i18n.t('code.submit'),
},
{
prop: "username",
label: i18n.t('code.username'),
},
{
prop: "processingMethod",
label: i18n.t('code.processingMethod'),
},
{
prop: "processingResults",
label: i18n.t('code.processingResults'),
},
];
const tableBtn = [
{
type: "edit",
btnName: i18n.t('t.edit'),
},
{
type: "delete",
btnName: i18n.t('t.delete'),
},
];
export default {
mixins: [basicPage, basicSearch],
data() {
return {
urlOptions: {
getDataListURL: "/code/shipmentRegistration/page/term",
deleteURL: "/code/shipmentRegistration",
exportURL: "/code/shipmentRegistration/export",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page:1
},
productData: {},
searchOrEditTitle: "",
searchOrUpdateVisible: false,
productOrEditTitle: "",
addOrEditTitle: '',
addOrUpdateVisible:false,
productOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
// plain: true,
}
],
};
},
components: {
shipmentRegistrationSearch,
shipmentRegistrationAdd
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
handleCurrentChange(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);
this.listQuery.processingResults = dataForm.processingResults ? dataForm.processingResults : null
this.listQuery.batchNo = dataForm.batchNo ? dataForm.batchNo : null
this.listQuery.customSamplingId = dataForm.customSamplingId ? dataForm.customSamplingId : null
this.listQuery.factoryId = dataForm.factoryId ? dataForm.factoryId : null
this.listQuery.inspectionType = dataForm.inspectionType ? dataForm.inspectionType : null
this.listQuery.judgmentResult = dataForm.judgmentResult ? dataForm.judgmentResult : null
this.listQuery.orderNumber = dataForm.orderNumber ? dataForm.orderNumber : null
this.listQuery.productId = dataForm.productId ? dataForm.productId : null
this.listQuery.recheck = dataForm.recheck ? dataForm.recheck : null
this.listQuery.supplierId = dataForm.supplierId ? dataForm.supplierId : null
this.listQuery.upload = dataForm.upload ? dataForm.upload : null
this.listQuery.userId = dataForm.userId ? dataForm.userId : null
this.listQuery.page = 1
this.getDataList(this.listQuery)
this.searchOrUpdateVisible = false
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.customerTypeName}]进行删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => { });
} else if (val.type === 'edit') {
this.addOrUpdateVisible = true
this.addOrEditTitle = this.$t('edit')
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
// addOrUpdateHandle(productData) {
// this.addOrUpdateVisible = true;
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(productData);
// });
// },
getDataList() {
this.dataListLoading = true;
this.$http
.post(this.urlOptions.getDataListURL, this.listQuery,
)
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.tableData = [];
this.listQuery.total = 0;
return this.$message.error(res.msg);
}
this.tableData = res.data.list;
this.listQuery.total = res.data.total;
})
.catch(() => {
this.dataListLoading = false;
})
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.key = null;
this.listQuery.page = 1;
this.getDataList();
break;
case "correlation":
this.productOrEditTitle = "产品";
this.productOrUpdateVisible = true;
// this.searchOrUpdateHandle(this.productData);
// this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.productOrUpdate.init(this.productData);
});
break;
case "add":
this.addOrEditTitle = '新增'
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
case "cancel":
this.$refs.palletTable1.setCurrent("palletTable", -1);
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,293 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-14 10:16:34
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="150"
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"
width="70%"
>
<startEightDiscipline-add ref="addOrUpdate" @refreshDataList="successSubmit">
</startEightDiscipline-add>
<!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import startEightDisciplineAdd from "./components/startEightDiscipline-add";
// import AddOrUpdate from './params-add-or-update'
// import customSamplingSearch from "./components/customSamplingSearch"
// import available from "./components/available.vue"
import basicSearch from "@/mixins/basic-search";
import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter";
import i18n from "@/i18n";
const tableProps = [
{
prop: "title",
label: i18n.t("code.title"),
align: "center",
},
{
prop: "code",
label: i18n.t("code.code"),
align: "center",
},
{
prop: "eightDisciplineType",
label: i18n.t("code.eightDisciplineType"),
align: "center",
filter: codeFilter("eightDisciplineType"),
},
{
prop: "occurrenceDate",
label: i18n.t("code.occurrenceDate"),
align: "center",
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: "description",
label: i18n.t("code.description"),
align: "center",
},
{
prop: "examineStatus",
label: i18n.t("code.examineStatus"),
align: "center",
filter: codeFilter("examineStatus"),
},
];
const tableBtn = [
{
type: "edit",
btnName: "编辑",
},
{
type: "delete",
btnName: "删除",
},
{
type: "CAR",
btnName: "启动CAR",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
// customSamplingSearch,
startEightDisciplineAdd,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
searchOrEditTitle: "",
searchOrUpdateVisible: false,
formConfig: [
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
{
type: "button",
btnName: "新增",
name: "add",
color: "primary",
},
],
listQuery: {
limit: 10,
page: 1,
total: 1,
eightDisciplineStatus: 0,
examineStatus: 0
},
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
// console.log(key);
// console.log(key);
// this.listQuery.key = key;
this.listQuery.customSamplingCode = dataForm.customSamplingCode;
// this.listQuery.name = dataForm.name
// this.listQuery.failureTypeStatus = dataForm.failureTypeStatus
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "CAR") {
this.$confirm(`确定对此条数据进行启动CAR操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let putData = {
eightDisciplineStatus: 1,
examineStatus: 1,
id: val.data.id,
};
this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
} else {
this.$message.error(data.msg);
}
});
})
.catch(() => {});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : "";
this.listQuery.failureTypeStatus = null;
this.listQuery.eightDisciplineStatus = 0;
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t("add");
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,267 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-20 10:50:58
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120"
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="teamSetTitle"
:dialogVisible="teamSetVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
:destroy-on-close="true"
>
<add-or-update
ref="teamSet"
:roleList="roleList"
@refreshDataList="successSubmit"
></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
// import transferRecordsAdd from "./components/transferRecords-add"
import AddOrUpdate from "./components/startEightDisciplineCreateTeam-add";
// import transferRecordsSearch from "./components/transferRecordsSearch"
// import available from "./components/available.vue"
import basicSearch from "@/mixins/basic-search";
import { timeFormatter } from "@/filters/code-filter";
import codeFilter from "@/filters/code-filter";
import i18n from "@/i18n";
const tableProps = [
{
prop: "title",
label: i18n.t("code.title"),
align: "center",
},
{
prop: "eightDisciplineType",
label: i18n.t("oss.type"),
align: "center",
filter: codeFilter("eightDisciplineType"),
},
{
prop: "occurrenceDate",
label: i18n.t("gage.createDate"),
align: "center",
filter: timeFormatter,
},
{
prop: "productName",
label: i18n.t("code.productName"),
align: "center",
},
{
prop: "customName",
label: i18n.t("gage.connection"),
align: "center",
},
{
prop: "description",
label: i18n.t("basic.remark"),
align: "center",
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: "center",
},
];
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "team",
btnName: "团队",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
teamSetTitle: "",
teamSetVisible: false,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 2,
examineStatus: 0,
},
roleList: [],
searchOrEditTitle: "",
searchOrUpdateVisible: false,
formConfig: [
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "input",
label: i18n.t("code.title"),
placeholder: i18n.t("code.title"),
param: "title",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
],
};
},
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "team") {
this.$http
.get("/sys/user/list")
.then(({ data: res }) => {
if (res.code === 0) {
this.roleList = res.data;
this.teamSetVisible = true;
this.teamSetTitle = "团队";
this.$nextTick(() => {
this.$refs.teamSet.init(val.data.id);
});
}
})
.catch(() => {});
}
},
handleCancel() {
this.$refs.teamSet.formClear();
this.teamSetVisible = false;
this.teamSetTitle = "";
},
handleConfirm() {
this.$refs.teamSet.dataFormSubmit();
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : "";
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t("add");
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,228 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:45
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import AddOrUpdate from './params-add-or-update'
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
// import available from "./components/available.vue"
import AddOrUpdate from './components/startEightDisciplineDescriptionCorrectiveAction-add.vue'
import basicSearch from "@/mixins/basic-search"
import codeFilter from '@/filters/code-filter'
import { timeFormatter } from "@/filters/code-filter"
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "corrective",
btnName: "纠正",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 5,
examineStatus: 0
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "corrective") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "纠正措施描述"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,235 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:39:03
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="110" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import InspectionPositionAdd from "./components/InspectionPosition-add"
import AddOrUpdate from './components/startEightDisciplinePreliminaryAnalysis-add.vue'
// import failureTypeSearch from "./components/failureTypeSearch"
// import available from "./components/available.vue"
import basicSearch from "@/mixins/basic-search"
import i18n from "@/i18n"
import codeFilter from '@/filters/code-filter'
import { timeFormatter } from "@/filters/code-filter"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "analysis",
btnName: "分析",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
searchOrEditTitle: '',
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus:1,
examineStatus: 0
},
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "analysis") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "初步分析"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,228 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:34
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import AddOrUpdate from './params-add-or-update'
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
// import available from "./components/available.vue"
import AddOrUpdate from './components/startEightDisciplinePreventRecurrence-add.vue'
import basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "prevent",
btnName: "预防",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 7,
examineStatus: 0
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "prevent") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "预防再发生"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,155 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
<base-table
:table-props="tableProps"
:page="listQuery.page"
:limit="listQuery.limit"
:table-data="tableData"
>
</base-table>
<pagination
:limit.sync="listQuery.limit"
:page.sync="listQuery.page"
:total="listQuery.total"
@pagination="getDataList"
/>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter"
import i18n from "@/i18n";
const tableProps = [
{
prop: "title",
label: i18n.t("code.title"),
align: "center",
},
{
prop: "code",
label: i18n.t("code.code"),
align: "center",
},
{
prop: "eightDisciplineType",
label: i18n.t("code.eightDisciplineType"),
align: "center",
filter: codeFilter("eightDisciplineType"),
},
{
prop: "occurrenceDate",
label: i18n.t("code.occurrenceDate"),
align: "center",
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: "description",
label: i18n.t("code.description"),
align: "center",
},
{
prop: "examineStatus",
label: i18n.t("code.examineStatus"),
align: "center",
filter: codeFilter("examineStatus"),
},
];
const eightDisciplineStatusArr = [
{
name: "D0",
id: 0,
},
{
name: "D1",
id: 1,
},
{
name: "D2",
id: 2,
},
{
name: "D3",
id: 3,
},
{
name: "D4",
id: 4,
},
{
name: "D5",
id: 5,
},
{
name: "D6",
id: 6,
},
{
name: "D7",
id: 7,
},
{
name: "D8",
id: 8,
},
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
eightDisciplineStatusArr,
tableData: [],
formConfig: [
{
type: "select",
label: "状态",
selectOptions: eightDisciplineStatusArr,
param: "status",
defaultSelect: "",
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
],
};
},
methods: {
//search-bar点击
buttonClick(val) {
switch (val.btnName) {
case "search":
this.listQuery.eightDisciplineStatus = val.status;
this.listQuery.page = 1;
this.getDataList();
break;
default:
console.log(val);
}
},
},
};
</script>

View File

@@ -0,0 +1,228 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:50
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import AddOrUpdate from './params-add-or-update'
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
// import available from "./components/available.vue"
import AddOrUpdate from './components/startEightDisciplineRootCauseAnalysis-add.vue'
import basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "analysis",
btnName: "分析",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 4,
examineStatus: 0
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "analysis") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "根本原因分析"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,229 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:29
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import AddOrUpdate from './params-add-or-update'
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
// import available from "./components/available.vue"
import AddOrUpdate from './components/startEightDisciplineSummaryExperience-add.vue'
import basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "summary",
btnName: "总结",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 8,
examineStatus: 0
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "summary") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "总结与经验分享"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,261 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-20 10:49:29
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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="teamSetTitle"
:dialogVisible="teamSetVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
:destroy-on-close="true"
width=70%
>
<add-or-update
ref="teamSet"
:roleList="roleList"
@refreshDataList="successSubmit"
></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
import AddOrUpdate from "./components/startEightDisciplineTemporaryTreatmentMeasures-add";
// 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 basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "measure",
btnName: "措施",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
roleList: [],
teamSetTitle: "",
teamSetVisible: false,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 3,
examineStatus: 0
},
tableProps,
tableBtn,
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
// {
// type: "",
// label: i18n.t("params.paramCode"),
// placeholder: i18n.t("params.paramCode"),
// param: "paramCode",
// },
// {
// type: "separate",
// },
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "measure") {
this.$http
.get("/sys/user/list")
.then(({ data: res }) => {
if (res.code === 0) {
this.roleList = res.data;
this.teamSetVisible = true;
this.teamSetTitle = "措施";
this.$nextTick(() => {
this.$refs.teamSet.init(val.data.id);
});
}
})
.catch(() => {});
}
},
handleCancel() {
this.$refs.teamSet.formClear();
this.teamSetVisible = false;
this.teamSetTitle = "";
},
handleConfirm() {
this.$refs.teamSet.dataFormSubmit();
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,228 @@
<!--
* @Author: zhp
* @Date: 2023-01-11 09:24:58
* @LastEditTime: 2023-07-17 10:38:40
* @LastEditors: zwq
* @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="1" class="item">
<el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
</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="120" 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"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import basicPage from "@/mixins/basic-page"
// import transferSchemeAdd from "./components/transferScheme-add"
// import AddOrUpdate from './params-add-or-update'
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
// import available from "./components/available.vue"
import AddOrUpdate from './components/startEightDisciplineValidation-add.vue'
import basicSearch from "@/mixins/basic-search"
import { timeFormatter } from "@/filters/code-filter"
import codeFilter from '@/filters/code-filter'
import i18n from "@/i18n"
const tableProps = [
{
prop: 'title',
label: i18n.t("code.title"),
align: 'center'
},
{
prop: 'code',
label: i18n.t("code.code"),
align: 'center'
},
{
prop: 'eightDisciplineType',
label: i18n.t("code.eightDisciplineType"),
align: 'center',
filter: codeFilter('eightDisciplineType'),
},
{
prop: 'occurrenceDate',
label: i18n.t("code.occurrenceDate"),
align: 'center',
filter: timeFormatter,
},
// {
// prop: 'productName',
// label: i18n.t("code.productName"),
// align: 'center'
// },
// {
// prop: 'customName',
// label: i18n.t("code.customName"),
// align: 'center'
// },
{
prop: 'description',
label: i18n.t("code.description"),
align: 'center'
},
{
prop: 'userName',
label: i18n.t("code.userId"),
align: 'center'
}
]
const tableBtn = [
// {
// type: "edit",
// btnName: "编辑",
// },
// {
// type: "delete",
// btnName: "删除",
// },
{
type: "validation",
btnName: "验证",
},
];
export default {
mixins: [basicPage, basicSearch],
components: {
AddOrUpdate,
},
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
eightDisciplineStatus: 6,
examineStatus: 0
},
searchOrEditTitle: '',
searchOrUpdateVisible: false,
formConfig: [
{
type: 'input',
label: i18n.t('code.title'),
placeholder: i18n.t('code.title'),
param: 'title'
},
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
}
],
};
},
// components: {
// AddOrUpdate,
// },
methods: {
//search-bar点击
handleProductCancel() {
this.productOrUpdateVisible = false;
this.productOrEditTitle = "";
},
// handleSearchCancel() {
// this.searchOrEditTitle = "";
// this.searchOrUpdateVisible = false;
// },
conditionSearch() {
this.searchOrEditTitle = "搜索";
this.searchOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.searchOrUpdate.init();
});
},
conditionSearchSubmit(dataForm) {
this.listQuery.page = 1;
this.getDataList();
this.searchOrUpdateVisible = false;
// console.log(11111);
// this.conditionSearchSubmit();
},
handleClick(val) {
console.log(val);
if (val.type === "delete") {
this.$confirm(`确定对[名称=${val.data.failureTypeName}]进行删除操作?`, "提示", {
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);
});
} else if (val.type === "validation") {
this.addOrUpdateVisible = true
this.addOrEditTitle = "有效性验证"
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id);
});
}
},
buttonClick(val) {
switch (val.btnName) {
case "search":
// this.listQuery.paramCode = val.paramCode;
this.listQuery.page = 1;
this.listQuery.title = val.title ? val.title : ''
this.listQuery.failureTypeStatus = null
this.getDataList();
break;
case "add":
this.addOrEditTitle = this.$t('add')
this.addOrUpdateVisible = true;
this.addOrUpdateHandle()
break;
default:
console.log(val)
}
},
}
};
</script>

View File

@@ -0,0 +1,147 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<!-- <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> -->
<base-table
:table-props="tableProps"
:page="listQuery.page"
:limit="listQuery.limit"
:table-data="tableData"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="60"
:label="$t('handle')"
: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"
:destroy-on-close="true"
>
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
</base-dialog>
</div>
</el-card>
</template>
<script>
import AddOrUpdate from "./components/startEightGrade-add";
import basicPage from "@/mixins/basic-page";
import codeFilter from "@/filters/code-filter";
import { timeFormatter } from "@/filters/code-filter";
import i18n from "@/i18n";
const tableProps = [
{
prop: "title",
label: i18n.t("code.title"),
align: "center",
},
{
prop: "code",
label: i18n.t("code.code"),
align: "center",
},
{
prop: "eightDisciplineType",
label: i18n.t("code.eightDisciplineType"),
align: "center",
filter: codeFilter("eightDisciplineType"),
},
{
prop: "occurrenceDate",
label: i18n.t("code.occurrenceDate"),
align: "center",
filter: timeFormatter,
},
{
prop: "description",
label: i18n.t("code.description"),
align: "center",
},
{
prop: "gradeFinish",
label: "打分状态",
align: "center",
filter: codeFilter("gradeFinish"),
},
];
const tableBtn = [
{
type: "grade",
btnName: "打分",
},
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: "/code/startEightDiscipline/page",
deleteURL: "/code/startEightDiscipline",
},
tableProps,
tableBtn,
listQuery: {
limit: 10,
page: 1,
total: 1,
eightDisciplineStatus: 9,
examineStatus: 0,
},
tableData: [],
formConfig: [
{
type: "button",
btnName: "搜索",
name: "search",
color: "primary",
},
],
};
},
components: {
AddOrUpdate,
},
methods: {
//search-bar点击
buttonClick(val) {
switch (val.btnName) {
case "search":
this.listQuery.page = 1;
this.getDataList();
break;
default:
console.log(val);
}
},
otherMethods(val) {
if(val.data.gradeFinish){
this.$message({
message: '该数据已完成打分操作,请勿重复打分!',
type: 'warning'
});
}else{
this.addOrEditTitle = "打分";
this.addOrUpdateVisible = true;
this.addOrUpdateHandle(val.data.id);
}
},
},
};
</script>

View File

@@ -0,0 +1,41 @@
<!--
* @Author: zhp
* @Date: 2023-01-31 09:49:36
* @LastEditTime: 2023-07-11 14:31:18
* @LastEditors: zhp
* @Description:
-->
<template>
<span>
<el-tag v-if="injectData.supplierTypeStatus === 1" type="success">可用</el-tag>
<el-tag v-else type="warning">不可用</el-tag>
</span>
</template>
<script>
// import { addDynamicRoute } from '@/router'
export default {
props: {
injectData: {
type: Object,
default: () => ({})
}
},
methods: {
// 子级
// emitClick () {
// // 路由参数
// const routeParams = {
// routeName: `${this.$route.name}__${this.injectData.id}`,
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`,
// path: 'sys/dict-data',
// params: {
// dictTypeId: this.injectData.id
// }
// }
// // 动态路由
// addDynamicRoute(routeParams, this.$router)
// }
}
}
</script>

View File

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

View File

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

View File

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

View File

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

View File

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

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