Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
452d5d4cb8
|
|
@ -7,6 +7,12 @@ export function getpEquipmentList(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
export function getEquipmentAll() {
|
||||
return request({
|
||||
url: '/em/equipment/',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function createEquipment(data) {
|
||||
return request({
|
||||
url: '/em/equipment/',
|
||||
|
|
|
|||
|
|
@ -14,6 +14,12 @@ export function createMaterial(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
export function getMaterial(id) {
|
||||
return request({
|
||||
url: `/mtm/material/${id}/`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function updateMaterial(id, data) {
|
||||
return request({
|
||||
url: `/mtm/material/${id}/`,
|
||||
|
|
@ -64,7 +70,12 @@ export function getStepList(id) {
|
|||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getStep(id) {
|
||||
return request({
|
||||
url: `/mtm/step/${id}/`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function createStep(data) {
|
||||
return request({
|
||||
url: '/mtm/step/',
|
||||
|
|
@ -115,3 +126,87 @@ export function deleteProductprocess(id, data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
//输入物料
|
||||
|
||||
export function getInputmaterialList(query) {
|
||||
return request({
|
||||
url: '/mtm/inputmaterial/',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function createInputmaterial(data) {
|
||||
return request({
|
||||
url: '/mtm/inputmaterial/',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateInputmaterial(id, data) {
|
||||
return request({
|
||||
url: `/mtm/inputmaterial/${id}/`,
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function deleteInputmaterial(id, data) {
|
||||
return request({
|
||||
url: `/mtm/inputmaterial/${id}/`,
|
||||
method: 'delete',
|
||||
data
|
||||
})
|
||||
}
|
||||
//输出物料
|
||||
|
||||
export function getOutputmaterialList(query) {
|
||||
return request({
|
||||
url: '/mtm/outputmaterial/',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function createOutputmaterial(data) {
|
||||
return request({
|
||||
url: '/mtm/outputmaterial/',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateOutputmaterial(id, data) {
|
||||
return request({
|
||||
url: `/mtm/outputmaterial/${id}/`,
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function deleteOutputmaterial(id, data) {
|
||||
return request({
|
||||
url: `/mtm/outputmaterial/${id}/`,
|
||||
method: 'delete',
|
||||
data
|
||||
})
|
||||
}
|
||||
//子工序
|
||||
//输出物料
|
||||
|
||||
export function getUsedstepList(query) {
|
||||
return request({
|
||||
url: '/mtm/usedstep/',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function createUsedstep(data) {
|
||||
return request({
|
||||
url: '/mtm/usedstep/',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function deleteUsedstep(id, data) {
|
||||
return request({
|
||||
url: `/mtm/usedstep/${id}/`,
|
||||
method: 'delete',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
@ -122,6 +122,14 @@ export const asyncRoutes = [
|
|||
component: () => import('@/views/mtm/step.vue'),
|
||||
meta: { title: '子工序', perms: ['vendor_manage'] },
|
||||
hidden: true
|
||||
}
|
||||
,
|
||||
{
|
||||
path: 'stepdo/:id',
|
||||
name: 'StepDo',
|
||||
component: () => import('@/views/mtm/stepdo.vue'),
|
||||
meta: { title: '子工序查看', perms: ['vendor_manage'] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/mtm/productprocess/',
|
||||
|
|
|
|||
|
|
@ -56,7 +56,9 @@
|
|||
<el-table-column label="物料编号">
|
||||
<template slot-scope="scope">{{ scope.row.number }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="计量单位">
|
||||
<template slot-scope="scope">{{ scope.row.unit }}</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
|
|
@ -105,7 +107,16 @@
|
|||
<el-form-item label="物料编号" prop="number">
|
||||
<el-input v-model="material.number" placeholder="物料编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="计量单位" prop="unit">
|
||||
<el-select style="width: 100%" v-model="material.unit" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in unitoptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="物料类别" prop="type">
|
||||
|
||||
|
|
@ -118,6 +129,14 @@
|
|||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="绑定工序" prop="processes">
|
||||
<el-transfer
|
||||
v-model="material.processes"
|
||||
:data="processOptions"
|
||||
:titles="['工序清单', '选择的工序清单']"
|
||||
:props="{ key: 'id', label: 'name' }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort_str">
|
||||
<el-input v-model="material.sort_str" placeholder="排序" />
|
||||
</el-form-item>
|
||||
|
|
@ -131,7 +150,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getMaterialList, createMaterial,updateMaterial,deleteMaterial } from "@/api/mtm";
|
||||
import { getMaterialList, createMaterial,updateMaterial,deleteMaterial,getProcessList } from "@/api/mtm";
|
||||
import checkPermission from "@/utils/permission";
|
||||
|
||||
|
||||
|
|
@ -149,6 +168,7 @@ export default {
|
|||
materialList: {
|
||||
count: 0,
|
||||
},
|
||||
processOptions:[],
|
||||
options_:{
|
||||
|
||||
"1":'成品',
|
||||
|
|
@ -166,6 +186,15 @@ export default {
|
|||
value: 3,
|
||||
label: '原料'
|
||||
}],
|
||||
unitoptions:[
|
||||
{
|
||||
value: '块',
|
||||
label: '块'
|
||||
}, {
|
||||
value: '套',
|
||||
label: '套'
|
||||
},
|
||||
],
|
||||
listQuery: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
|
|
@ -185,6 +214,7 @@ export default {
|
|||
watch: {},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getProcessList();
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -199,8 +229,12 @@ export default {
|
|||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
//工序清单
|
||||
getProcessList() {
|
||||
getProcessList().then((res) => {
|
||||
this.processOptions = res.data.results;
|
||||
});
|
||||
},
|
||||
|
||||
handleFilter() {
|
||||
this.listQuery.page = 1;
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
<el-table-column label="工序名称">
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="生产车间" >
|
||||
<template slot-scope="scope" v-if="scope.row.workshop_">{{ scope.row.workshop_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="指导书">
|
||||
<template slot-scope="scope" v-if="scope.row.instruction_">
|
||||
<el-link :href="scope.row.instruction_.path" >{{scope.row.instruction_.name}}</el-link>
|
||||
|
|
@ -84,7 +87,9 @@
|
|||
<el-form-item label="工序编号" prop="number">
|
||||
<el-input v-model="process.number" placeholder="工序编号" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="生产车间" prop="workshop">
|
||||
<treeselect v-model="process.workshop" :options="workoptions" placeholder="所属部门"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="指导书内容" prop="instruction_content">
|
||||
<el-input type="textarea" :rows="3" v-model="process.instruction_content" placeholder="指导书内容" />
|
||||
</el-form-item>
|
||||
|
|
@ -115,9 +120,11 @@
|
|||
<script>
|
||||
import { getProcessList, createProcess,updateProcess,deleteProcess } from "@/api/mtm";
|
||||
import checkPermission from "@/utils/permission";
|
||||
|
||||
import { getOrgAll } from "@/api/org"
|
||||
import { upUrl, upHeaders } from "@/api/file";
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import { genTree } from "@/utils";
|
||||
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
||||
const defaultprocess = {
|
||||
|
|
@ -125,7 +132,7 @@ const defaultprocess = {
|
|||
number: "",
|
||||
};
|
||||
export default {
|
||||
components: { Pagination },
|
||||
components: { Pagination,Treeselect },
|
||||
data() {
|
||||
return {
|
||||
process: defaultprocess,
|
||||
|
|
@ -135,6 +142,7 @@ export default {
|
|||
upHeaders: upHeaders(),
|
||||
upUrl: upUrl(),
|
||||
fileList:[],
|
||||
workoptions:[],
|
||||
listQuery: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
|
|
@ -154,6 +162,7 @@ export default {
|
|||
watch: {},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getOrgAll();
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -168,7 +177,14 @@ export default {
|
|||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
//生产车间
|
||||
getOrgAll() {
|
||||
this.treeLoding = true;
|
||||
getOrgAll().then(response => {
|
||||
this.workoptions = genTree(response.data);
|
||||
this.treeLoding = false;
|
||||
});
|
||||
},
|
||||
handlePreview(file) {
|
||||
if ("url" in file) {
|
||||
window.open(file.url);
|
||||
|
|
|
|||
|
|
@ -23,104 +23,394 @@
|
|||
|
||||
|
||||
</el-table>
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisible"
|
||||
|
||||
</el-card>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="18" >
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
|
||||
<el-descriptions class="margin-top" title="产品信息" :column="3" border>
|
||||
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">
|
||||
<i class="el-icon-mobile-phone"></i>
|
||||
产品名称
|
||||
</template>
|
||||
{{products.name}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">
|
||||
<i class="el-icon-location-outline"></i>
|
||||
产品编号
|
||||
</template>
|
||||
{{products.number}}
|
||||
</el-descriptions-item>
|
||||
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
|
||||
<el-steps :active="values" spac="400px" align-center="" style="padding-top: 40px;">
|
||||
<el-step :title="item.name" v-for="(item,index) in processoptions " :key="index" @click.native=stepclick(item.id)>
|
||||
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</el-card>
|
||||
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="输入物料">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleinputCreate"
|
||||
>新增</el-button>
|
||||
<el-table
|
||||
|
||||
:data="inputtableData.results"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
v-el-height-adaptive-table="{bottomOffset: 50}"
|
||||
>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="物料编号">
|
||||
<template slot-scope="scope">{{scope.row.material_.number}}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="物料名称">
|
||||
<template slot-scope="scope"> {{scope.row.material_.name}}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="计量单位">
|
||||
<template slot-scope="scope">{{ scope.row.material_.unit }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="单位消耗量">
|
||||
<template slot-scope="scope">{{ scope.row.count }}</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="220px"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
|
||||
<el-link
|
||||
v-if="checkPermission(['material_update'])"
|
||||
@click="handleinputEdit(scope)"
|
||||
>编辑</el-link
|
||||
>
|
||||
<el-link
|
||||
v-if="checkPermission(['material_delete'])"
|
||||
type="danger"
|
||||
@click="handleinputDelete(scope)"
|
||||
>删除</el-link
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisible"
|
||||
:title="dialogType === 'edit' ? '编辑输入物料' : '新增输入物料'"
|
||||
>
|
||||
<el-form
|
||||
ref="Form"
|
||||
:model="productprocess"
|
||||
:model="inputmaterial"
|
||||
label-width="80px"
|
||||
label-position="right"
|
||||
:title="dialogType === 'edit' ? '编辑工序' : '新增工序'"
|
||||
>
|
||||
|
||||
|
||||
<el-form-item label="工序" prop="process">
|
||||
|
||||
<el-select style="width: 100%" v-model="productprocess.process" placeholder="请选择">
|
||||
<el-form-item label="消耗量" prop="count">
|
||||
<el-input v-model="inputmaterial.count" placeholder="输入整数或小数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number
|
||||
v-model="inputmaterial.sort"
|
||||
:min="-2147483648"
|
||||
:max="2147483647"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="输入物料" prop="unit">
|
||||
<el-select style="width: 100%" v-model="inputmaterial.material" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
v-for="item in materialoptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number
|
||||
v-model="productprocess.sort"
|
||||
:min="-2147483648"
|
||||
:max="2147483647"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
</el-form>
|
||||
<div style="text-align: right">
|
||||
<el-button type="danger" @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirm('Form')">确认</el-button>
|
||||
<el-button type="primary" @click="inputconfirm('Form')">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="输出物料">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleoutputCreate"
|
||||
>新增</el-button>
|
||||
<el-table
|
||||
|
||||
</el-col>
|
||||
<el-col :span="18" >
|
||||
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleCreate"
|
||||
>新增工序</el-button
|
||||
:data="outputtableData.results"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
v-el-height-adaptive-table="{bottomOffset: 50}"
|
||||
>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>产品信息</span>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="物料编号">
|
||||
<template slot-scope="scope">{{scope.row.material_.number}}</template>
|
||||
</el-table-column>
|
||||
|
||||
</div>
|
||||
<div class="text item">
|
||||
<el-table-column label="物料名称">
|
||||
<template slot-scope="scope"> {{scope.row.material_.name}}</template>
|
||||
</el-table-column>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
<el-table-column label="计量单位">
|
||||
<template slot-scope="scope">{{ scope.row.material_.unit }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="单位消耗量">
|
||||
<template slot-scope="scope">{{ scope.row.count }}</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="220px"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
|
||||
<el-link
|
||||
v-if="checkPermission(['material_update'])"
|
||||
@click="handleoutputEdit(scope)"
|
||||
>编辑</el-link
|
||||
>
|
||||
<el-link
|
||||
v-if="checkPermission(['material_delete'])"
|
||||
type="danger"
|
||||
@click="handleoutputDelete(scope)"
|
||||
>删除</el-link
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisible1"
|
||||
:title="dialogType1 === 'edit' ? '编辑输出物料' : '新增输出物料'"
|
||||
>
|
||||
<el-form
|
||||
ref="Forms"
|
||||
:model="outputmaterial"
|
||||
label-width="80px"
|
||||
label-position="right"
|
||||
>
|
||||
|
||||
<el-form-item label="产出量" prop="count">
|
||||
<el-input v-model="outputmaterial.count" placeholder="输入整数或小数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number
|
||||
v-model="outputmaterial.sort"
|
||||
:min="-2147483648"
|
||||
:max="2147483647"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="输出物料" prop="unit">
|
||||
<el-select style="width: 100%" v-model="outputmaterial.material" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in materialoptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
</el-form>
|
||||
<div style="text-align: right">
|
||||
<el-button type="danger" @click="dialogVisible1 = false">取消</el-button>
|
||||
<el-button type="primary" @click="outputconfirm('Forms')">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="子工序列表">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="handleusedstepCreate"
|
||||
>新增</el-button>
|
||||
<el-table
|
||||
|
||||
:data="usedsteptableData.results"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
v-el-height-adaptive-table="{bottomOffset: 50}"
|
||||
>
|
||||
<el-table-column type="index" width="50" />
|
||||
|
||||
|
||||
|
||||
<el-table-column label="子工序名称">
|
||||
<template slot-scope="scope">{{ scope.row.step_.name }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="220px"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
|
||||
<el-link
|
||||
type="primary"
|
||||
@click="handlesearch(scope)"
|
||||
>查看</el-link
|
||||
>
|
||||
<el-link
|
||||
v-if="checkPermission(['material_delete'])"
|
||||
type="danger"
|
||||
@click="handleusedstepDelete(scope)"
|
||||
>删除</el-link
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="dialogVisibleusedstep"
|
||||
|
||||
>
|
||||
<el-form
|
||||
ref="Formusedstep"
|
||||
:model="usedstep"
|
||||
label-width="80px"
|
||||
label-position="right"
|
||||
>
|
||||
|
||||
|
||||
<el-form-item label="子工序" prop="unit">
|
||||
<el-select style="width: 100%" v-model="usedstep.step" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stepoptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
</el-form>
|
||||
<div style="text-align: right">
|
||||
<el-button type="danger" @click="dialogVisibleusedstep = false">取消</el-button>
|
||||
<el-button type="primary" @click="usedstepconfirm('Formusedstep')">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="检验要求">
|
||||
<el-button type="primary" icon="el-icon-plus"
|
||||
>新增</el-button>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="技术文件">
|
||||
<el-button type="primary" icon="el-icon-plus"
|
||||
>新增</el-button>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getMaterialList } from "@/api/mtm";
|
||||
import { getProcessList } from "@/api/mtm";
|
||||
import { getProductprocessList, createProductprocess,updateProductprocess,deleteProductprocess } from "@/api/mtm";
|
||||
import { getMaterialList,getMaterial,getInputmaterialList,createInputmaterial,updateInputmaterial
|
||||
,deleteInputmaterial,getOutputmaterialList,createOutputmaterial,updateOutputmaterial,deleteOutputmaterial,
|
||||
getUsedstepList,createUsedstep,deleteUsedstep,getStepList } from "@/api/mtm";
|
||||
|
||||
import checkPermission from "@/utils/permission";
|
||||
import { genTree } from "@/utils";
|
||||
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
||||
const defaultprocess = {
|
||||
const defaultinputmaterial = {
|
||||
|
||||
};
|
||||
const defaultoutputmaterial = {
|
||||
|
||||
};
|
||||
const defaultusedstep = {
|
||||
|
||||
};
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
|
||||
data() {
|
||||
return {
|
||||
productprocess: defaultprocess,
|
||||
materialoptions:[],
|
||||
inputtableData:{count: 0},
|
||||
inputmaterial: defaultinputmaterial,
|
||||
|
||||
outputtableData:{count: 0},
|
||||
outputmaterial: defaultoutputmaterial,
|
||||
usedsteptableData:{count: 0},
|
||||
usedstep: defaultusedstep,
|
||||
materialList: {
|
||||
count: 0,
|
||||
},
|
||||
stepoptions:[],
|
||||
processoptions:[],
|
||||
listQuery: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
},
|
||||
productprocessList:[],
|
||||
listQueryinput: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
},
|
||||
listQueryoutput: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
},
|
||||
listQueryusedstep: {
|
||||
page: 1,
|
||||
page_size: 20,
|
||||
},
|
||||
values:1,
|
||||
products:"",
|
||||
dialogType: "new",
|
||||
dialogVisible:false,
|
||||
dialogType1: "new",
|
||||
dialogVisible1:false,
|
||||
dialogTypeusedstep: "new",
|
||||
dialogVisibleusedstep:false,
|
||||
listLoading: true,
|
||||
options:[],
|
||||
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getpList();
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
checkPermission,
|
||||
//物料列表
|
||||
//产品列表
|
||||
getList() {
|
||||
this.listLoading = true;
|
||||
this.listQuery.type=1;
|
||||
|
|
@ -131,63 +421,116 @@ export default {
|
|||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
|
||||
getpList() {
|
||||
getProcessList({pageoff:true}).then((response) => {
|
||||
//物料
|
||||
getmaterialList() {
|
||||
this.listLoading = true;
|
||||
getMaterialList().then((response) => {
|
||||
if (response.data) {
|
||||
|
||||
this.options = genTree(response.data.results);
|
||||
this.materialoptions = genTree(response.data.results);
|
||||
}
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
getppList() {
|
||||
getProductprocessList({product:this.product}).then((response) => {
|
||||
|
||||
//获取产品,工艺
|
||||
getMaterial(){
|
||||
getMaterial(this.product).then((response) => {
|
||||
if (response.data) {
|
||||
this.productprocessList = response.data;
|
||||
this.products = response.data;//产品信息
|
||||
this.processoptions = response.data.processes_;//产品工艺
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
//点击对应的产品弹出信息
|
||||
handleCurrentChange(row){
|
||||
this.product=row.id;
|
||||
this.getppList();
|
||||
this.getMaterial();
|
||||
},
|
||||
|
||||
handleCreate() {
|
||||
this.productprocess = Object.assign({}, defaultprocess);
|
||||
//工艺点击信息
|
||||
|
||||
stepclick(id)
|
||||
{
|
||||
this.process = id;
|
||||
alert(this.process)
|
||||
this.getInputmaterialLists();
|
||||
|
||||
this.getmaterialList();
|
||||
this.getOutputmaterialLists();
|
||||
this.getstepList();
|
||||
this. getUsedstepLists();
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
//输入物料列表
|
||||
|
||||
getInputmaterialLists(){
|
||||
|
||||
this.listQueryinput.process=this.process;
|
||||
this.listQueryinput.product=this.product
|
||||
getInputmaterialList(this.listQueryinput).then((response) => {
|
||||
if (response.data) {
|
||||
|
||||
this.inputtableData = response.data;//产品信息
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
//输入物料
|
||||
handleinputCreate() {
|
||||
this.inputmaterial = Object.assign({}, defaultinputmaterial);
|
||||
this.dialogType = "new";
|
||||
this.dialogVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Form"].clearValidate();
|
||||
});
|
||||
},
|
||||
|
||||
handleEdit(scope) {
|
||||
this.process = Object.assign({}, scope.row); // copy obj
|
||||
handleinputEdit(scope) {
|
||||
this.inputmaterial = Object.assign({}, scope.row); // copy obj
|
||||
this.dialogType = "edit";
|
||||
this.dialogVisible = true;
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Form"].clearValidate();
|
||||
});
|
||||
},
|
||||
async confirm(form) {
|
||||
handleDelete(scope) {
|
||||
this.$confirm("确认删除?", "警告", {
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
type: "error",
|
||||
})
|
||||
.then(async () => {
|
||||
await deleteInputmaterial(scope.row.id);
|
||||
this.getInputmaterialLists()
|
||||
this.$message.success("成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
async inputconfirm(form) {
|
||||
this.$refs[form].validate((valid) => {
|
||||
if (valid) {
|
||||
const isEdit = this.dialogType === "edit";
|
||||
|
||||
if (isEdit) {
|
||||
updateProcess(this.process.id, this.process).then((res) => {
|
||||
this.inputmaterial.process=this.process;
|
||||
this.inputmaterial.product=this.product;
|
||||
updateInputmaterial(this.inputmaterial.id, this.inputmaterial).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.getList();
|
||||
this.getInputmaterialLists()
|
||||
this.dialogVisible = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.productprocess.product=this.product;
|
||||
createProductprocess(this.productprocess).then((res) => {
|
||||
this.inputmaterial.process=this.process;
|
||||
this.inputmaterial.product=this.product;
|
||||
createInputmaterial(this.inputmaterial).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.getList();
|
||||
this.getInputmaterialLists()
|
||||
this.dialogVisible = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
|
|
@ -199,6 +542,167 @@ export default {
|
|||
});
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
//输出物料列表
|
||||
|
||||
getOutputmaterialLists(){
|
||||
|
||||
this.listQueryoutput.process=this.process;
|
||||
this.listQueryoutput.product=this.product
|
||||
getOutputmaterialList(this.listQueryoutput).then((response) => {
|
||||
if (response.data) {
|
||||
|
||||
this.outputtableData = response.data;//产品信息
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
//输出物料
|
||||
handleoutputCreate() {
|
||||
this.outputmaterial = Object.assign({}, defaultoutputmaterial);
|
||||
this.dialogType1 = "new";
|
||||
this.dialogVisible1 = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Forms"].clearValidate();
|
||||
});
|
||||
},
|
||||
handleoutputEdit(scope) {
|
||||
this.outputmaterial = Object.assign({}, scope.row); // copy obj
|
||||
this.dialogType1 = "edit";
|
||||
this.dialogVisible1 = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Forms"].clearValidate();
|
||||
});
|
||||
},
|
||||
handleoutputDelete(scope) {
|
||||
this.$confirm("确认删除?", "警告", {
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
type: "error",
|
||||
})
|
||||
.then(async () => {
|
||||
await deleteOutputmaterial(scope.row.id);
|
||||
this.getOutputmaterialLists()
|
||||
this.$message.success("成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
async outputconfirm(form) {
|
||||
this.$refs[form].validate((valid) => {
|
||||
if (valid) {
|
||||
const isEdit = this.dialogType1 === "edit";
|
||||
if (isEdit) {
|
||||
this.outputmaterial.process=this.process;
|
||||
this.outputmaterial.product=this.product;
|
||||
updateOutputmaterial(this.outputmaterial.id, this.outputmaterial).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.getOutputmaterialLists()
|
||||
this.dialogVisible1 = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.outputmaterial.process=this.process;
|
||||
this.outputmaterial.product=this.product;
|
||||
console.log(this.outputmaterial);
|
||||
createOutputmaterial(this.outputmaterial).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.getOutputmaterialLists()
|
||||
this.dialogVisible1 = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
//子工序列表
|
||||
|
||||
getUsedstepLists(){
|
||||
|
||||
this.listQueryusedstep.process=this.process;
|
||||
this.listQueryusedstep.product=this.product
|
||||
getUsedstepList(this.listQueryusedstep).then((response) => {
|
||||
if (response.data) {
|
||||
|
||||
this.usedsteptableData = response.data;//产品信息
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getstepList() {
|
||||
|
||||
getStepList(this.process).then((response) => {
|
||||
if (response.data) {
|
||||
this.stepoptions = genTree(response.data);
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
handlesearch(scope) {
|
||||
|
||||
this.$router.push({name: "StepDo", params: { id: scope.row.step_.id }, })
|
||||
|
||||
},
|
||||
|
||||
//子工序列表
|
||||
handleusedstepCreate(){
|
||||
this.usedstep = Object.assign({}, defaultusedstep);
|
||||
this.dialogTypeusedstep = "new";
|
||||
this.dialogVisibleusedstep = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Formusedstep"].clearValidate();
|
||||
});
|
||||
},
|
||||
handleusedstepEdit(scope) {
|
||||
this.outputmaterial = Object.assign({}, scope.row); // copy obj
|
||||
this.dialogType1 = "edit";
|
||||
this.dialogVisible1 = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs["Forms"].clearValidate();
|
||||
});
|
||||
},
|
||||
handleusedstepDelete(scope) {
|
||||
this.$confirm("确认删除?", "警告", {
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
type: "error",
|
||||
})
|
||||
.then(async () => {
|
||||
await deleteUsedstep(scope.row.id);
|
||||
this.getUsedstepLists()
|
||||
this.$message.success("成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
async usedstepconfirm(form) {
|
||||
|
||||
this.usedstep.process=this.process;
|
||||
this.usedstep.product=this.product;
|
||||
console.log(this.usedstep);
|
||||
createUsedstep(this.usedstep).then((res) => {
|
||||
if (res.code >= 200) {
|
||||
this.getUsedstepLists()
|
||||
this.dialogVisibleusedstep = false;
|
||||
this.$message.success("成功");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -219,4 +723,7 @@ export default {
|
|||
border-radius: 4px;
|
||||
min-height: 36px;
|
||||
}
|
||||
.box-card{
|
||||
height:130px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
<el-link
|
||||
type="primary"
|
||||
@click="handleAdd(scope)"
|
||||
>操作</el-link
|
||||
@click="handlesearch(scope)"
|
||||
>查看</el-link
|
||||
>
|
||||
<el-link
|
||||
v-if="checkPermission(['step_update'])"
|
||||
|
|
@ -72,7 +72,17 @@
|
|||
<el-form-item label="步骤编号" prop="number">
|
||||
<el-input v-model="step.number" placeholder="工序编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序设备" prop="equipments">
|
||||
|
||||
<el-select style="width: 100%" multiple v-model="step.equipments" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="指导书内容" prop="instruction_content">
|
||||
<el-input type="textarea" :rows="3" v-model="step.instruction_content" placeholder="指导书内容" />
|
||||
</el-form-item>
|
||||
|
|
@ -96,7 +106,7 @@
|
|||
<script>
|
||||
import { getStepList, createStep,updateStep,deleteStep } from "@/api/mtm";
|
||||
import checkPermission from "@/utils/permission";
|
||||
|
||||
import { getEquipmentAll } from "@/api/equipment";
|
||||
import { upUrl, upHeaders } from "@/api/file";
|
||||
|
||||
import { genTree } from "@/utils";
|
||||
|
|
@ -117,6 +127,7 @@ export default {
|
|||
listLoading: true,
|
||||
dialogVisible: false,
|
||||
dialogType: "new",
|
||||
options:[],
|
||||
rule1: {
|
||||
name: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
number: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
|
|
@ -129,6 +140,7 @@ export default {
|
|||
created() {
|
||||
this.step.process = this.$route.params.id;
|
||||
this.getList();
|
||||
this.getequipments()
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -143,7 +155,14 @@ export default {
|
|||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
//工序设备
|
||||
getequipments() {
|
||||
|
||||
getEquipmentAll().then(response => {
|
||||
this.options = genTree(response.data.results);
|
||||
|
||||
});
|
||||
},
|
||||
handlePreview(file) {
|
||||
if ("url" in file) {
|
||||
window.open(file.url);
|
||||
|
|
@ -157,11 +176,7 @@ export default {
|
|||
handleRemove(file, filelist){
|
||||
this.step.instruction = null;
|
||||
},
|
||||
//添加子工序
|
||||
handleAdd(scope)
|
||||
{
|
||||
this.$router.push({name: "Step", params: { id: scope.row.id }, })
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -184,6 +199,11 @@ export default {
|
|||
this.$refs["Form"].clearValidate();
|
||||
});
|
||||
},
|
||||
handlesearch(scope) {
|
||||
|
||||
this.$router.push({name: "StepDo", params: { id: scope.row.id }, })
|
||||
|
||||
},
|
||||
|
||||
handleEdit(scope) {
|
||||
this.step = Object.assign({}, scope.row); // copy obj
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-card>
|
||||
|
||||
<el-descriptions title="子工序详情" :column="2" border>
|
||||
<el-descriptions-item label="工序名称" label-class-name="my-label" content-class-name="my-content">{{step.name}}</el-descriptions-item>
|
||||
<el-descriptions-item label="步骤编号" label-class-name="my-label" content-class-name="my-content">{{step.number}}</el-descriptions-item>
|
||||
<el-descriptions-item label="相关设备" label-class-name="my-label" :contentStyle="{'text-align': 'left'}">
|
||||
<el-tag v-for="item in step.equipments_"
|
||||
:key="item.number"
|
||||
:label="item.name"
|
||||
:value="item.number">{{item.name}}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="指导书内容" label-class-name="my-label" :contentStyle="{'text-align': 'left'}">{{step.instruction_content}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getStep} from "@/api/mtm";
|
||||
import checkPermission from "@/utils/permission";
|
||||
|
||||
|
||||
export default {
|
||||
components: { },
|
||||
data() {
|
||||
return {
|
||||
step:"",
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
|
||||
this.getStepD();
|
||||
},
|
||||
methods: {
|
||||
checkPermission,
|
||||
getStepD()
|
||||
{
|
||||
getStep(this.$route.params.id).then((response) => {
|
||||
if (response.data) {
|
||||
this.step = response.data;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.my-label {
|
||||
background: #E1F3D8;
|
||||
}
|
||||
|
||||
.my-content {
|
||||
background: #FDE2E2;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue