bugfix zentao

Cette révision appartient à :
lb 2023-10-12 15:40:05 +08:00
Parent 8f634d012c
révision 7acccd3de0
8 fichiers modifiés avec 201 ajouts et 97 suppressions

Voir le fichier

@ -35,11 +35,11 @@ export function getLineBindProductLog(id) {
} }
// 获得产线目前生产产品表 主要为更新分页 // 获得产线目前生产产品表 主要为更新分页
export function getLineBindProductLogPage(query) { export function getLineBindProductLogPage(data) {
return request({ return request({
url: '/base/line-bind-product-log/page', url: '/base/line-bind-product-log/page',
method: 'get', method: 'post',
params: query data
}) })
} }

Voir le fichier

@ -44,8 +44,8 @@
<base-table <base-table
v-loading="attrListLoading" v-loading="attrListLoading"
:table-props="section.props" :table-props="section.props"
:page="section.pageNo || 1" :page="attrQuery?.params.pageNo || 1"
:limit="section.pageSize || 10" :limit="attrQuery?.params.pageSize || 10"
:table-data="list" :table-data="list"
:add-button-show="mode.includes('detail') ? null : '添加属性'" :add-button-show="mode.includes('detail') ? null : '添加属性'"
@emitButtonClick="handleAddAttr" @emitButtonClick="handleAddAttr"
@ -57,6 +57,14 @@
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleTableBtnClick" /> @clickBtn="handleTableBtnClick" />
</base-table> </base-table>
<!-- 分页组件 -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="attrQuery.params.pageNo"
:limit.sync="attrQuery.params.pageSize"
@pagination="getAttrList" />
</div> </div>
</section> </section>
</div> </div>
@ -160,7 +168,12 @@ export default {
}, },
], ],
], ],
attrQuery: null, // attrQuery: {
params: {
pageNo: 1,
pageSize: 10,
},
}, //
infoQuery: null, // infoQuery: null, //
attrFormSubmitting: false, attrFormSubmitting: false,
attrListLoading: false, attrListLoading: false,

Voir le fichier

@ -38,6 +38,21 @@
@cancel="cancel" @cancel="cancel"
@confirm="submitForm"> @confirm="submitForm">
<DialogForm v-if="open" ref="form" :dataForm="form" :rows="rows" /> <DialogForm v-if="open" ref="form" :dataForm="form" :rows="rows" />
<div style="padding: 12px; background: #ccc">
<h3>文件列表</h3>
<hr />
<ul>
<li v-for="item in form.fileUrls" :key="item">
{{ JSON.stringify(item) }}
</li>
</ul>
<hr />
<ul>
<li v-for="item in form.fileNames" :key="item">
{{ JSON.stringify(item) }}
</li>
</ul>
</div>
</base-dialog> </base-dialog>
</div> </div>
</template> </template>
@ -86,9 +101,9 @@ export default {
width: 180, width: 180,
filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
}, },
{ prop: 'name', label: '设备类型名称', }, { prop: 'name', label: '设备类型名称' },
{ prop: 'code', label: '检测类型编码', }, { prop: 'code', label: '检测类型编码' },
{ prop: 'remark', label: '备注', }, { prop: 'remark', label: '备注' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -236,6 +251,7 @@ export default {
const id = row.id; const id = row.id;
getEquipmentType(id).then((response) => { getEquipmentType(id).then((response) => {
this.form = response.data; this.form = response.data;
debugger;
this.open = true; this.open = true;
this.title = '修改设备类型'; this.title = '修改设备类型';
}); });

Voir le fichier

@ -86,7 +86,8 @@ export default {
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
param: 'createTime', param: 'startTime',
valueFormat: 'timestamp'
}, },
{ {
type: 'button', type: 'button',
@ -126,7 +127,7 @@ export default {
this.listQuery.pageSize = 10; this.listQuery.pageSize = 10;
this.listQuery.productionLineId = val.productionLineId; this.listQuery.productionLineId = val.productionLineId;
this.listQuery.productId = val.productId; this.listQuery.productId = val.productId;
this.listQuery.createTime = val.createTime; this.listQuery.startTime = val.startTime;
this.getDataList(); this.getDataList();
break; break;
case 'reset': case 'reset':

Voir le fichier

@ -43,7 +43,7 @@
<el-form-item label="产品类型" prop="typeDictValue"> <el-form-item label="产品类型" prop="typeDictValue">
<el-select <el-select
v-model="dataForm.typeDictValue" v-model="dataForm.typeDictValue"
style="width: 100%" style="width: 100%"
:disabled="isdetail" :disabled="isdetail"
placeholder="请选择产品类型"> placeholder="请选择产品类型">
<el-option <el-option
@ -58,7 +58,7 @@
<el-form-item label="单位" prop="unitDictValue"> <el-form-item label="单位" prop="unitDictValue">
<el-select <el-select
v-model="dataForm.unitDictValue" v-model="dataForm.unitDictValue"
style="width: 100%" style="width: 100%"
:disabled="isdetail" :disabled="isdetail"
placeholder="请选择单位"> placeholder="请选择单位">
<el-option <el-option
@ -83,8 +83,8 @@
<el-form-item label="单位平方数" prop="area"> <el-form-item label="单位平方数" prop="area">
<el-input <el-input
:disabled="isdetail" :disabled="isdetail"
v-model="dataForm.area" v-model="dataForm.area"
placeholder="请输入单位平方数" /> placeholder="请输入单位平方数" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -111,6 +111,8 @@
:table-props="tableProps" :table-props="tableProps"
:page="listQuery.pageNo" :page="listQuery.pageNo"
:limit="listQuery.pageSize" :limit="listQuery.pageSize"
:add-button-show="isdetail ? null : '添加属性'"
@emitButtonClick="addNew()"
:table-data="productAttributeList"> :table-data="productAttributeList">
<method-btn <method-btn
v-if="!isdetail" v-if="!isdetail"
@ -123,15 +125,15 @@
<pagination <pagination
v-show="listQuery.total > 0" v-show="listQuery.total > 0"
:total="listQuery.total" :total="listQuery.total"
:page.sync="listQuery.current" :page.sync="listQuery.pageNo"
:limit.sync="listQuery.size" :limit.sync="listQuery.pageSize"
:page-sizes="[5, 10, 15]" :page-sizes="[5, 10, 15]"
@pagination="getList" /> @pagination="getList" />
</div> </div>
</div> </div>
</div> </div>
<div style="position: absolute; bottom: 24px; right: 24px"> <!-- <div style="position: absolute; bottom: 24px; right: 24px">
<el-button style="margin-right: 10px" @click="goback()">返回</el-button> <el-button style="margin-right: 10px" @click="goback()">返回</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()"> <el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑 编辑
@ -145,6 +147,14 @@
添加属性 添加属性
</el-button> </el-button>
</span> </span>
</div> -->
<div class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑
</el-button>
<el-button v-else type="primary" @click="dataFormSubmit()">确定</el-button>
</div> </div>
<product-attr-add <product-attr-add
@ -250,12 +260,12 @@ export default {
}, },
], ],
area: [ area: [
// { {
// type: 'float', type: 'number',
// message: '', message: '请输入正确的数值',
// trigger: 'blur', trigger: 'change',
// transfom: 'val => Float(val)', transform: (val) => Number(val),
// }, },
], ],
processTime: [ processTime: [
{ {
@ -263,12 +273,12 @@ export default {
message: '完成单位产品用时不能为空', message: '完成单位产品用时不能为空',
trigger: 'blur', trigger: 'blur',
}, },
// { {
// type: 'number', type: 'number',
// message: '', message: '请输入正确的数值',
// trigger: 'blur', trigger: 'blur',
// transfom: 'val => Number(val)', transform: (val) => Number(val),
// }, },
], ],
}, },
isdetail: false, isdetail: false,
@ -277,6 +287,7 @@ export default {
methods: { methods: {
initData() { initData() {
this.productAttributeList.splice(0); this.productAttributeList.splice(0);
this.listQuery.total = 0;
}, },
init(id, isdetail) { init(id, isdetail) {
this.initData(); this.initData();
@ -304,12 +315,10 @@ export default {
getList() { getList() {
// //
const params = { getProductAttrPage({
pageSize: 10, ...this.listQuery,
pageNo: 1,
productId: this.dataForm.id, productId: this.dataForm.id,
}; }).then((response) => {
getProductAttrPage(params).then((response) => {
this.productAttributeList = response.data.list; this.productAttributeList = response.data.list;
this.listQuery.total = response.data.total; this.listQuery.total = response.data.total;
}); });
@ -390,6 +399,8 @@ export default {
<style scoped> <style scoped>
.drawer >>> .el-drawer { .drawer >>> .el-drawer {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
display: flex;
flex-direction: column;
} }
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
@ -400,14 +411,20 @@ export default {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px; }
.drawer >>> .el-drawer__body {
flex: 1;
height: 1px;
display: flex;
flex-direction: column;
} }
.drawer >>> .content { .drawer >>> .content {
padding: 0 24px 30px; padding: 30px 24px;
flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; /* height: 100%; */
} }
.drawer >>> .visual-part { .drawer >>> .visual-part {
@ -422,4 +439,10 @@ export default {
.drawer >>> .attr-list { .drawer >>> .attr-list {
padding: 0 16px; padding: 0 16px;
} }
.drawer-body__footer {
display: flex;
justify-content: flex-end;
padding: 18px;
}
</style> </style>

Voir le fichier

@ -7,53 +7,84 @@
--> -->
<template> <template>
<el-form <el-form
class="dialog-inner__form"
:model="dataForm" :model="dataForm"
:rules="dataRule" :rules="dataRule"
ref="dataForm" ref="dataForm"
@keyup.enter.native="dataFormSubmit()" @keyup.enter.native="dataFormSubmit()"
label-width="90px"> label-width="90px">
<el-form-item label="产线编码" prop="code"> <el-row :gutter="20">
<el-input <el-col :span="12">
v-model="dataForm.code" <el-form-item label="产线编码" prop="code">
clearable <el-input
placeholder="请输入产线编码" /> v-model="dataForm.code"
</el-form-item> clearable
<el-form-item label="产线名称" prop="name"> placeholder="请输入产线编码" />
<el-input </el-form-item>
v-model="dataForm.name" </el-col>
clearable <el-col :span="12">
placeholder="请输入产线名称" /> <el-form-item label="产线名称" prop="name">
</el-form-item> <el-input
<el-form-item prop="factoryId" label="工厂名称"> v-model="dataForm.name"
<el-select clearable
v-model="dataForm.factoryId" filterable clearable placeholder="请选择工厂"> placeholder="请输入产线名称" />
<el-option </el-form-item>
v-for="item in urlOptions.optionArr.arr0" </el-col>
:key="item.id" </el-row>
:label="item.name" <el-row :gutter="20">
:value="item.id" <el-col :span="12">
> <el-form-item prop="factoryId" label="工厂名称">
</el-option> <el-select
</el-select> v-model="dataForm.factoryId"
</el-form-item> filterable
<el-form-item label="产线TT值(h)" prop="tvalue"> clearable
<el-input v-model="dataForm.tvalue" clearable placeholder="请输入每小时下片数量" /> placeholder="请选择工厂">
</el-form-item> <el-option
<el-form-item label="额外编码" prop="externalCode"> v-for="item in urlOptions.optionArr.arr0"
<el-input :key="item.id"
v-model="dataForm.externalCode" :label="item.name"
clearable :value="item.id"></el-option>
placeholder="请输入额外编码" /> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="description"> </el-col>
<el-input <el-col :span="12">
v-model="dataForm.description" <el-form-item label="产线TT值(h)" prop="tvalue">
type="textarea" <el-input
placeholder="请输入内容" /> v-model="dataForm.tvalue"
</el-form-item> clearable
<el-form-item label="备注" prop="remark"> placeholder="请输入每小时下片数量" />
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> </el-form-item>
</el-form-item> </el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="额外编码" prop="externalCode">
<el-input
v-model="dataForm.externalCode"
clearable
placeholder="请输入额外编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input
v-model="dataForm.remark"
clearable
placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="描述" prop="description">
<el-input
v-model="dataForm.description"
type="textarea"
placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</template> </template>
@ -65,22 +96,20 @@ import {
getProductionLine, getProductionLine,
getCode, getCode,
} from '@/api/core/base/productionLine'; } from '@/api/core/base/productionLine';
import { import { getFactoryPage } from '@/api/core/base/factory';
getFactoryPage,
} from '@/api/core/base/factory';
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
data() { data() {
return { return {
urlOptions: { urlOptions: {
getOption: true, getOption: true,
isGetCode: true, isGetCode: true,
codeURL: getCode, codeURL: getCode,
createURL: createProductionLine, createURL: createProductionLine,
updateURL: updateProductionLine, updateURL: updateProductionLine,
infoURL: getProductionLine, infoURL: getProductionLine,
optionArrUrl: [getFactoryPage], optionArrUrl: [getFactoryPage],
}, },
dataForm: { dataForm: {
id: undefined, id: undefined,
@ -99,13 +128,26 @@ export default {
name: [ name: [
{ required: true, message: '产线名称不能为空', trigger: 'blur' }, { required: true, message: '产线名称不能为空', trigger: 'blur' },
], ],
factoryId: [ factoryId: [
{ required: true, message: '工厂不能为空', trigger: 'change' }, { required: true, message: '工厂不能为空', trigger: 'change' },
], ],
tvalue: [
{
type: 'number',
message: '请输入正确的数字',
trigger: 'change',
transform: (val) => Number(val),
},
],
}, },
}; };
}, },
methods: { methods: {},
},
}; };
</script> </script>
<style scoped>
.dialog-inner__form >>> .el-select {
width: 100%;
}
</style>

Voir le fichier

@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

Voir le fichier

@ -29,7 +29,10 @@
@emitFun="handleEmitFun"></base-table> @emitFun="handleEmitFun"></base-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="'\u3000柱状图\u3000'" name="graph"> <el-tab-pane :label="'\u3000柱状图\u3000'" name="graph">
<div v-if="activeName == 'graph'" class="graph" style="height: 40vh; display: flex; flex-direction: column;"> <div
v-if="activeName == 'graph'"
class="graph"
style="height: 40vh; display: flex; flex-direction: column">
<div class="blue-title">各设备加工数量</div> <div class="blue-title">各设备加工数量</div>
<LineChart v-if="list && list.length" :list="list" /> <LineChart v-if="list && list.length" :list="list" />
<div v-else class="no-data-bg"></div> <div v-else class="no-data-bg"></div>
@ -87,6 +90,7 @@ export default {
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始日期', startPlaceholder: '开始日期',
endPlaceholder: '结束日期', endPlaceholder: '结束日期',
defaultTime: ['00:00:00', '23:59:59'],
param: 'recordTime', param: 'recordTime',
defaultSelect: [ defaultSelect: [
new Date(y, m, d) new Date(y, m, d)
@ -246,7 +250,9 @@ export default {
created() { created() {
this.fillLineOptions(); this.fillLineOptions();
this.fillProductOptions(); this.fillProductOptions();
this.getList(); },
mounted() {
this.$refs['search-bar'].headBtnClick('search');
}, },
methods: { methods: {
handleTabClick(tab, event) { handleTabClick(tab, event) {
@ -307,12 +313,16 @@ export default {
}, },
handleSearchBarBtnClick(btn) { handleSearchBarBtnClick(btn) {
console.log('handleSearchBarBtnClick', btn); // debugger;
switch (btn.btnName) { switch (btn.btnName) {
case 'search': case 'search':
this.queryParams.lineId = btn.lineId; this.queryParams.lineId = btn.lineId;
this.queryParams.productId = btn.productId; this.queryParams.productId = btn.productId;
this.queryParams.recordTime = btn.recordTime ? btn.recordTime.map(time => moment(new Date(time)).format('YYYY-MM-DD HH:mm:ss')) : null; this.queryParams.recordTime = btn.recordTime
? btn.recordTime.map((time) =>
moment(new Date(time)).format('YYYY-MM-DD HH:mm:ss')
)
: null;
this.$nextTick(() => { this.$nextTick(() => {
this.getList(); this.getList();
}); });
@ -388,7 +398,7 @@ export default {
font-size: 14px; font-size: 14px;
&::before { &::before {
content: ""; content: '';
position: absolute; position: absolute;
left: 0; left: 0;
top: 6px; top: 6px;
@ -398,5 +408,4 @@ export default {
background: #0b58ff; background: #0b58ff;
} }
} }
</style> </style>