This commit is contained in:
xielue 2023-10-04 10:03:13 +08:00
parent 3492637cac
commit 9205dd80c6
10 changed files with 214 additions and 101 deletions

View File

@ -326,19 +326,25 @@ export default {
for (let key in this.options.searchFormData) { //
let value = this.options.searchFormData[key]; //
if (value) { //
if (value === 0 || value) { //
let mode = findMode(key); //
if (mode == "like") { //
value = "%" + value + "%"; // %
if (typeof (mode) == "function") {
rules = [...rules,mode({value:value,key:key})];
}
if (typeof (value) == "object" && value.id) {
value = value.id;
else {
if (mode == "like") { //
value = "%" + value + "%"; // %
}
if (typeof (value) == "object" && value.id) {
value = value.id;
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
}
if (this.bindSearchData) {

View File

@ -113,29 +113,22 @@ export default {
},
//
items: [
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
{ field: 'name', title: '名称', span: 12, itemRender: { name: '$input' } },
/*
{
title: '分类', span: 12,
field: 'mold_component_category',
dataRule: {
fromField: "id",
saveField: "category_id" // fromFieldsaveField
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldComponentCategory',
dataUrl: `${BASE_URL.BASE_URL}/MoldComponent/v1/mold/component/category/list`
}
}
}
{
title: '左侧',
span: 18,
children: [
{ field: 'code', title: '模型编码', span: 24, itemRender: { name: '$input' } },
{ field: 'name', title: '模型名称', span: 24, itemRender: { name: '$input' } }
]
},
{
title: '右侧',
span: 5,
children: [
{ field: 'image', span: 12, itemRender: { name: 'MkFormUploader' } },
]
},
*/
]
},
//

View File

@ -1,5 +1,10 @@
<template>
<basic-page-list ref="listPage" :desc="desc" :options="pageOptions"></basic-page-list>
<basic-page-list ref="listPage" :desc="desc" :options="pageOptions">
<template v-slot:column4="{ row }">
<img v-if="row.image" style="width:50px;height:50px;" :src="row.image" />
<span v-else></span>
</template>
</basic-page-list>
</template>
<script>
@ -98,6 +103,7 @@ export default {
{ field: 'code', sortable: true, title: '编码', width: 250 },
{ field: 'name', sortable: true, title: '名称', width: 250 },
{ title: '图片', slots: { default: 'column4' }, width: 90 },
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, //
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, //

View File

@ -1,12 +1,20 @@
<template>
<basic-page-list ref="listPage" :desc="desc" :options="pageOptions"></basic-page-list>
<basic-page-list ref="listPage" :desc="desc" :options="pageOptions">
<template v-slot:column1="{ row }">
<span v-if="row.progress == 1">已完成</span>
<span v-else-if="row.progress > 0">部分完成</span>
<span v-else>未完成</span>
</template>
</basic-page-list>
</template>
<script>
import BASE_URL from '@/services/mes/api.js';
const settings = require('../basic/settings.js');
export default {
export default {
props: {
},
@ -30,10 +38,13 @@ export default {
},
//
methods: {
optionsInit() {
//
var pageData = { //
@ -53,23 +64,53 @@ export default {
exportFileTitle: "模型",
enabledExport: false,
enabledImport: false,
enabledImportTemplate: false,
enabledImportTemplate: false,
//
searchFormData: {
code: '' ,
name:''
code: '',
name: '',
production_status: '',
progress: ''
},
//
searchRules: [
searchRules: [
{
key: 'progress', mode: ({ value, key }) => {
if (value == 1.5) {
return [
{
column: key,
mode: ">",
value: "0"
},
{
column: key,
mode: "<",
value: "1"
}
]
}
return [
{
column: key,
mode: "=",
value: value+''
}
]
}
}
],
//
searchFormItems: [ //
{ field: 'code', title: '订单编码', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入订单编码' } } },
{ field: 'name', title: '客户名称', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入客户名称' } } },
{ field: 'code', title: '订单编码', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入订单编码' } } },
{ field: 'name', title: '客户名称', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入客户名称' } } },
{ field: 'production_status', title: '布产状态', span: 5, itemRender: { name: '$select', props: { options: settings.options_production_status } } },
{ field: 'progress', title: '完成状态', span: 5, itemRender: { name: '$select', props: { options: settings.options_order_done_status } } },
{
align: 'right', span: 4, itemRender: { //
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, //
@ -88,14 +129,20 @@ export default {
//
columns: [
{ type: 'checkbox', width: 80 }, //
{ type: 'seq', width:80 }, //
{ type: 'seq', width: 80 }, //
{ title: '操作', slots: { default: 'op' }, width: 120 },
{ field: 'code', sortable: true, title: '订单编码', width: 250 },
{ field: 'name', sortable: true, title: '客户名称', width: 250 },
{ field: 'production_status', sortable: true, title: '布产状态', width: 100 },
{ title: '完成状态', slots: { default: 'column1' }, width: 120 },
{ field: 'create_time', formatter: 'formatDate', width: 100, sortable: true, title: '创建时间', showHeaderOverflow: true }, //
{ field: 'update_time', formatter: 'formatDate', width: 100, sortable: true, title: '更新时间', showHeaderOverflow: true }, //
@ -107,7 +154,7 @@ export default {
}
};
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); //

View File

@ -9,6 +9,9 @@
<a-button type="primary" @click="print">打印</a-button>
<a-button type="primary" @click="pageComplete">完成布产</a-button>
<a-button @click="back">关闭</a-button>
</div>
@ -224,7 +227,7 @@ export default {
},
itemRender: {
name: 'MkFormInputShow', props: {
params: {
params: {
}
}
}
@ -848,6 +851,38 @@ export default {
pageComplete() {
let dataId = this.getDataId();
if (!dataId) {
return;
}
let sendComplete = () => {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/MoldProductionOrder/v1/mold/production/order/complete`,
loading: '操作中...',
data: {
id: this.getDataId_BigInt()
},
useBigInt: true
}).then(a => {
if (a.code == "200") {
this.$mk.success("操作成功");
this.pageInit();
}
else {
this.$mk.error(a.msg);
}
});
}
this.$mk.confirm('您确定要完成布产吗?').then(type => {
if (type == 'confirm') {
sendComplete("");
}
});
},
pageApproved() {
let dataId = this.getDataId();
@ -892,17 +927,17 @@ export default {
tdata.mold_name = tdata.mold_detail.name || '';
}
for (let name in tdata) {
if (
(name.indexOf('_time') != -1 || name == 'manufacture_cycle')
&& tdata[name] && tdata[name].indexOf('T') != -1) {
&& tdata[name] && tdata[name].indexOf('T') != -1) {
tdata[name] = tdata[name].split('T')[0];
}
}
tdata.project_man_name = tdata.engineer_name;
tdata.mold_master_name = tdata.mold_master_user_detail.name;
tdata.mold_master_name = tdata.mold_master_user_detail.name;
tdata.qrcode = tdata.qr_code;

View File

@ -54,11 +54,10 @@
</a-tab-pane>
</a-tabs>
<h4 style="margin-top: 5px;">出现问题及建议反馈</h4>
<vxe-form :data="formOptions2.data" ref="xForm2" :title-width="formOptions2.titleWidth"
:title-align="formOptions2.titleAlign" :rules="formOptions2.rules" :items="formOptions2.items" :titleColon="false"
vertical>
:title-align="formOptions2.titleAlign" :rules="formOptions2.rules" :items="formOptions2.items"
>
</vxe-form>
@ -253,7 +252,7 @@ export default {
},
{ field: 'customer_name', title: '客户名称', span: 6, itemRender: { name: '$input' } },
{
field: 'progress', title: '进度', span: 12, itemRender: {
field: 'progress', title: '进度', span: 18, itemRender: {
name: 'MkFormProgress', props: {
params: {
type: "line"
@ -271,8 +270,7 @@ export default {
},
//
titleWidth: 180,
//
titleAlign: 'top',
//
//
rules: {
@ -281,7 +279,8 @@ export default {
items: [
{ showTitle: false, field: 'problem', title: '', span: 24, itemRender: { name: '$textarea', props: {} } },
{ field: 'problem', title: '出现问题及建议反馈', span: 24, itemRender: { name: '$input', props: {} } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: '$input', props: {} } },
]
@ -429,7 +428,9 @@ export default {
this.formOptions2.data = {
problem: a.data[this.detailDataFieldName].problem
problem: a.data[this.detailDataFieldName].problem,
remark: a.data[this.detailDataFieldName].remark
}
this.detailsData = JSON.parse(JSON.stringify(a.data[this.detailDataFieldName].mold_production_order_component || []));

View File

@ -13,6 +13,11 @@
</template>
<template v-slot:column4="{ row }">
<img v-if="row.mold_detail.image" style="width:50px;height:50px;" :src="row.mold_detail.image" />
<span v-else></span>
</template>
<template v-slot:column3="{ row }">
<a-table :columns="columns" :data-source="row.department_progress" style="border:1px solid #afafaf;margin: 15px;">
<span slot="progress" slot-scope="progress">
@ -111,16 +116,17 @@ export default {
//
searchRules: [
{ key: "code", mode: "like" },
{ key: "mold_master_uid", mode: "=" }
{ key: "mold_master_uid", mode: "=" },
{ key: "engineer_uid", mode: "=" }
],
//
searchFormItems: [ //
{ field: 'code', title: '编码', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入编码' } } },
{ field: 'customer_name', title: '客户名称', span: 6, itemRender: { name: '$input', props: { placeholder: '请输入客户名称' } } },
{ field: 'code', title: '编码', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入编码' } } },
{ field: 'customer_name', title: '客户名称', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入客户名称' } } },
{
title: '模具师傅', span: 6,
title: '模具师傅', span:5,
field: 'mold_master_uid',
dataRule: {
fromField: "id"
@ -137,6 +143,24 @@ export default {
}
}
},
{
title: '工程师傅', span: 5,
field: 'engineer_uid',
dataRule: {
fromField: "id"
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MesStaff',
dataUrl: `${BASE_URL.BASE_URL}/MesStaff/v1/mes/staff/list`
}
}
}
},
{
align: 'right', span: 4, itemRender: { //
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, //
@ -170,11 +194,15 @@ export default {
{ slots: { default: 'column1' }, title: '查看详情', width: 120 },
{ field: 'code', title: '编码', sortable: true, width: 100 },
{ field: 'mold_master_name', sortable: true, params: { dataType: "object", textField: "name" }, title: '模具师傅', width: 120 },
{ field: 'mold_master_name', sortable: true, title: '模具师傅', width: 120 },
{ field: 'engineer_name', sortable: true, title: '工程师傅', width: 120 },
{ field: 'complete_time', formatter: 'formatDate', width: 130, sortable: true, title: '要求完成时间', showHeaderOverflow: true },
//{ field: 'mold_order', formatter: 'formatRef', params: { dataType: "object", textField: "code" }, sortable: false, title: '', width: 120 },
{ field: 'mold_detail', formatter: 'formatRef', params: { dataType: "object", textField: "name" }, sortable: false, title: '模具', width: 120 },
{ field: 'mold_detail', formatter: 'formatRef', params: { dataType: "object", textField: "name" }, sortable: false, title: '模具', width: 120 },
{ title: '模具图片', slots: { default: 'column4' }, width: 90 },
{ slots: { content: 'column3' }, type: "expand", width: 100, title: '进度明细', showHeaderOverflow: true },
{ field: 'progress', minWidth: 150, cellRender: { name: 'progress' }, sortable: true, title: '总进度', showHeaderOverflow: true },
// { slots: { default: 'column2' },width: 200, title: '', showHeaderOverflow: true },

View File

@ -6,7 +6,7 @@
</vxe-form>
<vxe-table border show-overflow keep-source ref="xTable" :data="detailsData"
<vxe-table v-if="false" border show-overflow keep-source ref="xTable" :data="detailsData"
@pulldownSelected="onPulldownSelected" @popupSelected="onPopupSelected" :export-config="{}"
@edit-closed="afterEditEvent" @edit-actived="beforeEditEvent"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: beforeEditMethod }">
@ -45,9 +45,9 @@
</vxe-table>
<a-button @click="pageLoadData()" style="margin: 5px;">加载部件工序</a-button>
<a-button v-if="false" @click="pageLoadData()" style="margin: 5px;">加载部件工序</a-button>
<vxe-table border show-overflow keep-source ref="xTable2" :data="detailsData2"
<vxe-table v-if="false" border show-overflow keep-source ref="xTable2" :data="detailsData2"
@pulldownSelected="onPulldownSelected" @popupSelected="onPopupSelected" :export-config="{}"
@edit-closed="afterEditEvent" @edit-actived="beforeEditEvent"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: beforeEditMethod }">
@ -159,28 +159,7 @@ export default {
span: 18,
children: [
{ field: 'code', title: '模型编码', span: 24, itemRender: { name: '$input' } },
{ field: 'name', title: '模型名称', span: 24, itemRender: { name: '$input' } },
/*
{
title: '分类', span: 12,
field: 'mold_scheme_category',
dataRule: {
fromField: "id",
saveField: "mold_category_id" // fromFieldsaveField
},
itemRender: {
name: 'MkFormDataSelector', props: {
params: {
dataType: "object",
valueField: "id",
textField: "name",
listdataFieldName: 'MoldSchemeCategory',
dataUrl: `${BASE_URL.BASE_URL}/MoldScheme/v1/mold/scheme/category/list`
}
}
}
},
*/
{ field: 'name', title: '模型名称', span: 24, itemRender: { name: '$input' } }
]
},

View File

@ -36,6 +36,11 @@
</div>
</div>
<div class="card-item-progress">
<img v-if="item.component_detail && item.component_detail.image"
style="width:50px;height:50px;margin-right: 10px;" :src="item.component_detail.image" />
<span v-else></span>
<a-progress type="circle" :percent="item.progress" :width="50" />
</div>
</div>
@ -48,6 +53,7 @@
<vxe-table border show-overflow keep-source ref="xTable3" :height="200" :data="detailsData3">
<vxe-column field="name" title="部门名称" width="160"></vxe-column>
<vxe-column field="code" title="部门编码" width="160"></vxe-column>
<vxe-column field="process_num" title="工序数量" width="160"></vxe-column>
<vxe-column field="progress" :cellRender="{ name: 'progress' }" title="进度" width="180"></vxe-column>
</vxe-table>
@ -79,20 +85,21 @@
</div>
<div data-show="true" class="ant-alert ant-alert-info ant-alert-with-description" style="padding: 5px 5px 5px 20px;border:none;">
<div data-show="true" class="ant-alert ant-alert-info ant-alert-with-description"
style="padding: 5px 5px 5px 20px;border:none;">
<span class="ant-alert-message">操作性提示</span>
<span class="ant-alert-description" style="line-height:18px;">
<p>
1先选择布产单可以输入编码(输入后回车) 也可以扫码
1先选择布产单可以输入编码(输入后回车) 也可以扫码
</p>
<p>
2输入1#部门编码 搜索当前布产单的部门相关工序 也可以扫码
2输入1#部门编码 搜索当前布产单的部门相关工序 也可以扫码
</p>
<p>
3输入2#工序编码 搜索当前布产单的相关工序追加 也可以扫码
3输入2#工序编码 搜索当前布产单的相关工序追加 也可以扫码
</p>
</span>
</div>
@ -166,7 +173,7 @@ export default {
},
{ field: 'manufacture_cycle', dataRule: { type: 'timestamp' }, title: '制作周期', span: 24, itemRender: { name: 'MkFormInputShow', props: { params: { dataType: 'date' } } } },
{ field: 'remark', title: '备注', span: 24, itemRender: { name: 'MkFormInputShow' } },
{
field: 'progress', title: '进度', span: 24, itemRender: {
name: 'MkFormProgress', props: {

File diff suppressed because one or more lines are too long