Commit 9a4f0086 authored by 鲁鑫's avatar 鲁鑫

工作单元自动编码;产品转正式;

parent 00032dbb
...@@ -42,3 +42,11 @@ export function delMdItem(itemId) { ...@@ -42,3 +42,11 @@ export function delMdItem(itemId) {
method: 'delete' method: 'delete'
}) })
} }
// 临时产品转正式
export function becomeFormalProduct(itemId) {
return request({
url: '/mes/md/mditem/becomeFormalProduct/' + itemId,
method: 'put'
})
}
<template> <template>
<div class="dashboard-editor-container"> <!-- <div class="dashboard-editor-container">-->
<panel-group @handleSetLineChartData="handleSetLineChartData" /> <!-- <panel-group @handleSetLineChartData="handleSetLineChartData" />-->
<el-row :gutter="32" style="padding:16px 16px 0;margin-bottom:32px;"> <!-- <el-row :gutter="32" style="padding:16px 16px 0;margin-bottom:32px;">-->
<el-card> <!-- <el-card>-->
<div slot="header" class="clearfix"> <!-- <div slot="header" class="clearfix">-->
<span>生产进度</span> <!-- <span>生产进度</span>-->
</div> <!-- </div>-->
<el-table <!-- <el-table-->
v-loading="loading" <!-- v-loading="loading"-->
:data="workorderList" <!-- :data="workorderList"-->
row-key="workorderId" <!-- row-key="workorderId"-->
default-expand-all <!-- default-expand-all-->
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" <!-- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"-->
> <!-- >-->
<el-table-column label="工单编码" width="180" prop="workorderCode" > <!-- <el-table-column label="工单编码" width="180" prop="workorderCode" >-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
@click="handleView(scope.row)" <!-- @click="handleView(scope.row)"-->
v-hasPermi="['mes:pro:workorder:query']" <!-- v-hasPermi="['mes:pro:workorder:query']"-->
>{{scope.row.workorderCode}}</el-button> <!-- >{{scope.row.workorderCode}}</el-button>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column label="订单编号" width="140" align="center" prop="sourceCode" /> <!-- <el-table-column label="订单编号" width="140" align="center" prop="sourceCode" />-->
<el-table-column label="客户名称" align="center" prop="clientName" :show-overflow-tooltip="true"/> <!-- <el-table-column label="客户名称" align="center" prop="clientName" :show-overflow-tooltip="true"/>-->
<el-table-column label="产品编号" width="120" align="center" prop="productCode" /> <!-- <el-table-column label="产品编号" width="120" align="center" prop="productCode" />-->
<el-table-column label="产品名称" width="250px" align="center" prop="productName" :show-overflow-tooltip="true"/> <!-- <el-table-column label="产品名称" width="250px" align="center" prop="productName" :show-overflow-tooltip="true"/>-->
<el-table-column label="规格型号" align="center" prop="productSpc" :show-overflow-tooltip="true"/> <!-- <el-table-column label="规格型号" align="center" prop="productSpc" :show-overflow-tooltip="true"/>-->
<el-table-column label="单位" align="center" prop="unitOfMeasure" /> <!-- <el-table-column label="单位" align="center" prop="unitOfMeasure" />-->
<el-table-column label="生产进度" align="center" width="200px" > <!-- <el-table-column label="生产进度" align="center" width="200px" >-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-progress :text-inside="true" :stroke-width="20" :percentage="parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))"></el-progress> <!-- <el-progress :text-inside="true" :stroke-width="20" :percentage="parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))"></el-progress>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column label="需求日期" align="center" prop="requestDate" width="180"> <!-- <el-table-column label="需求日期" align="center" prop="requestDate" width="180">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<span>{{ parseTime(scope.row.requestDate, '{y}-{m}-{d}') }}</span> <!-- <span>{{ parseTime(scope.row.requestDate, '{y}-{m}-{d}') }}</span>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
</el-table> <!-- </el-table>-->
</el-card> <!-- </el-card>-->
</el-row> <!-- </el-row>-->
<el-row style="background:#fff;padding:16px 16px 0; margin-bottom:32px;">
<line-chart :chart-data="lineChartData" />
</el-row>
<el-row :gutter="32"> <!-- <el-row style="background:#fff;padding:16px 16px 0; margin-bottom:32px;">-->
<el-col :xs="24" :sm="24" :lg="8"> <!-- <line-chart :chart-data="lineChartData" />-->
<div class="chart-wrapper"> <!-- </el-row>-->
<raddar-chart />
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<pie-chart />
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<bar-chart />
</div>
</el-col>
</el-row>
<!-- <el-row :gutter="32">-->
</div> <!-- <el-col :xs="24" :sm="24" :lg="8">-->
<!-- <div class="chart-wrapper">-->
<!-- <raddar-chart />-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :xs="24" :sm="24" :lg="8">-->
<!-- <div class="chart-wrapper">-->
<!-- <pie-chart />-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :xs="24" :sm="24" :lg="8">-->
<!-- <div class="chart-wrapper">-->
<!-- <bar-chart />-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- </div>-->
</template> </template>
<script> <!--<script>-->
import { listWorkorder } from "@/api/mes/pro/workorder"; <!--import { listWorkorder } from "@/api/mes/pro/workorder";-->
import PanelGroup from './dashboard/PanelGroup' <!--import PanelGroup from './dashboard/PanelGroup'-->
import LineChart from './dashboard/LineChart' <!--import LineChart from './dashboard/LineChart'-->
import RaddarChart from './dashboard/RaddarChart' <!--import RaddarChart from './dashboard/RaddarChart'-->
import PieChart from './dashboard/PieChart' <!--import PieChart from './dashboard/PieChart'-->
import BarChart from './dashboard/BarChart' <!--import BarChart from './dashboard/BarChart'-->
const lineChartData = { <!--const lineChartData = {-->
newVisitis: { <!-- newVisitis: {-->
expectedData: [100, 120, 161, 134, 105, 160, 165], <!-- expectedData: [100, 120, 161, 134, 105, 160, 165],-->
actualData: [120, 82, 91, 154, 162, 140, 145] <!-- actualData: [120, 82, 91, 154, 162, 140, 145]-->
}, <!-- },-->
messages: { <!-- messages: {-->
expectedData: [200, 192, 120, 144, 160, 130, 140], <!-- expectedData: [200, 192, 120, 144, 160, 130, 140],-->
actualData: [180, 160, 151, 106, 145, 150, 130] <!-- actualData: [180, 160, 151, 106, 145, 150, 130]-->
}, <!-- },-->
purchases: { <!-- purchases: {-->
expectedData: [80, 100, 121, 104, 105, 90, 100], <!-- expectedData: [80, 100, 121, 104, 105, 90, 100],-->
actualData: [120, 90, 100, 138, 142, 130, 130] <!-- actualData: [120, 90, 100, 138, 142, 130, 130]-->
}, <!-- },-->
shoppings: { <!-- shoppings: {-->
expectedData: [130, 140, 141, 142, 145, 150, 160], <!-- expectedData: [130, 140, 141, 142, 145, 150, 160],-->
actualData: [120, 82, 91, 154, 162, 140, 130] <!-- actualData: [120, 82, 91, 154, 162, 140, 130]-->
} <!-- }-->
} <!--}-->
export default { <!--export default {-->
name: 'Index', <!-- name: 'Index',-->
components: { <!-- components: {-->
PanelGroup, <!-- PanelGroup,-->
LineChart, <!-- LineChart,-->
RaddarChart, <!-- RaddarChart,-->
PieChart, <!-- PieChart,-->
BarChart <!-- BarChart-->
}, <!-- },-->
data() { <!-- data() {-->
return { <!-- return {-->
loading: true, <!-- loading: true,-->
queryParams: {status:'CONFIRMED'}, <!-- queryParams: {status:'CONFIRMED'},-->
workorderList: [], <!-- workorderList: [],-->
lineChartData: lineChartData.newVisitis <!-- lineChartData: lineChartData.newVisitis-->
} <!-- }-->
}, <!-- },-->
created(){ <!-- created(){-->
this.getList(); <!-- this.getList();-->
}, <!-- },-->
methods: { <!-- methods: {-->
getList() { <!-- getList() {-->
this.loading = true; <!-- this.loading = true;-->
listWorkorder(this.queryParams).then(response => { <!-- listWorkorder(this.queryParams).then(response => {-->
this.workorderList = response.rows; <!-- this.workorderList = response.rows;-->
this.loading = false; <!-- this.loading = false;-->
}); <!-- });-->
}, <!-- },-->
handleSetLineChartData(type) { <!-- handleSetLineChartData(type) {-->
this.lineChartData = lineChartData[type] <!-- this.lineChartData = lineChartData[type]-->
} <!-- }-->
} <!-- }-->
} <!--}-->
</script> <!--</script>-->
<style lang="scss" scoped> <!--<style lang="scss" scoped>-->
.dashboard-editor-container { <!--.dashboard-editor-container {-->
padding: 32px; <!-- padding: 32px;-->
background-color: rgb(240, 242, 245); <!-- background-color: rgb(240, 242, 245);-->
position: relative; <!-- position: relative;-->
.chart-wrapper { <!-- .chart-wrapper {-->
background: #fff; <!-- background: #fff;-->
padding: 16px 16px 0; <!-- padding: 16px 16px 0;-->
margin-bottom: 32px; <!-- margin-bottom: 32px;-->
} <!-- }-->
} <!--}-->
@media (max-width:1024px) { <!--@media (max-width:1024px) {-->
.chart-wrapper { <!-- .chart-wrapper {-->
padding: 8px; <!-- padding: 8px;-->
} <!-- }-->
} <!--}-->
</style> <!--</style>-->
...@@ -127,15 +127,21 @@ ...@@ -127,15 +127,21 @@
<el-form-item label="工厂名称" prop="factoryName"> <el-form-item label="工厂名称" prop="factoryName">
<el-input v-model="form.factoryName" placeholder="请输入工厂名称" /> <el-input v-model="form.factoryName" placeholder="请输入工厂名称" />
</el-form-item> </el-form-item>
<el-form-item label="是否启用" prop="enableFlag"> <el-form-item label="是否启用">
<el-select v-model="form.enableFlag" placeholder="请选择是或否"> <el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
<el-option <el-radio
v-for="dict in dict.type.sys_yes_no" v-for="dict in dict.type.sys_yes_no"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.value"
:value="dict.value" >{{dict.label}}</el-radio>
></el-option> </el-radio-group>
</el-select> <el-radio-group v-model="form.enableFlag" v-else>
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
......
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['mes:md:faceColor:add']" v-hasPermi="['mes:md:mditem:add']"
>新增</el-button >新增</el-button
> >
</el-col> </el-col>
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['mes:md:faceColor:edit']" v-hasPermi="['mes:md:mditem:edit']"
>修改</el-button >修改</el-button
> >
</el-col> </el-col>
...@@ -99,10 +99,22 @@ ...@@ -99,10 +99,22 @@
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['mes:md:faceColor:remove']" v-hasPermi="['mes:md:mditem:remove']"
>删除</el-button >删除</el-button
> >
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="multiple"
@click="handBecomeFormalProduct"
v-hasPermi="['mes:md:mditem:becomeFormalProduct']"
>转正式产品</el-button
>
</el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="info" type="info"
...@@ -627,6 +639,7 @@ import { ...@@ -627,6 +639,7 @@ import {
delMdItem, delMdItem,
addMdItem, addMdItem,
updateMdItem, updateMdItem,
becomeFormalProduct,
} from "@/api/mes/md/mdItem"; } from "@/api/mes/md/mdItem";
import BaseInfo from "./components/baseInfo.vue"; import BaseInfo from "./components/baseInfo.vue";
...@@ -939,6 +952,20 @@ export default { ...@@ -939,6 +952,20 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}, },
/** 临时产品转正式按钮操作 */
handBecomeFormalProduct(row){
const itemIds = row.itemId || this.ids;
this.$modal
.confirm("确认转正式产品?")
.then(function () {
return becomeFormalProduct(itemIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("转正式成功");
})
.catch(() => {});
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download( this.download(
......
...@@ -130,31 +130,66 @@ ...@@ -130,31 +130,66 @@
<!-- 添加或修改工作单元对话框 --> <!-- 添加或修改工作单元对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="工作站" label-width="100px" prop="workstationName"> <el-row>
<el-input v-model="form.workstationName" placeholder="请输入工作站" > <el-col :span="20">
<el-button slot="append" icon="el-icon-search" @click="handleWorkstationSelect"></el-button> <el-form-item label="工作站" label-width="100px" prop="workstationName">
</el-input> <el-input v-model="form.workstationName" placeholder="请输入工作站" >
</el-form-item> <el-button slot="append" icon="el-icon-search" @click="handleWorkstationSelect"></el-button>
<WorkstationSelect ref="workstationSelect" @onSelected="onWorkstationSelected"> </WorkstationSelect> </el-input>
<el-form-item label="工作单元编码" label-width="100px" prop="workunitCode"> <WorkstationSelect ref="workstationSelect" @onSelected="onWorkstationSelected"> </WorkstationSelect>
<el-input v-model="form.workunitCode" placeholder="请输入工作单元编码" /> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="工作单元名称" label-width="100px" prop="workunitName"> </el-row>
<el-input v-model="form.workunitName" placeholder="请输入工作单元名称" /> <el-row>
</el-form-item> <el-col :span="16">
<el-form-item label="是否启用" label-width="100px" prop="enableFlag"> <el-form-item label="工作单元编码" label-width="100px" prop="workunitCode">
<el-select v-model="form.enableFlag" placeholder="请选择是或否"> <el-input v-model="form.workunitCode" placeholder="请输入工作单元编码" />
<el-option </el-form-item>
v-for="dict in dict.type.sys_yes_no" </el-col>
:key="dict.value" <el-col :span="4">
:label="dict.label" <el-form-item label-width="80">
:value="dict.value" <el-switch v-model="autoGenFlag"
></el-option> active-color="#13ce66"
</el-select> active-text="自动生成"
</el-form-item> @change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
<el-form-item label="备注" label-width="100px" prop="remark"> </el-switch>
<el-input v-model="form.remark" placeholder="请输入备注" /> </el-form-item>
</el-form-item> </el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="工作单元名称" label-width="100px" prop="workunitName">
<el-input v-model="form.workunitName" placeholder="请输入工作单元名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="是否启用">
<el-radio-group v-model="form.enableFlag" disabled v-if="optType=='view'">
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
<el-radio-group v-model="form.enableFlag" v-else>
<el-radio
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="备注" label-width="100px" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button> <el-button type="primary" @click="cancel" v-if="optType =='view'">返回</el-button>
...@@ -168,6 +203,7 @@ ...@@ -168,6 +203,7 @@
<script> <script>
import { listWorkunit, getWorkunit, delWorkunit, addWorkunit, updateWorkunit } from "@/api/mes/md/workunit"; import { listWorkunit, getWorkunit, delWorkunit, addWorkunit, updateWorkunit } from "@/api/mes/md/workunit";
import WorkstationSelect from "@/components/workstationSelect/simpletableSingle.vue"; import WorkstationSelect from "@/components/workstationSelect/simpletableSingle.vue";
import {genCode} from "@/api/system/autocode/rule"
export default { export default {
name: "Workunit", name: "Workunit",
...@@ -190,6 +226,7 @@ export default { ...@@ -190,6 +226,7 @@ export default {
total: 0, total: 0,
// 工作单元表格数据 // 工作单元表格数据
workunitList: [], workunitList: [],
autoGenFlag: false,
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
...@@ -246,6 +283,7 @@ export default { ...@@ -246,6 +283,7 @@ export default {
workunitName: '', workunitName: '',
enableFlag: '', enableFlag: '',
} }
this.autoGenFlag = false;
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
...@@ -332,12 +370,22 @@ export default { ...@@ -332,12 +370,22 @@ export default {
this.$refs.workstationSelect.getList(); this.$refs.workstationSelect.getList();
}, },
onWorkstationSelected(row){ onWorkstationSelected(row){
console.log(row, 'rowwwwwww')
if(row != undefined && row != null){ if(row != undefined && row != null){
this.form.workstationId = row.workstationId; this.form.workstationId = row.workstationId;
this.form.workstationName = row.workstationName; this.form.workstationName = row.workstationName;
} }
}, },
//自动生成物料编码
handleAutoGenChange(autoGenFlag){
debugger;
if(autoGenFlag){
genCode('WORK_UNIT').then(response =>{
this.form.workunitCode = response;
});
}else{
this.form.workunitCode = null;
}
}
} }
}; };
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment