projects/mes-test #133

Merged
gtz217 merged 281 commits from projects/mes-test into projects/mes 2023-11-30 09:11:34 +08:00
22 changed files with 315 additions and 287 deletions
Showing only changes of commit 79c9f1ca66 - Show all commits

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-10-31 15:05:06 * @Date: 2023-10-31 15:05:06
* @LastEditTime: 2023-11-03 09:05:50 * @LastEditTime: 2023-11-28 09:28:05
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -24,6 +24,14 @@ export function getWorkOrderList(query) {
params: query, params: query,
}) })
} }
export function getCoreProduct(id) {
return request({
url: '/base/core-product/get?id=' + id,
method: 'get'
})
}
// 导出物料信息 // 导出物料信息
// export function exportEnergyPlcExcel(query) { // export function exportEnergyPlcExcel(query) {
// return request({ // return request({

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-08-24 11:19:43 * @Date: 2022-08-24 11:19:43
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-01 10:30:12 * @LastEditTime: 2023-11-24 09:29:36
* @Description: * @Description:
*/ */
export default { export default {
@ -85,6 +85,7 @@ export default {
}, },
//tableBtn点击 //tableBtn点击
handleClick(val) { handleClick(val) {
console.log(val.data.packagingCode);
if (val.type === "edit") { if (val.type === "edit") {
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.addOrEditTitle = "编辑"; this.addOrEditTitle = "编辑";
@ -92,7 +93,7 @@ export default {
this.$refs.addOrUpdate.init(val.data.id); this.$refs.addOrUpdate.init(val.data.id);
}); });
} else if (val.type === "delete") { } else if (val.type === "delete") {
this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex) this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex,val.data.packagingCode )
} else if (val.type === "change") { } else if (val.type === "change") {
this.changeStatus(val.data.id) this.changeStatus(val.data.id)
} else { } else {
@ -101,7 +102,7 @@ export default {
}, },
// 删除 // 删除
deleteHandle(id, name, index) { deleteHandle(id, name, index) {
this.$confirm(`是否确认删除${name ? '[' + name + ']' : '[' + index + ']'}数据项?`, "提示", { this.$confirm(`是否确认删除${name ? ' 名称为'+ name : '[' + index + ']'}数据项?`, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-22 14:40:59 * @LastEditTime: 2023-11-24 09:13:50
* @Description: * @Description:
--> -->
<template> <template>
@ -122,7 +122,8 @@ export default {
selectOptions: [], selectOptions: [],
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'workOrderId' param: 'workOrderId',
filterable: true,
}, },
{ {
// parent: 'dateFilterType', // parent: 'dateFilterType',
@ -214,6 +215,26 @@ export default {
// this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
}) })
}, },
deleteHandle(id, name, index, packagingCode) {
this.$confirm(`是否确认删除${'[' + packagingCode + ']'}数据项?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.urlOptions.deleteURL(id).then(({ data }) => {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => { });
},
handlePrint(id) { handlePrint(id) {
if (id) { if (id) {
getPackingModel(id).then(res => { getPackingModel(id).then(res => {

View File

@ -57,7 +57,7 @@ import moment from 'moment';
import basicPageMixin from '@/mixins/lb/basicPageMixin'; import basicPageMixin from '@/mixins/lb/basicPageMixin';
import AddOrUpdate from './add-or-updata.vue' import AddOrUpdate from './add-or-updata.vue'
import { publicFormatter } from '@/utils/dict'; import { publicFormatter } from '@/utils/dict';
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
const btn = { const btn = {
@ -88,7 +88,7 @@ export default {
mixins: [basicPageMixin], mixins: [basicPageMixin],
data() { data() {
return { return {
searchBarKeys: ['equipmentName', 'recordTime'], searchBarKeys: ['equipmentName', 'createTime'],
tableBtn: [ tableBtn: [
// this.$auth.hasPermi('equipment:spare-parts-config:update') // this.$auth.hasPermi('equipment:spare-parts-config:update')
// ? { // ? {
@ -114,7 +114,7 @@ export default {
{ prop: 'workshopSection', label: '工段' }, { prop: 'workshopSection', label: '工段' },
{ prop: 'equipment', label: '设备名称' }, { prop: 'equipment', label: '设备名称' },
{ prop: 'alarmGrade', label: '报警级别', filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL) }, { prop: 'alarmGrade', label: '报警级别', filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL) },
{ prop: 'responsible', label: '报警时间' }, // { prop: 'createTime', label: '报警时间',filter: timeFilter }, //
{ prop: 'responsible1', label: '设备报警码' }, // { prop: 'responsible1', label: '设备报警码' }, //
{ prop: 'alarmContent', label: '报警内容' }, { prop: 'alarmContent', label: '报警内容' },
{ prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn }, { prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn },
@ -141,7 +141,7 @@ export default {
startPlaceholder: '开始日期', startPlaceholder: '开始日期',
endPlaceholder: '结束日期', endPlaceholder: '结束日期',
defaultTime: ['00:00:00', '23:59:59'], defaultTime: ['00:00:00', '23:59:59'],
param: 'recordTime', param: 'createTime',
// defaultSelect: [ // defaultSelect: [
// new Date(y, m, d) // new Date(y, m, d)
// .toLocaleString() // .toLocaleString()

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-22 16:50:55 * @LastEditTime: 2023-11-28 10:03:20
* @Description: * @Description:
--> -->
<template> <template>
@ -53,7 +53,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="drawer-body__footer"> <div v-if="!isdetail" class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" @click="goback()">取消</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()"> <el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑 编辑

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-23 09:20:12 * @LastEditTime: 2023-11-28 10:09:20
* @Description: * @Description:
--> -->
<template> <template>
@ -53,7 +53,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div v-if="isdetail" class="drawer-body__footer"> <div v-if="!isdetail" class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" @click="goback()">取消</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()"> <el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑 编辑
@ -140,7 +140,7 @@ const tableProps = [
label: '最小值(工艺)', label: '最小值(工艺)',
}, },
{ {
prop: 'manValue', prop: 'maxValue',
label: '最大值(工艺)', label: '最大值(工艺)',
}, },
{ {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-08 15:30:27 * @Date: 2023-11-08 15:30:27
* @LastEditTime: 2023-11-23 14:26:54 * @LastEditTime: 2023-11-28 10:11:40
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -84,7 +84,7 @@ export default {
}, },
equipmentId:null, equipmentId:null,
dataRule: { dataRule: {
attrName: [{ required: true, message: '名称不能为空', trigger: 'blur' }], paramId: [{ required: true, message: '参数名称不能为空', trigger: 'change' }],
}, },
}; };
}, },

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-22 14:23:40 * @LastEditTime: 2023-11-28 10:34:24
* @Description: * @Description:
--> -->
<template> <template>
@ -26,9 +26,10 @@ import { parseTime } from '../../core/mixins/code-filter';
import { import {
getProcessTraceabilityPage, getProcessTraceabilityPage,
getWorkOrderList, getWorkOrderList,
getCoreProduct
// exportEnergyPlcExcel // exportEnergyPlcExcel
} from '@/api/quality/processTraceability'; } from '@/api/quality/processTraceability';
import { publicFormatter } from '@/utils/dict';
const tableProps = [ const tableProps = [
{ {
prop: 'name', prop: 'name',
@ -44,7 +45,8 @@ const tableProps = [
}, },
{ {
prop: 'status', prop: 'status',
label: '状态' label: '状态',
filter: (val) => val == 1 ? '等待' : val == 2 ? '激活' : val == 3 ? '暂停' : val == 4 ? '完成' : '作废',
}, },
{ {
prop: 'startProduceTime', prop: 'startProduceTime',
@ -61,8 +63,9 @@ const tableProps = [
label: '生产数量' label: '生产数量'
}, },
{ {
prop: 'unit', prop: 'planProductUnit',
label: '单位' label: '单位',
filter: publicFormatter('unit_dict')
}, },
{ {
prop: 'processFlowName', prop: 'processFlowName',
@ -113,7 +116,8 @@ export default {
selectOptions: [], selectOptions: [],
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'orderName' param: 'orderName',
filterable: true,
}, },
{ {
type: 'datePicker', type: 'datePicker',
@ -182,17 +186,25 @@ export default {
handleClick(val) { handleClick(val) {
if (val.type === "processDetail") { if (val.type === "processDetail") {
console.log(val); console.log(val);
this.$router.push({ let specificationsData =''
name: 'process-traceability-detail', getCoreProduct(val.data.planProductId).then((res) => {
params: { console.log(res)
id: '1715180991838887938',
orderId: val.data.id, this.$router.push({
name: val.data.name, path: 'process-traceability-detail',
productName: val.data.planProductName, query: {
processFlowName: val.data.processFlowName id: val.data.processFlowId,
// equipmentName, orderId: val.data.id,
}, name: val.data.name,
}); specifications: res.data.specifications,
productName: val.data.planProductName,
processFlowName: val.data.processFlowName,
// planProductId: val.data.planProductId
// equipmentName,
},
});
})
// this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex) // this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex)
} }
}, },

View File

@ -117,11 +117,11 @@ export default {
// }, // },
{ prop: 'name', label: '参数名' }, { prop: 'name', label: '参数名' },
{ {
prop: 'name', label: '设定范围最小- 最大 / 标准', prop: 'status', label: '设定范围最小- 最大 / 标准',
subcomponent: StatusBtn subcomponent: StatusBtn
}, },
{ {
prop: 'code', label: '最小值', prop: '', label: '最小值',
children: [ children: [
{ {
prop: 'minValueSet', prop: 'minValueSet',
@ -134,7 +134,7 @@ export default {
] ]
}, },
{ {
prop: 'code', label: '最大值', prop: '', label: '最大值',
children: [ children: [
{ {
prop: 'maxValueSet', prop: 'maxValueSet',
@ -184,9 +184,9 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
},).then((res) => { },).then((res) => {
console.log(res); console.log(res);
@ -231,25 +231,29 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
},).then((res) => { },).then((res) => {
this.materialList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.materialList = res.data[0].data
this.name = res.data[0].name
}
}) })
} else { } else {
getDetValue({ getDetValue({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
}).then((res) => { }).then((res) => {
this.valueList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.valueList = res.data[0].data
this.name = res.data[0].name
}
}) })
} }
}, },
@ -258,12 +262,14 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
this.materialList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.materialList = res.data[0].data
this.name = res.data[0].name
}
}) })
}, },
clearList() { clearList() {

View File

@ -123,7 +123,7 @@ export default {
} }
}, },
mounted() { mounted() {
console.log(this.$route.params.id) console.log(this.$route.query.id)
this.loadLayout().then(json => { this.loadLayout().then(json => {
this.initGraph(json) this.initGraph(json)
}) })
@ -260,7 +260,7 @@ export default {
}, },
async loadLayout() { async loadLayout() {
const flowId = this.$route.params.id; const flowId = this.$route.query.id;
console.log(flowId) console.log(flowId)
if (!flowId) return { cells: [] } if (!flowId) return { cells: [] }
const { code, data } = await this.info({ id: flowId }); const { code, data } = await this.info({ id: flowId });
@ -288,12 +288,12 @@ export default {
async handleUpdateLayout() { async handleUpdateLayout() {
this.layout.content = JSON.stringify(this.graph.toJSON()); this.layout.content = JSON.stringify(this.graph.toJSON());
let code, data; let code, data;
console.table([this.layout, this.$route.params.id]) console.table([this.layout, this.$route.query.id])
// //
if (this.layout.id) { if (this.layout.id) {
({ code, data } = await this.http('/extend/process-flow-view/update', 'put', this.layout)); ({ code, data } = await this.http('/extend/process-flow-view/update', 'put', this.layout));
} else { } else {
this.layout.flowId = this.$route.params.id; this.layout.flowId = this.$route.query.id;
({ code, data } = await this.http('/extend/process-flow-view/create', 'post', this.layout)); ({ code, data } = await this.http('/extend/process-flow-view/create', 'post', this.layout));
} }
@ -410,7 +410,7 @@ export default {
}, },
createProcess() { createProcess() {
// const flowId = this.$route.params.id; // const flowId = this.$route.query.id;
const flowId = this.getFlowId(); // it also works const flowId = this.getFlowId(); // it also works
if (!flowId) { if (!flowId) {
this.$modal.msgError('工艺ID不能为空'); this.$modal.msgError('工艺ID不能为空');

View File

@ -20,14 +20,13 @@
<InfoItem label="产品名称" :value="form.productName" /> <InfoItem label="产品名称" :value="form.productName" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<InfoItem label="产品规格" /> <InfoItem label="产品规格" :value="form.specifications" />
</el-col> </el-col>
</el-row> </el-row>
</section> </section>
</template> </template>
<script> <script>
const InfoItem = { const InfoItem = {
name: 'InfoItem', name: 'InfoItem',
components: {}, components: {},
@ -62,6 +61,7 @@ export default {
id: null, id: null,
name: null, name: null,
productName: null, productName: null,
specifications:null,
processFlowName: null, processFlowName: null,
// remark: null, // remark: null,
// enable: null, // enable: null,
@ -70,7 +70,8 @@ export default {
}; };
}, },
mounted() { mounted() {
this.getInfo() this.getInfo()
console.log(this.$route.query)
}, },
computed: {}, computed: {},
methods: { methods: {
@ -95,12 +96,14 @@ export default {
// info(payload) { // info(payload) {
// return this.http(this.infoUrl, 'get', payload); // return this.http(this.infoUrl, 'get', payload);
// }, // },
async getInfo() { getInfo() {
this.form.name = this.$route.params.name // console.log(this.$route.query.planProductId);
this.form.productName = this.$route.params.productName this.form.name = this.$route.query.name
this.form.processFlowName = this.$route.params.processFlowName this.form.specifications = this.$route.query.specifications
// this.form.name = this.$route.params.name this.form.productName = this.$route.query.productName
// const flowId = this.$route.params.id; this.form.processFlowName = this.$route.query.processFlowName
// this.form.name = this.$route.query.name
// const flowId = this.$route.query.id;
// console.log(flowId); // console.log(flowId);
// if (!flowId) this.$router.go(-1); // if (!flowId) this.$router.go(-1);
// const { code, data } = await this.info({ id: flowId }); // const { code, data } = await this.info({ id: flowId });

View File

@ -1,81 +1,53 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<SearchBar <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" />
:formConfigs="searchBarFormConfig"
ref="search-bar"
@headBtnClick="handleSearchBarBtnClick" />
<!-- 列表 --> <!-- 列表 -->
<base-table <base-table :table-props="tableProps" :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-data="list"
:table-props="tableProps" @emitFun="handleEmitFun">
:page="queryParams.pageNo" <method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" fixed="right" :method-list="tableBtn"
:limit="queryParams.pageSize" @clickBtn="handleTableBtnClick" />
:table-data="list" </base-table>
@emitFun="handleEmitFun">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
:width="120"
fixed="right"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
</base-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<base-dialog <base-dialog :dialogTitle="title" :dialogVisible="open" width="40%" @close="cancel" @cancel="cancel"
:dialogTitle="title" @confirm="submitForm">
:dialogVisible="open" <DialogForm v-if="open" ref="form" v-model="form" :rows="[
width="40%" [
@close="cancel" {
@cancel="cancel" select: true,
@confirm="submitForm"> label: '检测类型',
<DialogForm prop: 'typeId',
v-if="open" url: '/base/quality-inspection-type/listAll',
ref="form" rules: [{ required: true, message: '检测类型不能为空', trigger: 'blur' }],
v-model="form" bind: {
:rows="[ filterable: true,
[ },
{ },
select: true, {
label: '检测类型', input: true,
prop: 'typeId', label: '检测内容',
url: '/base/quality-inspection-type/listAll', prop: 'content',
rules: [{ required: true, message: '检测类型不能为空', trigger: 'blur' }], rules: [{ required: true, message: '检测内容不能为空', trigger: 'blur' }],
bind: { },
filterable: true, ],
},
}, [
], {
[ input: true,
{ label: '内容编码',
input: true, prop: 'code',
label: '检测内容', url: '/base/quality-inspection-det/getCode',
prop: 'content', },
rules: [{ required: true, message: '检测内容不能为空', trigger: 'blur' }], { input: true, label: '备注', prop: 'remark' }],
}, ]" />
], </base-dialog>
[ </div>
{
input: true,
label: '内容编码',
prop: 'code',
url: '/base/quality-inspection-det/getCode',
},
],
[{ input: true, label: '备注', prop: 'remark' }],
]" />
</base-dialog>
</div>
</template> </template>
<script> <script>

View File

@ -1,76 +1,52 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<SearchBar <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" />
:formConfigs="searchBarFormConfig"
ref="search-bar"
@headBtnClick="handleSearchBarBtnClick" />
<!-- 列表 --> <!-- 列表 -->
<base-table <base-table :table-props="tableProps" :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-data="list"
:table-props="tableProps" @emitFun="handleEmitFun">
:page="queryParams.pageNo" <method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" :method-list="tableBtn"
:limit="queryParams.pageSize" @clickBtn="handleTableBtnClick" />
:table-data="list" </base-table>
@emitFun="handleEmitFun">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
:width="120"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
</base-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<base-dialog <base-dialog :dialogTitle="title" :dialogVisible="open" @close="cancel" width="30%" @cancel="cancel"
:dialogTitle="title" @confirm="submitForm">
:dialogVisible="open" <DialogForm v-if="open" ref="form" v-model="form" :rows="[
@close="cancel" [
@cancel="cancel" {
@confirm="submitForm"> input: true,
<DialogForm label: '检测类型名称',
v-if="open" prop: 'name',
ref="form" rules: [
v-model="form" {
:rows="[ required: true,
[ message: '检测类型名称不能为空',
{ trigger: 'blur',
input: true, },
label: '检测类型名称', ],
prop: 'name', // bind: {
rules: [ // disabled: true, // some condition, like detail mode...
{ // }
required: true, },
message: '检测类型名称不能为空', ],
trigger: 'blur', [
}, {
], input: true,
// bind: { label: '检测类型编码',
// disabled: true, // some condition, like detail mode... prop: 'code',
// } url: '/base/quality-inspection-type/getCode',
}, },
], ],
[ [{ input: true, label: '备注', prop: 'remark' }],
{ ]" />
input: true, </base-dialog>
label: '检测类型编码', </div>
prop: 'code',
url: '/base/quality-inspection-type/getCode',
},
],
[{ input: true, label: '备注', prop: 'remark' }],
]" />
</base-dialog>
</div>
</template> </template>
<script> <script>

View File

@ -1,13 +1,13 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2023-11-06 15:36:31 * @LastEditTime: 2023-11-24 08:42:18
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="auto"> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()">
<el-row :gutter="20"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="报废类型编码" prop="code"> <el-form-item label="报废类型编码" prop="code">
<el-input v-model="dataForm.code" placeholder="请输入报废类型编码" /> <el-input v-model="dataForm.code" placeholder="请输入报废类型编码" />
@ -19,7 +19,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="描述类型" prop="description"> <el-form-item label="描述类型" prop="description">
<el-input v-model="dataForm.description" clearable placeholder="描述类型" /> <el-input v-model="dataForm.description" clearable placeholder="描述类型" />

View File

@ -315,7 +315,11 @@ export default {
data: arrYAxis, data: arrYAxis,
type: 'bar', type: 'bar',
showBackground: true, showBackground: true,
barWidth:'20', barWidth: '20',
label: {
show: true,
position: 'top'
},
backgroundStyle: { backgroundStyle: {
color: 'rgba(180, 180, 180, 0.2)' color: 'rgba(180, 180, 180, 0.2)'
} }

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-10 16:25:02 * @LastEditTime: 2023-11-24 10:55:54
* @Description: * @Description:
--> -->
<template> <template>
@ -132,6 +132,9 @@ export default {
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
{
type: 'separate',
},
// { // {
// type: 'separate', // type: 'separate',
// }, // },

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-10 16:32:28 * @LastEditTime: 2023-11-28 10:51:44
* @Description: * @Description:
--> -->
<template> <template>
@ -26,10 +26,10 @@ import { parseTime } from '../mixins/code-filter';
import { import {
getProcessTraceabilityPage, getProcessTraceabilityPage,
getWorkOrderList, getWorkOrderList,
getCoreProduct
// exportEnergyPlcExcel // exportEnergyPlcExcel
} from '@/api/quality/processTraceability'; } from '@/api/quality/processTraceability';
import { publicFormatter } from '@/utils/dict'; import { publicFormatter } from '@/utils/dict';
const tableProps = [ const tableProps = [
{ {
prop: 'name', prop: 'name',
@ -46,7 +46,7 @@ const tableProps = [
{ {
prop: 'status', prop: 'status',
label: '状态', label: '状态',
filter:publicFormatter('work_order_status') filter: (val) => val == 1 ? '等待' : val == 2 ? '激活' : val == 3 ? '暂停' : val == 4 ? '完成' : '作废',
}, },
{ {
prop: 'startProduceTime', prop: 'startProduceTime',
@ -63,7 +63,7 @@ const tableProps = [
label: '生产数量' label: '生产数量'
}, },
{ {
prop: 'unit', prop: 'planProductUnit',
label: '单位', label: '单位',
filter: publicFormatter('unit_dict') filter: publicFormatter('unit_dict')
}, },
@ -73,7 +73,7 @@ const tableProps = [
}, },
{ {
prop: 'yield', prop: 'yield',
label: '成品率' label: '合格率'
} }
]; ];
@ -116,21 +116,22 @@ export default {
selectOptions: [], selectOptions: [],
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'orderName' param: 'orderName',
filterable: true,
},
{
type: 'datePicker',
label: '工单开始时间',
dateType: 'daterange',
format: 'yyyy-MM-dd',
valueFormat: "yyyy-MM-dd",
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'timeVal',
defaultSelect: [],
width: 250
}, },
// {
// type: 'datePicker',
// label: '',
// dateType: 'daterange',
// format: 'yyyy-MM-dd',
// valueFormat: "yyyy-MM-dd",
// rangeSeparator: '-',
// startPlaceholder: '',
// endPlaceholder: '',
// param: 'timeVal',
// defaultSelect: [],
// width: 250
// },
{ {
type: 'button', type: 'button',
btnName: '搜索', btnName: '搜索',
@ -185,17 +186,25 @@ export default {
handleClick(val) { handleClick(val) {
if (val.type === "processDetail") { if (val.type === "processDetail") {
console.log(val); console.log(val);
this.$router.push({ let specificationsData =''
name: 'process-traceability-detail', getCoreProduct(val.data.planProductId).then((res) => {
params: { console.log(res)
id: '1715180991838887938',
orderId: val.data.id, this.$router.push({
name: val.data.name, path: 'process-traceability-detail',
productName: val.data.planProductName, query: {
processFlowName: val.data.processFlowName id: val.data.processFlowId,
// equipmentName, orderId: val.data.id,
}, name: val.data.name,
}); specifications: res.data.specifications,
productName: val.data.planProductName,
processFlowName: val.data.processFlowName,
// planProductId: val.data.planProductId
// equipmentName,
},
});
})
// this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex) // this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex)
} }
}, },
@ -241,13 +250,13 @@ export default {
if (val.btnName === 'search') { if (val.btnName === 'search') {
this.listQuery.orderName = val.orderName ? val.orderName :undefined this.listQuery.orderName = val.orderName ? val.orderName :undefined
// this.queryParams.status = val.status // this.queryParams.status = val.status
// if (val.timeVal && val.timeVal.length != 0 ) { if (val.timeVal && val.timeVal.length != 0 ) {
// this.listQuery.startTime = val.timeVal[0] + ' 00:00:00' this.listQuery.startTime = val.timeVal[0] + ' 00:00:00'
// this.listQuery.endTime = val.timeVal[1] + ' 23:59:59' this.listQuery.endTime = val.timeVal[1] + ' 23:59:59'
// } else { } else {
// this.listQuery.startTime = undefined this.listQuery.startTime = undefined
// this.listQuery.endTime = undefined this.listQuery.endTime = undefined
// } }
this.getList() this.getList()
} else { } else {
// this.handleExport() // this.handleExport()

View File

@ -117,11 +117,11 @@ export default {
// }, // },
{ prop: 'name', label: '参数名' }, { prop: 'name', label: '参数名' },
{ {
prop: 'name', label: '设定范围最小- 最大 / 标准', prop: 'status', label: '设定范围最小- 最大 / 标准',
subcomponent: StatusBtn subcomponent: StatusBtn
}, },
{ {
prop: 'code', label: '最小值', prop: '', label: '最小值',
children: [ children: [
{ {
prop: 'minValueSet', prop: 'minValueSet',
@ -134,7 +134,7 @@ export default {
] ]
}, },
{ {
prop: 'code', label: '最大值', prop: '', label: '最大值',
children: [ children: [
{ {
prop: 'maxValueSet', prop: 'maxValueSet',
@ -184,9 +184,9 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
},).then((res) => { },).then((res) => {
console.log(res); console.log(res);
@ -231,25 +231,29 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
},).then((res) => { },).then((res) => {
this.materialList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.materialList = res.data[0].data
this.name = res.data[0].name
}
}) })
} else { } else {
getDetValue({ getDetValue({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
// orderId: this.$route.params.orderId, // orderId: this.$route.query.orderId,
}).then((res) => { }).then((res) => {
this.valueList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.valueList = res.data[0].data
this.name = res.data[0].name
}
}) })
} }
}, },
@ -258,12 +262,14 @@ export default {
getDetMaterial({ getDetMaterial({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
orderId: this.$route.params.orderId, orderId: this.$route.query.orderId,
flowDetId: [this.detId], flowDetId: [this.detId],
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
this.materialList = res.data[0].data if (res.data.length != []) {
this.name = res.data[0].name this.materialList = res.data[0].data
this.name = res.data[0].name
}
}) })
}, },
clearList() { clearList() {

View File

@ -123,7 +123,7 @@ export default {
} }
}, },
mounted() { mounted() {
console.log(this.$route.params.id) console.log(this.$route.query.id)
this.loadLayout().then(json => { this.loadLayout().then(json => {
this.initGraph(json) this.initGraph(json)
}) })
@ -260,7 +260,7 @@ export default {
}, },
async loadLayout() { async loadLayout() {
const flowId = this.$route.params.id; const flowId = this.$route.query.id;
console.log(flowId) console.log(flowId)
if (!flowId) return { cells: [] } if (!flowId) return { cells: [] }
const { code, data } = await this.info({ id: flowId }); const { code, data } = await this.info({ id: flowId });
@ -288,12 +288,12 @@ export default {
async handleUpdateLayout() { async handleUpdateLayout() {
this.layout.content = JSON.stringify(this.graph.toJSON()); this.layout.content = JSON.stringify(this.graph.toJSON());
let code, data; let code, data;
console.table([this.layout, this.$route.params.id]) console.table([this.layout, this.$route.query.id])
// //
if (this.layout.id) { if (this.layout.id) {
({ code, data } = await this.http('/extend/process-flow-view/update', 'put', this.layout)); ({ code, data } = await this.http('/extend/process-flow-view/update', 'put', this.layout));
} else { } else {
this.layout.flowId = this.$route.params.id; this.layout.flowId = this.$route.query.id;
({ code, data } = await this.http('/extend/process-flow-view/create', 'post', this.layout)); ({ code, data } = await this.http('/extend/process-flow-view/create', 'post', this.layout));
} }
@ -410,7 +410,7 @@ export default {
}, },
createProcess() { createProcess() {
// const flowId = this.$route.params.id; // const flowId = this.$route.query.id;
const flowId = this.getFlowId(); // it also works const flowId = this.getFlowId(); // it also works
if (!flowId) { if (!flowId) {
this.$modal.msgError('工艺ID不能为空'); this.$modal.msgError('工艺ID不能为空');

View File

@ -20,14 +20,13 @@
<InfoItem label="产品名称" :value="form.productName" /> <InfoItem label="产品名称" :value="form.productName" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<InfoItem label="产品规格" /> <InfoItem label="产品规格" :value="form.specifications" />
</el-col> </el-col>
</el-row> </el-row>
</section> </section>
</template> </template>
<script> <script>
const InfoItem = { const InfoItem = {
name: 'InfoItem', name: 'InfoItem',
components: {}, components: {},
@ -62,6 +61,7 @@ export default {
id: null, id: null,
name: null, name: null,
productName: null, productName: null,
specifications:null,
processFlowName: null, processFlowName: null,
// remark: null, // remark: null,
// enable: null, // enable: null,
@ -70,7 +70,8 @@ export default {
}; };
}, },
mounted() { mounted() {
this.getInfo() this.getInfo()
console.log(this.$route.query)
}, },
computed: {}, computed: {},
methods: { methods: {
@ -95,12 +96,14 @@ export default {
// info(payload) { // info(payload) {
// return this.http(this.infoUrl, 'get', payload); // return this.http(this.infoUrl, 'get', payload);
// }, // },
async getInfo() { getInfo() {
this.form.name = this.$route.params.name // console.log(this.$route.query.planProductId);
this.form.productName = this.$route.params.productName this.form.name = this.$route.query.name
this.form.processFlowName = this.$route.params.processFlowName this.form.specifications = this.$route.query.specifications
// this.form.name = this.$route.params.name this.form.productName = this.$route.query.productName
// const flowId = this.$route.params.id; this.form.processFlowName = this.$route.query.processFlowName
// this.form.name = this.$route.query.name
// const flowId = this.$route.query.id;
// console.log(flowId); // console.log(flowId);
// if (!flowId) this.$router.go(-1); // if (!flowId) this.$router.go(-1);
// const { code, data } = await this.info({ id: flowId }); // const { code, data } = await this.info({ id: flowId });

View File

@ -1,3 +1,10 @@
<!--
* @Author: zhp
* @Date: 2023-11-28 10:41:50
* @LastEditTime: 2023-11-28 10:49:43
* @LastEditors: zhp
* @Description:
-->
<!-- <!--
filename: index.vue filename: index.vue
author: liubin author: liubin
@ -37,8 +44,8 @@ export default {
}; };
}, },
mounted() { mounted() {
console.log('activated...', this.$route.params); console.log('activated...', this.$route.query);
this.flowId = this.$route.params.id; this.flowId = this.$route.query.id;
}, },
computed: {}, computed: {},
methods: { methods: {

View File

@ -9,8 +9,8 @@
<!-- 列表 --> <!-- 列表 -->
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
:page="queryParams.pageNo" :page="1"
:limit="queryParams.pageSize" :limit="10"
:table-data="list"> :table-data="list">
<!-- <method-btn <!-- <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
@ -109,9 +109,6 @@ export default {
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
{
type: 'separate',
},
// { // {
// type: this.$auth.hasPermi( // type: this.$auth.hasPermi(
// 'base:quality-inspection-record:create' // 'base:quality-inspection-record:create'