Commit f02db6e4 authored by renjintao's avatar renjintao

mesplan

parent 67ccc8b9
......@@ -24,7 +24,7 @@
</div>
<Content class="content" :class="!showMenu?'con_bord':''">
<!--:data="dataT"-->
<DataGrid :action="action" :columns="columns" :conditions="easySearch" ref="grid" @on-selection-change="onSelect" :batch="true" :border="false" rowKey="id" exportTitle="订单管理" @on-import-data="onImportData">
<DataGrid :action="action" :columns="columns" :conditions="easySearch" ref="grid" @on-selection-change="onSelect" :batch="true" :border="false" rowKey="id">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
......@@ -376,7 +376,7 @@ export default {
h(
"op", {
attrs: {
oprate: "remove"
// oprate: "delete"
},
on: {
click: () => this.remove(params.row)
......@@ -389,14 +389,14 @@ export default {
params.row.id != params.row.rootId ||
params.row.status != 1 ?
"display:none" :
"") : (
"color:red") : (
(params.row.status == 3 &&
params.row.id == params.row.rootId &&
params.row.divideMark != 0) ||
params.row.id != params.row.rootId ||
params.row.status != 3 ?
"display:none" :
"")
"color:red")
},
"删除"
),
......@@ -770,7 +770,7 @@ export default {
this.delMsg = "";
this.delNum = 0;
this.actIds = [];
this.$refs.grid.cancelFooterToolbar();
//this.$refs.grid.cancelFooterToolbar();
this.actIds.push(row.id);
if (row.id != row.rootId) {
this.sondeletecheck(row.rootId);
......
<template>
<Layout class="quotation">
<Layout class="quotation">
<!-- 左侧树 -->
<!-- <Sider hide-trigger :style="{background: '#fff'}" width="260">
<Tree-Type @func="getMsgFormSon" :style="{ height: treeHeight + 'px' }"></Tree-Type>
</Sider>-->
<Sider hide-trigger v-if="showMenu" class="menu_side" width="300">
<ProductTree @on-hide="onHide" @on-select="productSearch" />
<ProductTree @on-hide="onHide" @on-select="productSearch" />
</Sider>
<div v-if="!showMenu" class="show_menu">
<a class="menu_play fr" @click="showMenuFn" title="展开">
<Icon type="ios-arrow-forward" size="24" />
</a>
<a class="menu_play fr" @click="showMenuFn" title="展开">
<Icon type="ios-arrow-forward" size="24" />
</a>
</div>
<!-- 右侧内容 -->
<Content class="content" :class="!showMenu?'con_bord':''">
<Tabs v-model="selectName" @on-click="handleClick">
<TabPane label="订单报价" key="offer" name="offer">
<div class="search-form">
<Row>
<Col span="12" style="display: flex;">
<Input
search
v-model="mesCode"
enter-button
placeholder="订单编号、产品编码..."
@on-search="easySearch(mesCode)"
style="width:235px;flaot:left;"
/>
<Button @click="advancedSearch" type="primary" style="margin-left:8px;">高级搜索</Button>
</Col>
<Col span="12" style=" text-align: right;">
<Button type="primary" @click="orderQuotation">订单报价</Button>
<div @click="drawerShow = true" class="divIco">
<Icon type="ios-list" class="icoListInfo" />
<Tabs v-model="selectName" @on-click="handleClick">
<TabPane label="订单报价" key="offer" name="offer">
<div class="search-form">
<Row>
<Col span="12" style="display: flex;">
<Input search v-model="mesCode" enter-button placeholder="订单编号、产品编码..." @on-search="easySearch(mesCode)" style="width:235px;flaot:left;" />
<Button @click="advancedSearch" type="primary" style="margin-left:8px;">高级搜索</Button>
</Col>
<Col span="12" style=" text-align: right;">
<Button type="primary" @click="orderQuotation">订单报价</Button>
<div @click="drawerShow = true" class="divIco">
<Icon type="ios-list" class="icoListInfo" />
</div>
</Col>
</Row>
</div>
</Col>
</Row>
</div>
<div style="margin-top:10px;">
<Table
border
highlight-row
ref="selection"
:columns="newColumn"
:data="dataTable"
:loading="loading"
:height="tableHeight"
class="tableCommon"
@on-selection-change="selectInfo"
></Table>
</div>
</TabPane>
<TabPane label="报价记录" key="record" name="record">
<Input
search
enter-button
placeholder="订单编号、报价单编号..."
v-model="mesCodeT"
@on-search="jlSearch(mesCodeT)"
style="width:235px;flaot:left;"
/>
<div style="margin-top:10px;">
<Table
border
ref="selection"
:columns="recordColumn"
:data="recordTable"
:loading="loading"
class="tableCommon"
:height="tableHeight"
></Table>
</div>
</TabPane>
</Tabs>
<Page
style="margin-top:10px;"
show-elevator
show-sizer
:total="total"
:page-size-opts="showPagesize"
:page-size="pageSize"
:current="current"
@on-change="pageChange"
@on-page-size-change="pageSizeChange"
/>
<div style="margin-top:10px;">
<Table border highlight-row ref="selection" :columns="newColumn" :data="dataTable" :loading="loading" :height="tableHeight" class="tableCommon" @on-selection-change="selectInfo"></Table>
</div>
</TabPane>
<TabPane label="报价记录" key="record" name="record">
<Input search enter-button placeholder="订单编号、报价单编号..." v-model="mesCodeT" @on-search="jlSearch(mesCodeT)" style="width:235px;flaot:left;" />
<div style="margin-top:10px;">
<Table border ref="selection" :columns="recordColumn" :data="recordTable" :loading="loading" class="tableCommon" :height="tableHeight"></Table>
</div>
</TabPane>
</Tabs>
<Page style="margin-top:10px;" show-elevator show-sizer :total="total" :page-size-opts="showPagesize" :page-size="pageSize" :current="current" @on-change="pageChange" @on-page-size-change="pageSizeChange" />
</Content>
<!-- 待审核弹框 -->
<Modal v-model="modalDai" width="360" :mask-closable="false" title="待审核">
<Form :model="formItem" :label-width="80">
<FormItem label="审核状态">
<RadioGroup v-model="formItem.animal">
<Radio label="3">通过</Radio>
<Radio label="4">未通过</Radio>
</RadioGroup>
</FormItem>
<FormItem label="备注">
<Input
v-model="formItem.auditIdea"
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
placeholder="Enter something..."
></Input>
</FormItem>
</Form>
<div slot="footer">
<Button type="primary" size="large" @click="dal">确认</Button>
</div>
<Form :model="formItem" :label-width="80">
<FormItem label="审核状态">
<RadioGroup v-model="formItem.animal">
<Radio label="3">通过</Radio>
<Radio label="4">未通过</Radio>
</RadioGroup>
</FormItem>
<FormItem label="备注">
<Input v-model="formItem.auditIdea" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }" placeholder="Enter something..."></Input>
</FormItem>
</Form>
<div slot="footer">
<Button type="primary" size="large" @click="dal">确认</Button>
</div>
</Modal>
<!-- 待送审弹框-->
<Modal v-model="modalSong" width="360" :mask-closable="false" title="待审核">
<div class="shenpi">
<label>审批人:</label>
<UserSelect ref="userSelected" v-model="model1" style="width:240px;" />
</div>
<div slot="footer">
<Button type="primary" size="large" @click="dalSong">确认</Button>
</div>
<div class="shenpi">
<label>审批人:</label>
<UserSelect ref="userSelected" v-model="model1" style="width:240px;" />
</div>
<div slot="footer">
<Button type="primary" size="large" @click="dalSong">确认</Button>
</div>
</Modal>
<!-- 列设置抽屉 -->
<Drawer-Set
:isShow="drawerShow"
:tcolumn="column"
:newColumn="newColumn"
@close="drawerShow = false"
@updateCol="updateColumn"
></Drawer-Set>
<Drawer-Set :isShow="drawerShow" :tcolumn="column" :newColumn="newColumn" @close="drawerShow = false" @updateCol="updateColumn"></Drawer-Set>
<!-- 高级搜索弹框 -->
<Search-Box ref="searchBox" @heightSearch="gSearch"></Search-Box>
<!-- 订单报价 -->
......@@ -134,17 +81,9 @@
<Metal-Details ref="metalDetail" :resultDetils="resultDetils"></Metal-Details>
<Photosensitive-Details ref="photosensitiveDetail" :resultDetils="resultDetils"></Photosensitive-Details>
<!-- 报价记录里送审 -->
<MetalQuotation-Generation
ref="metalQuotationExamine"
:childData="zPhotosensitive"
@update="update"
></MetalQuotation-Generation>
<Photosensitive-Generation
ref="photosensitiveExamine"
:childData="zPhotosensitive"
@update="update"
></Photosensitive-Generation>
</Layout>
<MetalQuotation-Generation ref="metalQuotationExamine" :childData="zPhotosensitive" @update="update"></MetalQuotation-Generation>
<Photosensitive-Generation ref="photosensitiveExamine" :childData="zPhotosensitive" @update="update"></Photosensitive-Generation>
</Layout>
</template>
<script>
......@@ -160,700 +99,750 @@ import ProductTree from "@/components/page/productTree.vue"; //左侧树列表
import MetalQuotationGeneration from "./components/metalQuotationGeneration.vue"; //生成报价单弹框
import PhotosensitiveGeneration from "./components/photosensitiveGeneration.vue"; //生成报价单弹框
export default {
components: {
DrawerSet,
QuotationBox,
TreeType,
SearchBox,
MetalQuotation,
Photosensitive,
MetalDetails,
PhotosensitiveDetails,
ProductTree,
MetalQuotationGeneration,
PhotosensitiveGeneration
},
data() {
return {
zPhotosensitive: {
result: []
},
status: "",
userId: 0,
showMenu: true,
model1: "",
rows: {},
modalDai: false, //待审核
modal_loading: false,
modalSong: false,
components: {
DrawerSet,
QuotationBox,
TreeType,
SearchBox,
MetalQuotation,
Photosensitive,
MetalDetails,
PhotosensitiveDetails,
ProductTree,
MetalQuotationGeneration,
PhotosensitiveGeneration
},
data() {
return {
zPhotosensitive: {
result: []
},
status: "",
userId: 0,
showMenu: true,
model1: "",
rows: {},
modalDai: false, //待审核
modal_loading: false,
modalSong: false,
formItem: {
auditIdea: "",
animal: "3"
},
cxResult: [],
orderSearchForm: {}, //高级搜索
mesCode: "", //搜索
mesCodeT: "",
simpleSearch: "",
resultDetils: [], //报价记录详情
materialId: "", //用料id判断订单报价为铺粉还是光敏
total: null,
bjData: [],
newJsData: [],
remark: "",
Party: false,
productId: "",
selectName: "offer",
recordColumn: [], //报价记录
recordTable: [], //报价记录
loading: true,
treeHeight: "",
showPagesize: [20, 50, 100],
pageSize: 20,
current: 1, //当前页 整形 选填 默认1
treeData: [],
value1: false,
drawerShow: false,
newColumn: [], //订单报价
tableHeight: "",
column: [
{ type: "selection", width: 70, align: "center", fixed: "left" },
{
title: "序号",
type: "index",
width: 70,
align: "center",
fixed: "left"
formItem: {
auditIdea: "",
animal: "3"
},
cxResult: [],
orderSearchForm: {}, //高级搜索
mesCode: "", //搜索
mesCodeT: "",
simpleSearch: "",
resultDetils: [], //报价记录详情
materialId: "", //用料id判断订单报价为铺粉还是光敏
total: null,
bjData: [],
newJsData: [],
remark: "",
Party: false,
productId: "",
selectName: "offer",
recordColumn: [], //报价记录
recordTable: [], //报价记录
loading: true,
treeHeight: "",
showPagesize: [20, 50, 100],
pageSize: 20,
current: 1, //当前页 整形 选填 默认1
treeData: [],
value1: false,
drawerShow: false,
newColumn: [], //订单报价
tableHeight: "",
column: [{
type: "selection",
width: 70,
align: "center",
fixed: "left"
},
{
title: "序号",
type: "index",
width: 70,
align: "center",
fixed: "left"
},
{
title: "订单编号",
key: "mesCode",
minWidth: 200,
align: "center",
fixed: "left"
},
{
title: "产品名称",
key: "productName",
width: 120,
fixed: "left"
},
{
title: "报价状态",
key: "orderQuotationStatus",
align: "center",
width: 120,
fixed: "left",
filters: this.getArry(
this.$store.getters.dictionaryByKey(
"plan.quotation.orderQuotationStatusName"
)
),
filterMethod(value, row) {
let statusChar = row.orderQuotationStatus + "";
return statusChar.indexOf(value) > -1;
},
render: (h, params) => {
return h("state", {
props: {
code: "plan.quotation.orderQuotationStatusName",
type: "text",
value: params.row.orderQuotationStatus + ""
}
});
}
},
{
title: "任务类型",
key: "taskType",
width: 120,
filters: this.getArry(
this.$store.getters.dictionaryByKey("plan.order.taskType")
),
filterMethod(value, row) {
return row.taskType.indexOf(value) > -1;
},
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.taskType",
type: "text",
value: params.row.taskType + ""
}
});
}
},
{
title: "阶段",
key: "stage",
width: 80,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.stage",
type: "text",
value: params.row.stage + ""
}
});
}
},
{
title: "材料",
key: "materialId",
width: 100,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.material",
type: "text",
value: params.row.materialId ? (params.row.materialId + "") : ""
}
});
}
},
{
title: "数量",
key: "quantity",
minWidth: 80,
align: "right"
},
{
title: "甲方客户",
key: "guestName",
width: 120,
tooltip: true,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.guestName",
type: "text",
value: params.row.guestName + ""
}
});
}
},
{
title: "3D打印承制单位",
key: "printSupply",
width: 160,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.printSupply",
type: "text",
value: params.row.printSupply + ""
}
});
}
},
{
title: "厂内责任机关",
key: "functionaryOffice",
width: 140
},
{
title: "厂内主体责任部门",
key: "mainDepartmentId",
width: 180,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.mainDepartment",
type: "text",
value: params.row.mainDepartmentId + ""
}
});
}
},
{
title: "备注",
key: "remark",
width: 120,
tooltip: true
},
{
title: "任务输入日期",
key: "taskInputDate",
width: 180,
align: "center"
},
{
title: "任务节点要求",
key: "taskRequire",
width: 150
},
{
title: "甲方投产输入文件(编号)",
key: "putintDocmentCode",
width: 220
},
{
title: "甲方技术输入文件(编号)",
key: "technologyDocmentCode",
width: 220
},
{
title: "外部图号/模型号",
key: "outerDrawnNumber",
width: 180
},
{
title: "模型版本",
key: "modelVersion",
width: 120
},
{
title: "甲方任务号",
key: "taskCode",
width: 120
},
{
title: "甲方设计人员",
key: "designer",
width: 150
},
{
title: "厂内机关负责人",
key: "officeFunctionary",
width: 150
},
{
title: "厂内主工艺人员",
key: "mainRoutingPeople",
width: 150
}
],
dataTable: []
};
},
created() {
this.treeHeight = window.innerHeight - 140;
this.tableHeight = window.innerHeight - 250;
this.newColumn = this.column;
this.tableTata(this.selectName);
var data = {
id: "cf192e27-1e81-4000-98ee-392eeb539616"
};
this.$api.get(`${workflowUrl}/schema/getbyid`, data).then(res => {
//流程判断
if (res.success) {
this.status = res.result.status;
}
});
},
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.treeHeight = window.screenHeight - 140;
this.tableHeight = window.innerHeight - 250;
})();
};
},
methods: {
onHide() {
this.showMenu = false;
},
{
title: "订单编号",
key: "mesCode",
minWidth: 200,
align: "center",
fixed: "left"
showMenuFn() {
this.showMenu = true;
},
{ title: "产品名称", key: "productName", width: 120, fixed: "left" },
{
title: "报价状态",
key: "orderQuotationStatus",
align: "center",
width: 120,
fixed: "left",
filters: this.getArry(
this.$store.getters.dictionaryByKey(
"plan.quotation.orderQuotationStatusName"
)
),
filterMethod(value, row) {
let statusChar = row.orderQuotationStatus + "";
return statusChar.indexOf(value) > -1;
},
render: (h, params) => {
return h("state", {
props: {
code: "plan.quotation.orderQuotationStatusName",
type: "text",
value: params.row.orderQuotationStatus + ""
}
});
}
productSearch(id, item, ids) {
// console.log(item)
this.getMsgFormSon(ids);
// let where = { productId: { op: "In", value: ids } };
// this.$refs.grid.reload(where);
},
{
title: "任务类型",
key: "taskType",
width: 120,
filters: this.getArry(
this.$store.getters.dictionaryByKey("plan.order.taskType")
),
filterMethod(value, row) {
return row.taskType.indexOf(value) > -1;
},
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.taskType",
type: "text",
value: params.row.taskType + ""
}
});
}
update() {
this.tableTata(this.selectName);
},
{
title: "阶段",
key: "stage",
width: 80,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.stage",
type: "text",
value: params.row.stage + ""
}
});
}
getMsgFormSon(data) {
// console.log(data)
this.productId = data.join(",");
this.tableTata(this.selectName);
},
{
title: "材料",
key: "materialId",
width: 100,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.material",
type: "text",
value: params.row.materialId + ""
}
//select选项 多选
selectInfo(val) {
this.bjData = val;
var list = [];
var listId = [];
val.forEach(data => {
list.push(data.guestName);
listId.push(data.materialId);
for (var i = 0; i < list.length; i++) {
if (list[i] === data.guestName) {
for (var j = 0; j < listId.length; j++) {
if (listId[j] === data.materialId) {
return (this.Party = true);
} else {
this.$Message.info("请选择同一个材质进行报价");
return (this.Party = false);
}
}
} else {
this.$Message.info("请选择同一个甲方客户");
return (this.Party = false);
}
}
});
}
},
{ title: "数量", key: "quantity", minWidth: 80, align: "right" },
{
title: "甲方客户",
key: "guestName",
width: 120,
tooltip: true,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.guestName",
type: "text",
value: params.row.guestName + ""
}
});
}
//tab切换
handleClick(name) {
this.selectName = name;
this.tableTata(this.selectName);
},
{
title: "3D打印承制单位",
key: "printSupply",
width: 160,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.printSupply",
type: "text",
value: params.row.printSupply + ""
}
});
}
tableTata() {
console.log(this.selectName);
if (this.selectName == "offer") {
this.$http.quotation
.getListTable({
productId: this.productId,
pageSize: this.pageSize,
current: this.current,
mesCode: this.mesCode,
productName: this.orderSearchForm.productName, //产品名称
orderQuotationStatus: this.orderSearchForm.status, //状态
taskType: this.orderSearchForm.taskType, //任务类型
stage: this.orderSearchForm.stage, //阶段
materialId: this.orderSearchForm.materialId, //材料
putintDocmentCode: this.orderSearchForm.putintDocmentCode, //甲方投产输入文件(编号)
guestName: this.orderSearchForm.guestName, //甲方客户
printSupply: this.orderSearchForm.printSupply, //3D打印
functionaryOffice: this.orderSearchForm.functionaryOffice, //厂内责任机关
mainDepartmentId: this.orderSearchForm.mainDepartmentId //厂内责任主体部门
})
.then(res => {
this.loading = false;
this.total = res.result.totalCount;
res.result.items.forEach(u => {
if (u.orderQuotationStatus === 0) {
u._disabled = false;
} else {
u._disabled = true;
}
});
this.dataTable = res.result.items;
this.materialId = res.result.items[0].materialId;
});
}
if (this.selectName == "record") {
this.recordColumn = [{
type: "index",
width: 65,
title: "序号",
align: "center"
},
{
title: "报价单编号",
key: "code",
align: "center",
render: (h, params) =>
h("div", [
h(
"a", {
on: {
click: () => {
this.infoDetail(params.row);
}
}
},
params.row.code
)
])
},
{
title: "报价时间",
key: "creationTime",
align: "center"
},
{
title: "制单人",
key: "maker",
align: "center"
},
{
title: "发往单位",
key: "postCompany",
align: "center"
},
{
title: "联系人",
key: "contactUser",
align: "center"
},
{
title: "电话",
key: "contactTel",
align: "center"
},
{
title: "报价状态",
key: "status",
align: "center",
width: 120,
filters: this.getArry(
this.$store.getters.dictionaryByKey(
"plan.quotation.orderQuotationStatusName"
)
),
filterMethod(value, row) {
let statusChar = row.status + "";
return statusChar.indexOf(value) > -1;
},
render: (h, params) => {
return h(
"a", {
// on: {
// click: () => {
// this.statusData(params.row)
// }
// }
},
[
h("state", {
props: {
code: "plan.quotation.orderQuotationStatusName",
type: "text",
value: params.row.status + ""
}
})
]
);
}
},
{
title: "备注",
key: "remark",
align: "center"
},
{
title: "操作",
key: "action",
width: 150,
align: "center",
render: (h, params) => {
return h("div", {
class: "action"
}, [
h(
params.row.status === 3 || params.row.status === 4 ?
"op" :
params.row.status === 1 ?
"op" :
"", {
attrs: {
oprate: "detail"
},
on: {
click: () => {
if (params.row.status === 1) {
this.resetGeneration(params.row);
} else {
this.requote(params.row);
}
}
}
},
(params.row.status === 3 || params.row.status === 4) &&
!params.row.upCode ?
"重新报价" :
params.row.status === 1 && this.status == 0 ?
"送审" :
""
)
]);
}
}
];
this.$http.quotation
.quotationRecordList({
pageSize: this.pageSize,
current: this.current,
mesCode: this.mesCodeT
})
.then(res => {
console.log(res);
this.loading = false;
this.recordTable = res.result.items;
this.total = res.result.totalCount;
// recordTable
})
.catch(error => {});
}
},
updateColumn(checkShowColumn) {
this.newColumn = checkShowColumn;
},
//订单报价按钮
orderQuotation() {
// 通过甲方客户判断定价报单的类型(类型分为三种情况:铺粉、光敏、外协)
this.newJsData = [];
if (this.Party === true) {
this.bjData.forEach(data => {
let obj = {
mesCode: data.mesCode,
orderId: data.id,
productName: data.productName,
num: data.quantity,
sizeCheckPrice: ""
};
this.newJsData.push(obj);
this.materialId = data.materialId;
});
//用料id判断订单报价为铺粉还是光敏
if (this.materialId == 2) {
//光敏
this.$refs.photosensitive.modalShow = true;
this.$refs.photosensitive.formItem = {};
this.$refs.photosensitive.formItem.quotationType = "光敏树脂";
} else {
//铺粉
this.$refs.metalQuotation.modalShow = true;
this.$refs.metalQuotation.formItem = {};
this.$refs.metalQuotation.formItem.quotationType = "AlSi10Mg";
}
} else {
this.$Message.info("请选择至少一个订单,并为同一个甲方客户");
}
},
//报价状态
statusData(row) {
this.userId = this.$store.state.userInfo.userId;
if (row.status === 2) {
if (row.auditUser == this.userId) {
//待审核
this.modalDai = true;
this.rows = {};
this.rows = row;
} else {
this.$Message.error("您不是当前数据处理的指定人员");
}
} else if (row.status === 1) {
if (row.creatorUserId == this.userId) {
//待送审
this.modalSong = true;
this.rows = {};
this.rows = row;
} else {
this.$Message.error("您不是当前数据的创建人员,不能进行送审");
}
}
},
dal() {
var data = {
id: this.rows.id,
status: this.formItem.animal,
auditIdea: this.formItem.auditIdea,
orderIds: this.rows.orderIds.join(",")
};
this.$http.quotation
.submitCensorship(data)
.then(res => {
this.modalDai = false;
this.tableTata(this.selectName);
})
.then(error => {
this.$Message.error(error.result.message);
});
},
{ title: "厂内责任机关", key: "functionaryOffice", width: 140 },
{
title: "厂内主体责任部门",
key: "mainDepartmentId",
width: 180,
render: (h, params) => {
return h("state", {
props: {
code: "plan.order.mainDepartment",
type: "text",
value: params.row.mainDepartmentId + ""
}
dalSong() {
var data = {
auditUser: parseInt(this.model1),
id: this.rows.id,
status: this.rows.status + 1,
orderIds: this.rows.orderIds.join(",")
};
this.$http.quotation.submitCensorship(data).then(res => {
this.modalSong = false;
this.tableTata(this.selectName);
});
}
},
{ title: "备注", key: "remark", width: 120, tooltip: true },
{
title: "任务输入日期",
key: "taskInputDate",
width: 180,
align: "center"
//高级搜索
advancedSearch() {
this.$refs.searchBox.modalShow = true;
},
{ title: "任务节点要求", key: "taskRequire", width: 150 },
{
title: "甲方投产输入文件(编号)",
key: "putintDocmentCode",
width: 220
gSearch(data) {
this.orderSearchForm = data;
this.$refs.searchBox.modalShow = false;
this.tableTata(this.selectName);
},
{
title: "甲方技术输入文件(编号)",
key: "technologyDocmentCode",
width: 220
//搜索查询
easySearch(val) {
this.mesCode = val;
this.simpleSearch = "SimpleSearch";
this.tableTata(this.selectName);
},
{ title: "外部图号/模型号", key: "outerDrawnNumber", width: 180 },
{ title: "模型版本", key: "modelVersion", width: 120 },
{ title: "甲方任务号", key: "taskCode", width: 120 },
{ title: "甲方设计人员", key: "designer", width: 150 },
{ title: "厂内机关负责人", key: "officeFunctionary", width: 150 },
{ title: "厂内主工艺人员", key: "mainRoutingPeople", width: 150 }
],
dataTable: []
};
},
created() {
this.treeHeight = window.innerHeight - 140;
this.tableHeight = window.innerHeight - 250;
this.newColumn = this.column;
this.tableTata(this.selectName);
var data = {
id: "cf192e27-1e81-4000-98ee-392eeb539616"
};
this.$api.get(`${workflowUrl}/schema/getbyid`, data).then(res => {
//流程判断
if (res.success) {
this.status = res.result.status;
}
});
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.treeHeight = window.screenHeight - 140;
this.tableHeight = window.innerHeight - 250;
})();
};
},
methods: {
onHide() {
this.showMenu = false;
},
showMenuFn() {
this.showMenu = true;
},
productSearch(id, item, ids) {
// console.log(item)
this.getMsgFormSon(ids);
// let where = { productId: { op: "In", value: ids } };
// this.$refs.grid.reload(where);
},
update() {
this.tableTata(this.selectName);
},
getMsgFormSon(data) {
// console.log(data)
this.productId = data.join(",");
this.tableTata(this.selectName);
},
//select选项 多选
selectInfo(val) {
this.bjData = val;
var list = [];
var listId = [];
val.forEach(data => {
list.push(data.guestName);
listId.push(data.materialId);
for (var i = 0; i < list.length; i++) {
if (list[i] === data.guestName) {
for (var j = 0; j < listId.length; j++) {
if (listId[j] === data.materialId) {
return (this.Party = true);
} else {
this.$Message.info("请选择同一个材质进行报价");
return (this.Party = false);
}
//报价记录搜索
jlSearch(val) {
console.log(val);
this.mesCodeT = val;
// this.simpleSearch = 'SimpleSearch'
this.tableTata(this.selectName);
},
//重新报价
requote(row) {
this.newJsData = [];
if (row.quotationType == "AlSi10Mg") {
//铺粉
this.$refs.metalQuotation.modalShow = true;
} else if (row.quotationType == "光敏树脂") {
this.$refs.photosensitive.modalShow = true;
}
} else {
this.$Message.info("请选择同一个甲方客户");
return (this.Party = false);
}
}
});
},
//tab切换
handleClick(name) {
this.selectName = name;
this.tableTata(this.selectName);
},
tableTata() {
console.log(this.selectName);
if (this.selectName == "offer") {
this.$http.quotation
.getListTable({
productId: this.productId,
pageSize: this.pageSize,
current: this.current,
mesCode: this.mesCode,
productName: this.orderSearchForm.productName, //产品名称
orderQuotationStatus: this.orderSearchForm.status, //状态
taskType: this.orderSearchForm.taskType, //任务类型
stage: this.orderSearchForm.stage, //阶段
materialId: this.orderSearchForm.materialId, //材料
putintDocmentCode: this.orderSearchForm.putintDocmentCode, //甲方投产输入文件(编号)
guestName: this.orderSearchForm.guestName, //甲方客户
printSupply: this.orderSearchForm.printSupply, //3D打印
functionaryOffice: this.orderSearchForm.functionaryOffice, //厂内责任机关
mainDepartmentId: this.orderSearchForm.mainDepartmentId //厂内责任主体部门
})
.then(res => {
this.loading = false;
this.total = res.result.totalCount;
res.result.items.forEach(u => {
if (u.orderQuotationStatus === 0) {
u._disabled = false;
} else {
u._disabled = true;
}
});
this.dataTable = res.result.items;
this.materialId = res.result.items[0].materialId;
});
}
if (this.selectName == "record") {
this.recordColumn = [
{
type: "index",
width: 65,
title: "序号",
align: "center"
},
{
title: "报价单编号",
key: "code",
align: "center",
render: (h, params) =>
h("div", [
h(
"a",
{
on: {
click: () => {
this.infoDetail(params.row);
}
}
},
params.row.code
)
])
},
{
title: "报价时间",
key: "creationTime",
align: "center"
},
{
title: "制单人",
key: "maker",
align: "center"
},
{
title: "发往单位",
key: "postCompany",
align: "center"
},
{
title: "联系人",
key: "contactUser",
align: "center"
},
{
title: "电话",
key: "contactTel",
align: "center"
},
{
title: "报价状态",
key: "status",
align: "center",
width: 120,
filters: this.getArry(
this.$store.getters.dictionaryByKey(
"plan.quotation.orderQuotationStatusName"
)
),
filterMethod(value, row) {
let statusChar = row.status + "";
return statusChar.indexOf(value) > -1;
},
render: (h, params) => {
return h(
"a",
{
// on: {
// click: () => {
// this.statusData(params.row)
// }
// }
},
[
h("state", {
props: {
code: "plan.quotation.orderQuotationStatusName",
type: "text",
value: params.row.status + ""
}
})
]
);
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
this.loading = false;
this.newJsData = res.result;
this.cxResult = res.result;
this.newJsData.forEach(el => {
return (el.id = null);
});
this.$refs.metalQuotation.formItem.quotationId = row.id;
this.$refs.metalQuotation.formItem.postCompany = this.cxResult[0].postCompany;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].contactUser;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].contactTel;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].quotationType;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].remark;
this.$refs.photosensitive.formItem.postCompany = this.cxResult[0].postCompany;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].contactUser;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].contactTel;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].quotationType;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].remark;
this.$refs.metalQuotation.formItem.quotationId = row.id;
})
.catch(error => {
this.$Message.error("请求失败");
});
},
// 分页
pageChange(num) {
this.current = num;
this.tableTata(this.selectName);
},
pageSizeChange(limit) {
//console.log(limit)
this.pageSize = limit;
this.tableTata(this.selectName);
},
//详情
infoDetail(row) {
//判断报价单类型是金属还是光敏
if (row.quotationType == "AlSi10Mg") {
this.$refs.metalDetail.modalShow = true;
}
},
{
title: "备注",
key: "remark",
align: "center"
},
{
title: "操作",
key: "action",
width: 150,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
params.row.status === 3 || params.row.status === 4
? "op"
: params.row.status === 1
? "op"
: "",
{
attrs: {
oprate: "detail"
},
on: {
click: () => {
if (params.row.status === 1) {
this.resetGeneration(params.row);
} else {
this.requote(params.row);
}
}
}
},
(params.row.status === 3 || params.row.status === 4) &&
!params.row.upCode
? "重新报价"
: params.row.status === 1 && this.status == 0
? "送审"
: ""
)
]);
if (row.quotationType == "光敏树脂") {
this.$refs.photosensitiveDetail.modalShow = true;
}
}
];
this.$http.quotation
.quotationRecordList({
pageSize: this.pageSize,
current: this.current,
mesCode: this.mesCodeT
})
.then(res => {
console.log(res);
this.loading = false;
this.recordTable = res.result.items;
this.total = res.result.totalCount;
// recordTable
})
.catch(error => {});
}
},
updateColumn(checkShowColumn) {
this.newColumn = checkShowColumn;
},
//订单报价按钮
orderQuotation() {
// 通过甲方客户判断定价报单的类型(类型分为三种情况:铺粉、光敏、外协)
this.newJsData = [];
if (this.Party === true) {
this.bjData.forEach(data => {
let obj = {
mesCode: data.mesCode,
orderId: data.id,
productName: data.productName,
num: data.quantity,
sizeCheckPrice: ""
};
this.newJsData.push(obj);
this.materialId = data.materialId;
});
//用料id判断订单报价为铺粉还是光敏
if (this.materialId == 2) {
//光敏
this.$refs.photosensitive.modalShow = true;
this.$refs.photosensitive.formItem = {};
this.$refs.photosensitive.formItem.quotationType = "光敏树脂";
} else {
//铺粉
this.$refs.metalQuotation.modalShow = true;
this.$refs.metalQuotation.formItem = {};
this.$refs.metalQuotation.formItem.quotationType = "AlSi10Mg";
}
} else {
this.$Message.info("请选择至少一个订单,并为同一个甲方客户");
}
},
//报价状态
statusData(row) {
this.userId = this.$store.state.userInfo.userId;
if (row.status === 2) {
if (row.auditUser == this.userId) {
//待审核
this.modalDai = true;
this.rows = {};
this.rows = row;
} else {
this.$Message.error("您不是当前数据处理的指定人员");
}
} else if (row.status === 1) {
if (row.creatorUserId == this.userId) {
//待送审
this.modalSong = true;
this.rows = {};
this.rows = row;
} else {
this.$Message.error("您不是当前数据的创建人员,不能进行送审");
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
console.log(res);
this.resultDetils = res.result;
console.log(this.resultDetils);
})
.catch(error => {
this.$Message.error("请求失败");
});
},
//重新送审
resetGeneration(row) {
//判断报价单类型是金属还是光敏 当前除了ALSi10Mg的类型以外,其他的都是光敏树脂型
if (row.quotationType == "AlSi10Mg") {
this.$refs.metalQuotationExamine.modalShow = true;
}
if (row.quotationType == "光敏树脂") {
this.$refs.photosensitiveExamine.modalShow = true;
}
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
this.zPhotosensitive.result = res.result;
})
.catch(error => {
this.$Message.error("请求失败");
});
},
//得到数据字典对应的label和value,用于table排序
getArry(arryList) {
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
}
}
},
dal() {
var data = {
id: this.rows.id,
status: this.formItem.animal,
auditIdea: this.formItem.auditIdea,
orderIds: this.rows.orderIds.join(",")
};
this.$http.quotation
.submitCensorship(data)
.then(res => {
this.modalDai = false;
this.tableTata(this.selectName);
})
.then(error => {
this.$Message.error(error.result.message);
});
},
dalSong() {
var data = {
auditUser: parseInt(this.model1),
id: this.rows.id,
status: this.rows.status + 1,
orderIds: this.rows.orderIds.join(",")
};
this.$http.quotation.submitCensorship(data).then(res => {
this.modalSong = false;
this.tableTata(this.selectName);
});
},
//高级搜索
advancedSearch() {
this.$refs.searchBox.modalShow = true;
},
gSearch(data) {
this.orderSearchForm = data;
this.$refs.searchBox.modalShow = false;
this.tableTata(this.selectName);
},
//搜索查询
easySearch(val) {
this.mesCode = val;
this.simpleSearch = "SimpleSearch";
this.tableTata(this.selectName);
},
//报价记录搜索
jlSearch(val) {
console.log(val);
this.mesCodeT = val;
// this.simpleSearch = 'SimpleSearch'
this.tableTata(this.selectName);
},
//重新报价
requote(row) {
this.newJsData = [];
if (row.quotationType == "AlSi10Mg") {
//铺粉
this.$refs.metalQuotation.modalShow = true;
} else if (row.quotationType == "光敏树脂") {
this.$refs.photosensitive.modalShow = true;
}
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
this.loading = false;
this.newJsData = res.result;
this.cxResult = res.result;
this.newJsData.forEach(el => {
return (el.id = null);
});
this.$refs.metalQuotation.formItem.quotationId = row.id;
this.$refs.metalQuotation.formItem.postCompany = this.cxResult[0].postCompany;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].contactUser;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].contactTel;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].quotationType;
this.$refs.metalQuotation.formItem.contactUser = this.cxResult[0].remark;
this.$refs.photosensitive.formItem.postCompany = this.cxResult[0].postCompany;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].contactUser;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].contactTel;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].quotationType;
this.$refs.photosensitive.formItem.contactUser = this.cxResult[0].remark;
this.$refs.metalQuotation.formItem.quotationId = row.id;
})
.catch(error => {
this.$Message.error("请求失败");
});
},
// 分页
pageChange(num) {
this.current = num;
this.tableTata(this.selectName);
},
pageSizeChange(limit) {
//console.log(limit)
this.pageSize = limit;
this.tableTata(this.selectName);
},
//详情
infoDetail(row) {
//判断报价单类型是金属还是光敏
if (row.quotationType == "AlSi10Mg") {
this.$refs.metalDetail.modalShow = true;
}
if (row.quotationType == "光敏树脂") {
this.$refs.photosensitiveDetail.modalShow = true;
}
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
console.log(res);
this.resultDetils = res.result;
console.log(this.resultDetils);
})
.catch(error => {
this.$Message.error("请求失败");
});
},
//重新送审
resetGeneration(row) {
//判断报价单类型是金属还是光敏 当前除了ALSi10Mg的类型以外,其他的都是光敏树脂型
if (row.quotationType == "AlSi10Mg") {
this.$refs.metalQuotationExamine.modalShow = true;
}
if (row.quotationType == "光敏树脂") {
this.$refs.photosensitiveExamine.modalShow = true;
}
this.$http.quotation
.orderList({
id: row.id
})
.then(res => {
this.zPhotosensitive.result = res.result;
})
.catch(error => {
this.$Message.error("请求失败");
});
},
//得到数据字典对应的label和value,用于table排序
getArry(arryList) {
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
}
}
};
</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