@@ -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", | |||
@@ -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-14 15:53:17 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -39,7 +39,8 @@ | |||
<use xlink:href="#icon-home"></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> | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: zhp | |||
* @Date: 2023-02-14 15:02:26 | |||
* @LastEditTime: 2023-07-14 10:20:02 | |||
* @LastEditTime: 2023-07-17 10:00:53 | |||
* @LastEditors: zwq | |||
* @Description: | |||
--> | |||
@@ -9,6 +9,7 @@ | |||
<el-form | |||
:model="dataForm" | |||
ref="dataForm" | |||
:rules="dataRule" | |||
@keyup.enter.native="dataFormSubmitHandle()" | |||
label-width="100px" | |||
> | |||
@@ -317,27 +318,48 @@ export default { | |||
computed: { | |||
dataRule() { | |||
return { | |||
// dictLabel: [ | |||
// { | |||
// required: true, | |||
// message: this.$t("validate.required"), | |||
// trigger: "blur", | |||
// }, | |||
// ], | |||
// dictValue: [ | |||
// { | |||
// required: true, | |||
// message: this.$t("validate.required"), | |||
// trigger: "blur", | |||
// }, | |||
// ], | |||
// sort: [ | |||
// { | |||
// required: true, | |||
// message: this.$t("validate.required"), | |||
// trigger: "blur", | |||
// }, | |||
// ], | |||
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", | |||
}, | |||
], | |||
}; | |||
}, | |||
}, | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: zhp | |||
* @Date: 2023-01-11 09:24:58 | |||
* @LastEditTime: 2023-07-14 14:06:53 | |||
* @LastEditTime: 2023-07-17 09:08:38 | |||
* @LastEditors: zwq | |||
* @Description: | |||
--> | |||
@@ -9,9 +9,6 @@ | |||
<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="searchsClick">条件搜索</el-button> | |||
</el-badge> | |||
</SearchBar> | |||
<base-table | |||
:table-props="tableProps" | |||
@@ -35,7 +32,7 @@ | |||
@pagination="getDataList" | |||
/> | |||
<!-- 弹窗, 条件搜索--> | |||
<base-dialog | |||
<!-- <base-dialog | |||
:dialogTitle="searchsTitle" | |||
:dialogVisible="searchsVisible" | |||
@cancel="searchsCancel" | |||
@@ -43,7 +40,7 @@ | |||
:before-close="searchsCancel" | |||
> | |||
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | |||
</base-dialog> | |||
</base-dialog> --> | |||
<!-- 弹窗, 新增 / 修改 --> | |||
<base-dialog | |||
:dialogTitle="addOrEditTitle" | |||
@@ -64,7 +61,7 @@ | |||
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 Searchs from "./components/eightDiscipline-searchs"; | |||
import codeFilter from "@/filters/code-filter"; | |||
import i18n from "@/i18n"; | |||
const tableProps = [ | |||
@@ -105,7 +102,7 @@ export default { | |||
mixins: [basicPage], | |||
components: { | |||
eightDisciplineAdd, | |||
Searchs | |||
// Searchs, | |||
}, | |||
data() { | |||
return { | |||
@@ -117,10 +114,26 @@ export default { | |||
tableBtn, | |||
formConfig: [ | |||
{ | |||
type: "button", | |||
btnName: "新增", | |||
name: "add", | |||
color: "primary", | |||
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", | |||
@@ -128,6 +141,12 @@ export default { | |||
name: "search", | |||
color: "primary", | |||
}, | |||
{ | |||
type: "button", | |||
btnName: "新增", | |||
name: "add", | |||
color: "primary", | |||
}, | |||
], | |||
}; | |||
}, | |||
@@ -142,9 +161,9 @@ export default { | |||
case "search": | |||
// this.listQuery.paramCode = val.paramCode; | |||
this.listQuery.page = 1; | |||
this.listQuery.code = null; | |||
this.listQuery.name = null; | |||
this.listQuery.eightDisciplineStatus = null; | |||
this.listQuery.code = val.code; | |||
this.listQuery.name = val.name; | |||
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | |||
this.getDataList(); | |||
break; | |||
case "add": | |||
@@ -1,11 +1,7 @@ | |||
<template> | |||
<el-card shadow="never" class="aui-card--fill"> | |||
<div class="mod-sys__user"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | |||
<el-badge :value="5" class="item"> | |||
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | |||
</el-badge> | |||
</search-bar> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | |||
<base-table | |||
:table-props="tableProps" | |||
:page="listQuery.page" | |||
@@ -28,7 +24,7 @@ | |||
@pagination="getDataList" | |||
/> | |||
<!-- 弹窗, 条件搜索--> | |||
<base-dialog | |||
<!-- <base-dialog | |||
:dialogTitle="searchsTitle" | |||
:dialogVisible="searchsVisible" | |||
@cancel="searchsCancel" | |||
@@ -36,7 +32,7 @@ | |||
:before-close="searchsCancel" | |||
> | |||
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | |||
</base-dialog> | |||
</base-dialog> --> | |||
<!-- 弹窗, 新增 / 修改 --> | |||
<base-dialog | |||
:dialogTitle="addOrEditTitle" | |||
@@ -54,7 +50,7 @@ | |||
<script> | |||
import AddOrUpdate from "./components/eightDisciplineList-detail"; | |||
import Searchs from "./components/searchs1"; | |||
// import Searchs from "./components/searchs1"; | |||
import basicPage from "@/mixins/basic-page"; | |||
import codeFilter from "@/filters/code-filter"; | |||
import { timeFormatter } from "@/filters/code-filter"; | |||
@@ -104,7 +100,37 @@ export default { | |||
tableProps, | |||
tableBtn, | |||
tableData: [], | |||
optionArrUrl: ["/basic/qmsProduct/page","/code/problemType/page"], | |||
formConfig: [ | |||
{ | |||
type: "input", | |||
label: i18n.t("code.title"), | |||
placeholder: i18n.t("code.title"), | |||
param: "title", | |||
}, | |||
{ | |||
type: "select", | |||
label: "产品", | |||
selectOptions: [], | |||
param: "productId", | |||
defaultSelect: "", | |||
labelField: "productName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "缺陷", | |||
selectOptions: [], | |||
param: "defectId", | |||
defaultSelect: "", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "input", | |||
label: "关键字", | |||
placeholder: "关键字", | |||
param: "description", | |||
}, | |||
{ | |||
type: "button", | |||
btnName: "搜索", | |||
@@ -116,9 +142,30 @@ export default { | |||
}, | |||
components: { | |||
AddOrUpdate, | |||
Searchs, | |||
// Searchs, | |||
}, | |||
created() { | |||
this.getArr(); | |||
}, | |||
methods: { | |||
getArr() { | |||
this.optionArrUrl.forEach((item, index) => { | |||
this.$http | |||
.get(item, { | |||
params: { | |||
page: 1, | |||
limit: 500, | |||
}, | |||
}) | |||
.then(({ data: res }) => { | |||
if (res.code !== 0) { | |||
return this.$message.error(res.msg); | |||
} | |||
this.formConfig[index + 1].selectOptions = res.data.list; | |||
}) | |||
.catch(() => {}); | |||
}); | |||
}, | |||
// 获取数据列表 | |||
getDataList() { | |||
this.dataListLoading = true; | |||
@@ -146,15 +193,14 @@ export default { | |||
buttonClick(val) { | |||
switch (val.btnName) { | |||
case "search": | |||
this.listQuery = {}; | |||
this.listQuery.page = 1; | |||
this.listQuery.limit = 10; | |||
this.listQuery.total = 1; | |||
this.listQuery.title = val.title; | |||
this.listQuery.description = val.description; | |||
this.listQuery.defectId = val.defectId; | |||
this.listQuery.productId = val.productId; | |||
this.getDataList(); | |||
break; | |||
case "export": | |||
this.exportHandle("工厂管理"); | |||
break; | |||
default: | |||
console.log(val); | |||
} | |||
@@ -83,7 +83,7 @@ export default { | |||
series: [], | |||
}; | |||
this.dataList.forEach((item) => { | |||
const i = option.series.findIndex((c) => c.id === item.productTypeId); | |||
const i = option.series.findIndex((c) => c.id === (this.eType?item.problemTypeId:item.productTypeId)); | |||
if (i >= 0) { | |||
option.series[i].data.push(this.eType?item.problemTypeNumber:item.productTypeNumber); | |||
} else { | |||
@@ -104,7 +104,6 @@ export default { | |||
option.series.push(obj); | |||
} | |||
}) | |||
console.log(option.series) | |||
this.lineChart = echarts.init(document.getElementById("lineChart")) | |||
this.lineChart.setOption(option); | |||
window.addEventListener("resize", () => { | |||
@@ -117,10 +116,10 @@ export default { | |||
<style lang="scss"> | |||
.mod-demo-echarts { | |||
> .el-row { | |||
.el-col { | |||
} | |||
} | |||
// > .el-row { | |||
// .el-col { | |||
// } | |||
// } | |||
.chart-box { | |||
min-height: 400px; | |||
} | |||
@@ -0,0 +1,49 @@ | |||
<!-- | |||
* @Author: zhp | |||
* @Date: 2023-01-31 09:49:36 | |||
* @LastEditTime: 2023-07-17 10:16:41 | |||
* @LastEditors: zwq | |||
* @Description: | |||
--> | |||
<template> | |||
<span> | |||
<el-avatar | |||
v-if="injectData.eightDisciplineStatus > injectData.num" | |||
size="small" | |||
style="background: #409EFF;" | |||
icon="el-icon-check" | |||
></el-avatar> | |||
<el-avatar | |||
v-else size="small" | |||
icon="el-icon-close" | |||
></el-avatar> | |||
</span> | |||
</template> | |||
<script> | |||
// import { addDynamicRoute } from '@/router' | |||
export default { | |||
props: { | |||
injectData: { | |||
type: Object, | |||
default: () => ({}), | |||
}, | |||
}, | |||
methods: { | |||
// 子级 | |||
// emitClick () { | |||
// // 路由参数 | |||
// const routeParams = { | |||
// routeName: `${this.$route.name}__${this.injectData.id}`, | |||
// title: `${this.$route.meta.title} - ${this.injectData.dictType}`, | |||
// path: 'sys/dict-data', | |||
// params: { | |||
// dictTypeId: this.injectData.id | |||
// } | |||
// } | |||
// // 动态路由 | |||
// addDynamicRoute(routeParams, this.$router) | |||
// } | |||
}, | |||
}; | |||
</script> |
@@ -1,11 +1,11 @@ | |||
<template> | |||
<el-card shadow="never" class="aui-card--fill"> | |||
<div class="mod-sys__user"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | |||
<el-badge :value="5" class="item"> | |||
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | |||
</el-badge> | |||
</search-bar> | |||
<search-bar | |||
:formConfigs="formConfig" | |||
ref="searchBarForm" | |||
@headBtnClick="buttonClick" | |||
/> | |||
<base-table | |||
:table-props="tableProps" | |||
:page="listQuery.page" | |||
@@ -28,7 +28,7 @@ | |||
@pagination="getDataList" | |||
/> | |||
<!-- 弹窗, 条件搜索--> | |||
<base-dialog | |||
<!-- <base-dialog | |||
:dialogTitle="searchsTitle" | |||
:dialogVisible="searchsVisible" | |||
@cancel="searchsCancel" | |||
@@ -36,7 +36,7 @@ | |||
:before-close="searchsCancel" | |||
> | |||
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | |||
</base-dialog> | |||
</base-dialog> --> | |||
<!-- 弹窗, 新增 / 修改 --> | |||
<base-dialog | |||
:dialogTitle="addOrEditTitle" | |||
@@ -44,7 +44,7 @@ | |||
@cancel="handleCancel" | |||
@confirm="handleConfirm" | |||
:before-close="handleCancel" | |||
width=80% | |||
width="80%" | |||
> | |||
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | |||
</base-dialog> | |||
@@ -54,7 +54,7 @@ | |||
<script> | |||
import AddOrUpdate from "./components/eightDisciplineList-detail"; | |||
import Searchs from "./components/searchs"; | |||
// import Searchs from "./components/searchs"; | |||
import basicPage from "@/mixins/basic-page"; | |||
import codeFilter from "@/filters/code-filter"; | |||
import { timeFormatter } from "@/filters/code-filter"; | |||
@@ -112,6 +112,44 @@ const tableBtn = [ | |||
}, | |||
]; | |||
const eightDisciplineStatusArr = [ | |||
{ | |||
name: "D0", | |||
id: 0, | |||
}, | |||
{ | |||
name: "D1", | |||
id: 1, | |||
}, | |||
{ | |||
name: "D2", | |||
id: 2, | |||
}, | |||
{ | |||
name: "D3", | |||
id: 3, | |||
}, | |||
{ | |||
name: "D4", | |||
id: 4, | |||
}, | |||
{ | |||
name: "D5", | |||
id: 5, | |||
}, | |||
{ | |||
name: "D6", | |||
id: 6, | |||
}, | |||
{ | |||
name: "D7", | |||
id: 7, | |||
}, | |||
{ | |||
name: "D8", | |||
id: 8, | |||
}, | |||
]; | |||
export default { | |||
mixins: [basicPage], | |||
data() { | |||
@@ -122,8 +160,52 @@ export default { | |||
}, | |||
tableProps, | |||
tableBtn, | |||
eightDisciplineStatusArr, | |||
tableData: [], | |||
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | |||
formConfig: [ | |||
{ | |||
type: "input", | |||
label: i18n.t("code.title"), | |||
placeholder: i18n.t("code.title"), | |||
param: "title", | |||
}, | |||
{ | |||
type: "select", | |||
label: "客户", | |||
selectOptions: [], | |||
param: "customId", | |||
defaultSelect: "", | |||
labelField: "customerName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "产品", | |||
selectOptions: [], | |||
param: "productId", | |||
defaultSelect: "", | |||
labelField: "productName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "步骤", | |||
selectOptions: eightDisciplineStatusArr, | |||
param: "eightDisciplineStatus", | |||
defaultSelect: "", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "datePicker", | |||
label: "日期", | |||
dateType: "date", | |||
format: "yyyy-MM-dd", | |||
valueFormat: "yyyy-MM-ddTHH:mm:ss", | |||
placeholder: "日期", | |||
param: "occurrenceDate", | |||
width: 170, | |||
}, | |||
{ | |||
type: "button", | |||
btnName: "搜索", | |||
@@ -135,9 +217,30 @@ export default { | |||
}, | |||
components: { | |||
AddOrUpdate, | |||
Searchs, | |||
// Searchs, | |||
}, | |||
created() { | |||
this.getArr(); | |||
}, | |||
methods: { | |||
getArr() { | |||
this.optionArrUrl.forEach((item, index) => { | |||
this.$http | |||
.get(item, { | |||
params: { | |||
page: 1, | |||
limit: 500, | |||
}, | |||
}) | |||
.then(({ data: res }) => { | |||
if (res.code !== 0) { | |||
return this.$message.error(res.msg); | |||
} | |||
this.formConfig[index + 1].selectOptions = res.data.list; | |||
}) | |||
.catch(() => {}); | |||
}); | |||
}, | |||
// 获取数据列表 | |||
getDataList() { | |||
this.dataListLoading = true; | |||
@@ -165,15 +268,15 @@ export default { | |||
buttonClick(val) { | |||
switch (val.btnName) { | |||
case "search": | |||
this.listQuery = {}; | |||
this.listQuery.page = 1; | |||
this.listQuery.limit = 10; | |||
this.listQuery.total = 1; | |||
this.listQuery.title = val.title; | |||
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | |||
this.listQuery.customId = val.customId; | |||
this.listQuery.productId = val.productId; | |||
this.listQuery.occurrenceDate = val.occurrenceDate; | |||
this.getDataList(); | |||
break; | |||
case "export": | |||
this.exportHandle("工厂管理"); | |||
break; | |||
default: | |||
console.log(val); | |||
} | |||
@@ -1,11 +1,7 @@ | |||
<template> | |||
<el-card shadow="never" class="aui-card--fill"> | |||
<div class="mod-sys__user"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | |||
<el-badge :value="5" class="item"> | |||
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | |||
</el-badge> | |||
</search-bar> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | |||
<base-table | |||
:table-props="tableProps" | |||
:page="listQuery.page" | |||
@@ -28,7 +24,7 @@ | |||
@pagination="getDataList" | |||
/> | |||
<!-- 弹窗, 条件搜索--> | |||
<base-dialog | |||
<!-- <base-dialog | |||
:dialogTitle="searchsTitle" | |||
:dialogVisible="searchsVisible" | |||
@cancel="searchsCancel" | |||
@@ -36,7 +32,7 @@ | |||
:before-close="searchsCancel" | |||
> | |||
<searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs> | |||
</base-dialog> | |||
</base-dialog> --> | |||
<!-- 弹窗, 新增 / 修改 --> | |||
<base-dialog | |||
:dialogTitle="addOrEditTitle" | |||
@@ -44,7 +40,7 @@ | |||
@cancel="handleCancel" | |||
@confirm="handleConfirm" | |||
:before-close="handleCancel" | |||
width=80% | |||
width="80%" | |||
> | |||
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | |||
</base-dialog> | |||
@@ -54,7 +50,8 @@ | |||
<script> | |||
import AddOrUpdate from "./components/eightDisciplineList-detail"; | |||
import Searchs from "./components/searchs"; | |||
// import Searchs from "./components/searchs"; | |||
import processStatus from "./components/processStatus" | |||
import basicPage from "@/mixins/basic-page"; | |||
import codeFilter from "@/filters/code-filter"; | |||
import { timeFormatter } from "@/filters/code-filter"; | |||
@@ -85,42 +82,58 @@ const tableProps = [ | |||
{ | |||
prop: "D1", | |||
label: "D1", | |||
num: 1, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D2", | |||
label: "D2", | |||
num: 2, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D3", | |||
label: "D3", | |||
num: 3, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D4", | |||
label: "D4", | |||
num: 4, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D5", | |||
label: "D5", | |||
num: 5, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D6", | |||
label: "D6", | |||
num: 6, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D7", | |||
label: "D7", | |||
num: 7, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
{ | |||
prop: "D8", | |||
label: "D8", | |||
num: 8, | |||
align: "center", | |||
subcomponent: processStatus, | |||
}, | |||
]; | |||
const tableBtn = [ | |||
@@ -130,6 +143,44 @@ const tableBtn = [ | |||
}, | |||
]; | |||
const eightDisciplineStatusArr = [ | |||
{ | |||
name: "D0", | |||
id: 0, | |||
}, | |||
{ | |||
name: "D1", | |||
id: 1, | |||
}, | |||
{ | |||
name: "D2", | |||
id: 2, | |||
}, | |||
{ | |||
name: "D3", | |||
id: 3, | |||
}, | |||
{ | |||
name: "D4", | |||
id: 4, | |||
}, | |||
{ | |||
name: "D5", | |||
id: 5, | |||
}, | |||
{ | |||
name: "D6", | |||
id: 6, | |||
}, | |||
{ | |||
name: "D7", | |||
id: 7, | |||
}, | |||
{ | |||
name: "D8", | |||
id: 8, | |||
}, | |||
]; | |||
export default { | |||
mixins: [basicPage], | |||
data() { | |||
@@ -140,8 +191,52 @@ export default { | |||
}, | |||
tableProps, | |||
tableBtn, | |||
eightDisciplineStatusArr, | |||
tableData: [], | |||
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | |||
formConfig: [ | |||
{ | |||
type: "input", | |||
label: i18n.t("code.title"), | |||
placeholder: i18n.t("code.title"), | |||
param: "title", | |||
}, | |||
{ | |||
type: "select", | |||
label: "客户", | |||
selectOptions: [], | |||
param: "customId", | |||
defaultSelect: "", | |||
labelField: "customerName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "产品", | |||
selectOptions: [], | |||
param: "productId", | |||
defaultSelect: "", | |||
labelField: "productName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "步骤", | |||
selectOptions: eightDisciplineStatusArr, | |||
param: "eightDisciplineStatus", | |||
defaultSelect: "", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "datePicker", | |||
label: "日期", | |||
dateType: "date", | |||
format: "yyyy-MM-dd", | |||
valueFormat: "yyyy-MM-ddTHH:mm:ss", | |||
placeholder: "日期", | |||
param: "occurrenceDate", | |||
width: 170, | |||
}, | |||
{ | |||
type: "button", | |||
btnName: "搜索", | |||
@@ -153,9 +248,31 @@ export default { | |||
}, | |||
components: { | |||
AddOrUpdate, | |||
Searchs, | |||
processStatus, | |||
// Searchs, | |||
}, | |||
created() { | |||
this.getArr(); | |||
}, | |||
methods: { | |||
getArr() { | |||
this.optionArrUrl.forEach((item, index) => { | |||
this.$http | |||
.get(item, { | |||
params: { | |||
page: 1, | |||
limit: 500, | |||
}, | |||
}) | |||
.then(({ data: res }) => { | |||
if (res.code !== 0) { | |||
return this.$message.error(res.msg); | |||
} | |||
this.formConfig[index + 1].selectOptions = res.data.list; | |||
}) | |||
.catch(() => {}); | |||
}); | |||
}, | |||
// 获取数据列表 | |||
getDataList() { | |||
this.dataListLoading = true; | |||
@@ -183,15 +300,15 @@ export default { | |||
buttonClick(val) { | |||
switch (val.btnName) { | |||
case "search": | |||
this.listQuery = {}; | |||
this.listQuery.page = 1; | |||
this.listQuery.limit = 10; | |||
this.listQuery.total = 1; | |||
this.listQuery.title = val.title; | |||
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | |||
this.listQuery.customId = val.customId; | |||
this.listQuery.productId = val.productId; | |||
this.listQuery.occurrenceDate = val.occurrenceDate; | |||
this.getDataList(); | |||
break; | |||
case "export": | |||
this.exportHandle("工厂管理"); | |||
break; | |||
default: | |||
console.log(val); | |||
} | |||
@@ -1,11 +1,12 @@ | |||
<template> | |||
<el-card shadow="never" class="aui-card--fill"> | |||
<div class="mod-sys__user"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick"> | |||
<el-badge :value="5" class="item"> | |||
<el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button> | |||
</el-badge> | |||
</search-bar> | |||
<search-bar | |||
:isFold="true" | |||
:formConfigs="formConfig" | |||
ref="searchBarForm" | |||
@headBtnClick="buttonClick" | |||
/> | |||
<base-table | |||
:table-props="tableProps" | |||
:page="listQuery.page" | |||
@@ -28,7 +29,7 @@ | |||
@pagination="getDataList" | |||
/> | |||
<!-- 弹窗, 条件搜索--> | |||
<base-dialog | |||
<!-- <base-dialog | |||
:dialogTitle="searchsTitle" | |||
:dialogVisible="searchsVisible" | |||
@cancel="searchsCancel" | |||
@@ -36,7 +37,7 @@ | |||
:before-close="searchsCancel" | |||
> | |||
<searchs ref="searchsRef" :show-obj=showObj @refreshDataList="searchsSubmit"></searchs> | |||
</base-dialog> | |||
</base-dialog> --> | |||
<!-- 弹窗, 新增 / 修改 --> | |||
<base-dialog | |||
:dialogTitle="addOrEditTitle" | |||
@@ -44,7 +45,7 @@ | |||
@cancel="handleCancel" | |||
@confirm="handleConfirm" | |||
:before-close="handleCancel" | |||
width=80% | |||
width="80%" | |||
> | |||
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update> | |||
</base-dialog> | |||
@@ -54,7 +55,7 @@ | |||
<script> | |||
import AddOrUpdate from "./components/eightDisciplineList-detail"; | |||
import Searchs from "./components/searchs"; | |||
// import Searchs from "./components/searchs"; | |||
import basicPage from "@/mixins/basic-page"; | |||
import codeFilter from "@/filters/code-filter"; | |||
import { timeFormatter } from "@/filters/code-filter"; | |||
@@ -100,6 +101,62 @@ const tableBtn = [ | |||
}, | |||
]; | |||
const eightDisciplineStatusArr = [ | |||
{ | |||
name: "D0", | |||
id: 0, | |||
}, | |||
{ | |||
name: "D1", | |||
id: 1, | |||
}, | |||
{ | |||
name: "D2", | |||
id: 2, | |||
}, | |||
{ | |||
name: "D3", | |||
id: 3, | |||
}, | |||
{ | |||
name: "D4", | |||
id: 4, | |||
}, | |||
{ | |||
name: "D5", | |||
id: 5, | |||
}, | |||
{ | |||
name: "D6", | |||
id: 6, | |||
}, | |||
{ | |||
name: "D7", | |||
id: 7, | |||
}, | |||
{ | |||
name: "D8", | |||
id: 8, | |||
}, | |||
]; | |||
const roleArr = [ | |||
{ | |||
name: "启动人", | |||
id: 1, | |||
}, | |||
{ | |||
name: "分析人", | |||
id: 2, | |||
}, | |||
{ | |||
name: "负责人", | |||
id: 3, | |||
}, | |||
{ | |||
name: "处理人", | |||
id: 4, | |||
}, | |||
]; | |||
export default { | |||
mixins: [basicPage], | |||
data() { | |||
@@ -109,11 +166,65 @@ export default { | |||
}, | |||
tableProps, | |||
tableBtn, | |||
eightDisciplineStatusArr, | |||
roleArr, | |||
tableData: [], | |||
showObj: { | |||
role: true | |||
}, | |||
optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"], | |||
// showObj: { | |||
// role: true | |||
// }, | |||
formConfig: [ | |||
{ | |||
type: "input", | |||
label: i18n.t("code.title"), | |||
placeholder: i18n.t("code.title"), | |||
param: "title", | |||
}, | |||
{ | |||
type: "select", | |||
label: "客户", | |||
selectOptions: [], | |||
param: "customId", | |||
defaultSelect: "", | |||
labelField: "customerName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "产品", | |||
selectOptions: [], | |||
param: "productId", | |||
defaultSelect: "", | |||
labelField: "productName", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "步骤", | |||
selectOptions: eightDisciplineStatusArr, | |||
param: "eightDisciplineStatus", | |||
defaultSelect: "", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "select", | |||
label: "角色", | |||
selectOptions: roleArr, | |||
param: "role", | |||
defaultSelect: "", | |||
filterable: true, | |||
}, | |||
{ | |||
type: "datePicker", | |||
label: "日期", | |||
dateType: "date", | |||
format: "yyyy-MM-dd", | |||
valueFormat: "yyyy-MM-ddTHH:mm:ss", | |||
placeholder: "日期", | |||
param: "occurrenceDate", | |||
width: 170, | |||
}, | |||
{ | |||
type: "button", | |||
btnName: "搜索", | |||
@@ -125,9 +236,30 @@ export default { | |||
}, | |||
components: { | |||
AddOrUpdate, | |||
Searchs, | |||
// Searchs, | |||
}, | |||
created() { | |||
this.getArr(); | |||
}, | |||
methods: { | |||
getArr() { | |||
this.optionArrUrl.forEach((item, index) => { | |||
this.$http | |||
.get(item, { | |||
params: { | |||
page: 1, | |||
limit: 500, | |||
}, | |||
}) | |||
.then(({ data: res }) => { | |||
if (res.code !== 0) { | |||
return this.$message.error(res.msg); | |||
} | |||
this.formConfig[index + 1].selectOptions = res.data.list; | |||
}) | |||
.catch(() => {}); | |||
}); | |||
}, | |||
// 获取数据列表 | |||
getDataList() { | |||
this.dataListLoading = true; | |||
@@ -155,15 +287,16 @@ export default { | |||
buttonClick(val) { | |||
switch (val.btnName) { | |||
case "search": | |||
this.listQuery = {}; | |||
this.listQuery.page = 1; | |||
this.listQuery.limit = 10; | |||
this.listQuery.total = 1; | |||
this.listQuery.title = val.title; | |||
this.listQuery.eightDisciplineStatus = val.eightDisciplineStatus; | |||
this.listQuery.customId = val.customId; | |||
this.listQuery.productId = val.productId; | |||
this.listQuery.occurrenceDate = val.occurrenceDate; | |||
this.listQuery.role = val.role; | |||
this.getDataList(); | |||
break; | |||
case "export": | |||
this.exportHandle("工厂管理"); | |||
break; | |||
default: | |||
console.log(val); | |||
} | |||
@@ -74,7 +74,7 @@ | |||
label: "日期", | |||
dateType: "daterange", | |||
format: "yyyy-MM-dd", | |||
valueFormat: "yyyy-MM-ddTHH:mm:ss", | |||
valueFormat: "yyyy-MM-dd", | |||
rangeSeparator: "-", | |||
startPlaceholder: "开始时间", | |||
endPlaceholder: "结束时间", | |||
@@ -2,15 +2,15 @@ | |||
* @Author: zwq | |||
* @Date: 2023-07-03 15:21:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2023-07-04 08:53:10 | |||
* @LastEditTime: 2023-07-14 16:50:39 | |||
* @Description: | |||
--> | |||
<template> | |||
<el-card shadow="never" class="aui-card--fill"> | |||
<div class="mod-sys__user"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | |||
<div style="height:20px;width:100%"></div> | |||
<el-row :gutter="4" style="margin-top:20px"> | |||
<div style="height: 20px; width: 100%"></div> | |||
<el-row :gutter="4" style="margin-top: 20px"> | |||
<el-col :span="12" v-if="pieVisible"> | |||
<pie-chart | |||
v-loading="pieLoading" | |||
@@ -72,7 +72,7 @@ export default { | |||
label: "日期", | |||
dateType: "daterange", | |||
format: "yyyy-MM-dd", | |||
valueFormat: "yyyy-MM-ddTHH:mm:ss", | |||
valueFormat: "yyyy-MM-dd", | |||
rangeSeparator: "-", | |||
startPlaceholder: "开始时间", | |||
endPlaceholder: "结束时间", | |||
@@ -179,8 +179,8 @@ export default { | |||
<style lang="scss"> | |||
.mod-sys__user { | |||
> .el-row { | |||
display:flex; | |||
flex-wrap: wrap; | |||
display: flex; | |||
flex-wrap: wrap; | |||
.el-col { | |||
} | |||
} | |||