Commit 26eaf6b0 authored by 周远喜's avatar 周远喜

Merge branch 'product' of http://git.mes123.com/zhouyx/mes-ui into product

parents de163959 1066dcac
......@@ -1296,6 +1296,9 @@ html [type=button] {
.detail .ivu-row .filed-col p .html p{
margin: 0 10px 0 0;
}
.con_bord {
margin: 10px 20px;
}
.lay100 {
height: calc(100vh - 105px);
background-color: #f5f6fa;
......@@ -1303,7 +1306,7 @@ html [type=button] {
padding: 5px 5px 0px 10px;
}
.con_bord {
// margin: 15px 32px;
margin: 10px 20px;
box-shadow: #c7c7c7 1px 2px 7px 3px;
}
background: rgba(245, 246, 250, 1);
......
......@@ -130,7 +130,7 @@ export default {
search: {
pageIndex: 1,
pageSize: 20,
conditions: []
conditions: [],
},
pageSizeOpts: [20, 50, 100],
tableHeight: 0,
......
......@@ -399,8 +399,8 @@ export default {
z-index: 99999;
left: 56%;
top: 57%;
min-width: 1084px;
// min-width: 777px;
// min-width: 1084px;
min-width: 777px;
min-height: 300px;
box-shadow: 0px 5px 17px 5px rgba(0, 0, 0, 0.28);
background: #f5f6fa;
......
......@@ -14,7 +14,13 @@ export default {
getdetail(params) {
return Api.get(`${apsUrl}/scheduletotal/getdetail`, params);
},
processschemedispatch(params) {
processschemedispatch(params) { //插单检查后,“否”不操作,“是”:如果result.retcode=1,调用:
return Api.post(`${apsUrl}/apspoolappservices/processschemedispatch`, params);
},
checkisinsertandbadjust(params) { //点击下发是调用接口;方案下发前的插单检查,返回后弹框,提示内容未result.retmsg
return Api.post(`${apsUrl}/apspoolappservices/checkisinsertandbadjust`, params);
},
processschemedispatchinsert(params) { //排产方案下发--普通+干扰;如果result.retcode=0,调用:
return Api.post(`${apsUrl}/apspoolappservices/processschemedispatch_insert`, params);
},
}
<style lang="less">
@import './results.less';
@import "./results.less";
</style>
<template>
<div class="results">
......@@ -29,24 +29,24 @@
</div>
</Sider>
<Content class="tab_card_box">
<Tabs class="tab_card" value="name1" type="card" :animated="false">
<TabPane label="结果列表" name="name1">
<resultsList ref="resultsList"/>
</TabPane>
<!-- <TabPane label="结果甘特图" name="name2">结果甘特图</TabPane> -->
<TabPane label="方案对比" name="name3">
<compareList ref="compareList"/>
</TabPane>
<Tabs class="tab_card" v-model="name" type="card" :animated="false" @on-click="clickTab">
<TabPane label="结果列表" name="name1">
<resultsList ref="resultsLists" />
</TabPane>
<!-- <TabPane label="结果甘特图" name="name2">结果甘特图</TabPane> -->
<TabPane label="方案对比" name="name3">
<compareList ref="compareList" />
</TabPane>
</Tabs>
<!-- <h4>排产结果</h4>
<div class="btn">
<Button type="primary" @click="parameter">下发</Button> -->
<!-- <Button type="primary">导出</Button>000 -->
<!-- <Button type="primary" icon="ios-redo" @click="comeBlck">返回</Button>
<Button type="primary" @click="parameter">下发</Button>-->
<!-- <Button type="primary">导出</Button>000 -->
<!-- <Button type="primary" icon="ios-redo" @click="comeBlck">返回</Button>
</div>
<div>
<Table :columns="columns" :data="data"></Table>
</div> -->
</div>-->
</Content>
</Layout>
</div>
......@@ -58,14 +58,15 @@ import resultsList from "./result.vue";
import compareList from "./compare.vue";
export default {
components: { resultsList,compareList },
components: { resultsList, compareList },
data() {
return {
isactive: 0,
data: [],
list: [],
id: "",
name:'name1',
id: ""
// columns: [
// {
// type: "expand",
......@@ -150,6 +151,8 @@ export default {
this.orderlist();
},
methods: {
clickTab(name) {
},
orderlist() {
Api.getall()
.then(r => {
......
<style lang="less">
@import './results.less';
@import "./results.less";
</style>
<template>
<div>
<div>
<div class="btn" style="z-index:9999;position:absolute;right:0">
<Button type="primary" @click="parameter">下发</Button>
<!-- <Button type="primary">导出</Button>000 -->
<Button type="primary" icon="ios-redo" @click="comeBlck">返回</Button>
<Button type="primary" @click="parameter" v-show="showNext">下发</Button>
<!-- <Button type="primary">导出</Button>000 -->
<Button type="primary" icon="ios-redo" @click="comeBlck">返回</Button>
</div>
<div>
<Table :columns="columns" :data="data"></Table>
<Table :columns="columns" :data="data"></Table>
</div>
</div>
</div>
</template>
<script>
import Api from "./api";
import expandRow from "./table-expand.vue";
export default {
components: { expandRow },
components: { expandRow },
data() {
return {
isactive: 0,
data: [],
list: [],
showNext: true,
columns: [
{
type: "expand",
......@@ -97,11 +98,11 @@ export default {
key: "plan_qty",
align: "center"
}
],
}
]
};
},
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
await store.dispatch("loadDictionary"); // 加载数据字典
},
components: {},
created() {
......@@ -140,14 +141,49 @@ export default {
},
// 下发
parameter() {
Api.processschemedispatch({
Api.checkisinsertandbadjust({
//方案下发前的插单检查
id: this.id
}).then(r => {
if (r.result) {
this.$Message.success(r.result.retmsg);
this.orderlist();
this.$Modal.confirm({
title: "结果下发",
content: r.result.retmsg,
onOk: () => {
if (r.result.retcode == 1) {
//排产方案下发--普通+干扰
Api.processschemedispatch({
id: this.id
}).then(r => {
if (r.result) {
this.$Message.success(r.result.retmsg);
this.orderlist();
} else {
this.$Message.error("下发失败");
}
});
} else if (r.result.retcode == 0) {
//排产方案下发--有插单
Api.processschemedispatchinsert({
id: this.id
}).then(r => {
if (r.result) {
this.$Message.success(r.result.retmsg);
this.orderlist();
} else {
this.$Message.error("下发失败");
}
});
} else {
this.$Message.error("下发失败");
}
},
onCancel: () => {
this.$Message.info("取消下发");
}
});
} else {
this.$Message.success("下发失败");
this.$Message.info("不能下发");
}
});
},
......@@ -156,16 +192,15 @@ export default {
this.$router.push({ path: "/aps/aps" });
},
tabChange(name) {
if(name=='technicalcoordination')
{
this.$refs.technicalcoordination.loadchangelist();
}
if(name=='unqualifiedorder'){
this.$refs.unqualifiedorder.loadchangelist();
if (name == "technicalcoordination") {
this.$refs.technicalcoordination.loadchangelist();
}
},
if (name == "unqualifiedorder") {
this.$refs.unqualifiedorder.loadchangelist();
}
}
}
}
};
</script>
<style lang="less">
</style>
<template>
<div>
<Button type="dashed">新增</Button>
</div>
</template>
\ No newline at end of file
<template>
<div>
<Button type="dashed">新增</Button>
</div>
</template>
\ No newline at end of file
<template>
<div>
<Button type="dashed">详情</Button>
</div>
</template>
\ No newline at end of file
<template>
<Layout class="quotation">
<!-- 左侧树 -->
<Sider hide-trigger :style="{background: '#fff'}" width="260">
<!-- <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">
</Sider> -->
<Sider hide-trigger v-if="showMenu" class="menu_side" width="300">
<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>
</div> -->
</div>
<!-- 右侧内容 -->
<Content class="content" :class="!showMenu?'con_bord':''">
<Tabs v-model="selectName" @on-click="handleClick">
......@@ -397,13 +397,16 @@ export default {
this.showMenu = true;
},
productSearch(id, item, ids) {
let where = { productId: { op: "In", value: ids } };
this.$refs.grid.reload(where);
// 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);
},
......
<template>
<div>
<Layout class="lay100">
<!-- <div> -->
<!-- 左侧树 -->
<div class="zh-tree" :style="{height:treeHeight+'px'}">
<h3 class="zh-title">产品结构</h3>
<!-- <Sider hide-trigger v-if="showMenu" class="menu_side" width="300"> -->
<!-- <div class="zh-tree" :style="{height:treeHeight+'px'}"> -->
<!-- <h3 class="zh-title">产品结构</h3>
<div class="zh-box">
<Input search placeholder="请输入查询条件" v-model="treeInputSearch" />
......@@ -13,9 +15,18 @@
@on-select-change="selectTreeNode"
></Tree>
</div>
</Sider> -->
<!-- </div> -->
<Sider hide-trigger v-if="showMenu" class="menu_side" width="300">
<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>
</div>
<!-- 右侧内容 -->
<div class="content-right">
<Content class="con" :class="!showMenu?'con_bord':''">
<div class="title_box">
<div class="table_title">
<div style="width:100px; float:left">
......@@ -235,7 +246,7 @@
@on-page-size-change="pageSizeChange"
/>
</div>
</div>
</Content>
<Modal
v-model="modal1"
:title="gymodaltitle"
......@@ -339,19 +350,18 @@
>
<processview ref="processview"></processview>
</Modal>
</div>
</Layout>
</template>
<script>
import DrawerSet from "./components/drawerSet.vue"; //抽屉列表
import TreeType from "./components/treeType.vue"; //左侧树列表
import orderMaterial from "./components/orderMaterial.vue"; //料单
import processMain from "./processMain.vue";
import processNew from "../Process/processNew.vue";
import service from "@/plugins/request";
import ProductTree from "@/components/page/productTree.vue"; //左侧树列表
import OrderSendReview from "./components/orderSendReview"; //送审页面
import processview from "../Process/processview.vue";
import sendAudit from "../Process/sendAudit.vue";
......@@ -359,7 +369,7 @@ import QS from "querystring";
export default {
components: {
DrawerSet,
TreeType,
ProductTree,
processMain,
processNew,
orderMaterial,
......@@ -369,6 +379,7 @@ export default {
},
data() {
return {
showMenu: true,
isview: false,
isdview: false,
ismview: false,
......@@ -687,7 +698,7 @@ export default {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.initTree();
// this.initTree();
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
......@@ -698,7 +709,7 @@ export default {
};
},
computed: {
searchList() {
searchList() {//产品树左侧
let nodeList = this.treeData;
var text = this.treeInputSearch;
var newNodeList = [];
......@@ -720,6 +731,21 @@ export default {
}
},
methods: {
onHide() {
this.showMenu = false;
},
showMenuFn() {
this.showMenu = true;
},
productSearch(id, item, ids) {
if (ids.length > 0) {
this.orderSearchForm.productId = ids.join(",");
} else {
this.orderSearchForm.productId = "-1";
this.orderSearchForm.productName = "";
}
this.easySearch(this.orderSearchForm);
},
// tab切换
tabChange(name) {
this.tabstatus = name;
......@@ -765,12 +791,9 @@ export default {
deleted() {},
// 分页
pageChange(num) {
//console.log(num);
this.page = num;
this.orderSearchForm.SkipCount =
(num - 1) * this.orderSearchForm.MaxResultCount;
console.log(this.orderSearchForm.SkipCount);
this.orderSearchForm.SkipCount = (num - 1) * this.orderSearchForm.MaxResultCount;
// console.log(this.orderSearchForm.SkipCount);
this.loaddata(this.orderSearchForm);
},
pageSizeChange(limit) {
......@@ -780,23 +803,15 @@ console.log(this.orderSearchForm.SkipCount);
this.loaddata(this.orderSearchForm);
},
loaddata(params) {
var url = "";
// if(params==1||params==2){
// url =
// `${PlanUrl}/mesorder/getpagedmesordersforpdefm?ProcessUserType=` + params
// }else{
var url = "";
this.orderSearchForm.simpleSearch= typeof params == "string" ? params : params.simpleSearch, //快速搜索
this.orderSearchForm.ProcessUserType= this.tabstatus,
this.orderSearchForm.ProductingPreparation= this.ProductingPreparationPeople,
this.orderSearchForm.RoutingSetStatus= this.orderSearchForm.RoutingSetStatus
url =
`${PlanUrl}/mesorder/getpagedmesordersforpdefm?` +
QS.stringify(this.orderSearchForm);
// }
service.get(`${url}`).then(response => {
// console.log(response)
......@@ -847,33 +862,34 @@ console.log(this.orderSearchForm.SkipCount);
}
}
},
initTree() {
var sumData = [];
this.$http.order.getallselecttree().then(res => {
if (res.result) {
for (var i = 0; i < res.result.length; i++) {
sumData = sumData.concat(res.result[i]);
}
this.treeData = sumData;
this.data2 = JSON.parse(JSON.stringify(sumData));
} else {
this.$Message.error("加载产品树失败!");
}
});
},
selectTreeNode(value) {
if (value.length > 0) {
this.ids = [];
this.getAllIds(value);
if (this.ids.length > 0) {
this.orderSearchForm.productId = this.ids.join(",");
} else {
this.orderSearchForm.productId = "-1";
this.orderSearchForm.productName = "";
}
this.easySearch(this.orderSearchForm);
}
},
// initTree() {
// var sumData = [];
// this.$http.order.getallselecttree().then(res => {
// if (res.result) {
// for (var i = 0; i < res.result.length; i++) {
// sumData = sumData.concat(res.result[i]);
// }
// this.treeData = sumData;
// this.data2 = JSON.parse(JSON.stringify(sumData));
// } else {
// this.$Message.error("加载产品树失败!");
// }
// });
// },
// selectTreeNode(value) {
// console.log(value)
// if (value.length > 0) {
// this.ids = [];
// this.getAllIds(value);
// if (this.ids.length > 0) {
// this.orderSearchForm.productId = this.ids.join(",");
// } else {
// this.orderSearchForm.productId = "-1";
// this.orderSearchForm.productName = "";
// }
// this.easySearch(this.orderSearchForm);
// }
// },
getAllIds(trees) {
trees.forEach((data, index) => {
var that = this;
......
......@@ -241,12 +241,14 @@ export default {
SkipCount: 1,
MaxResultCount: 10,
orderSearchForm: {
status: 0,
SimpleSearch: '',
productId: null, //产品id
productName: '', //产品名称
taskType: '', //任务类型
stage: '', //阶段
materialId: '', //材料
quantity: 1, //数量
guestName: '', //甲方客户
printSupply: '', //3D打印承制单位
functionaryOffice: '', //厂内责任机关
......@@ -268,7 +270,9 @@ export default {
projectNumber: "", //项目号
batchNumber: "", //批次号
urgencyLevel: null //紧急程度
urgencyLevel: null, //紧急程度
SkipCount: 1,
MaxResultCount: 10
},
mColumn:[
{ type: 'expand',width: 60,
......@@ -352,19 +356,21 @@ content="开工"
});
},
// 分页
pageChange(pageNum) {
let pageData = this.search;
pageData.SkipCount = (pageNum - 1) * this.orderSearchForm.MaxResultCount
pageData.MaxResultCount = (pageNum - 1) * this.orderSearchForm.MaxResultCount
// pageData.pageIndex = pageNum
this.laodePage(pageData)
},
pageSizeChange(val) {
let pageData = this.search;
pageData.SkipCount = 0
pageData.MaxResultCount = val
this.laodePage(pageData)
},
pageChange(pageNum) {
this.orderSearchForm.SkipCount =
(pageNum - 1) * this.orderSearchForm.MaxResultCount
// pageData.pageIndex = pageNum
this.laodePage(this.orderSearchForm)
},
pageSizeChange(val) {
this.orderSearchForm.SkipCount = 0
this.orderSearchForm.MaxResultCount = val
this.laodePage(this.orderSearchForm)
},
laodePage(pageData){
let url = `${PlanUrl}/orderexecute/waitexecuteorderlist`;
service.post(`${url}`,pageData).then(res => {
......@@ -373,8 +379,11 @@ content="开工"
});
},
// 搜索
tableSearch() {
},
tableSearch() {
this.orderSearchForm.SkipCount = 0
this.orderSearchForm.SimpleSearch = this.searchIterms
this.laodePage(this.orderSearchForm)
},
searchModel(){
this.showModel = true;
},
......
<template>
<div class="new-equipment">
<Modal v-model="modalShow" title="新增设备" width="1000" :mask-closable="false">
<Modal v-model="modalShow" :title="title" width="1000" :mask-closable="false">
<Form :model="formItem" :label-width="100" style="margin:10px;" :rules="ruleValidate">
<Row :gutter="16">
<Col span="11">
......@@ -55,39 +55,19 @@
<inputFile ref="refqcFile" v-model="imgName" :parms="qcfileparms" files />
</FormItem>
</Col>
<!-- <Col span="11" offset="1">
<FormItem label="是否关重" prop="isimportant">
<Select v-model="isimportant">
<Option :value="1"></Option>
<Option :value="2"></Option>
</Select>
<Col :span="12">
<FormItem label="属性">
<Checkbox v-model="property">排产资源</Checkbox>
</FormItem>
</Col> -->
</Col>
</Row>
<Row :gutter="16">
<!-- <Col span="11">
<FormItem label="能力系数">
<InputNumber
:min="0"
v-model="formItem.capability_value"
size="large"
style="width:240px"
></InputNumber>
</FormItem>
</Col> -->
<Col span="11" offset="1">
<Col span="12">
<FormItem label="位置" prop="location">
<Input v-model="formItem.location" placeholder="请输入位置"></Input>
</FormItem>
</Col>
</Row>
<Row :gutter="16">
<Col :span="12">
<FormItem label="属性">
<Checkbox v-model="property">排产资源</Checkbox>
</FormItem>
</Col>
</Row>
</Form>
<div slot="footer">
<!-- class="footers" -->
......@@ -133,7 +113,7 @@ export default {
shop_id: "",
shop_name: "",
// isimportant: 2,
location: "",
location: ""
// capability_value: 1
},
property: true,
......
......@@ -17,10 +17,10 @@
</FormItem>
</Col>
<Col :span="8">
<FormItem v-if="title=='新增'" :label="l('code')" prop="code">
<!-- <FormItem v-if="title=='新增'" :label="l('code')" prop="code">
<Input v-model="entity.code"></Input>
</FormItem>
<FormItem v-else-if="title=='克隆'" :label="l('code')" prop="code">
</FormItem> v-else-if="title=='克隆'"-->
<FormItem :label="l('code')" prop="code">
<Input disabled v-model="entity.code"></Input>
</FormItem>
</Col>
......@@ -201,10 +201,10 @@ export default {
mounted() {
this.parms.eid = this.$u.guid();
this.$refs.refFile.intFiles();
// console.log(this.title)
// console.log(this.eid)
if (this.eid > 0) {
this.load(this.eid);
}else{
this.getCodNumber();
}
},
methods: {
......@@ -212,7 +212,7 @@ export default {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
if(this.title=='克隆'){
if(this.title=='克隆'){
this.$Message.success("克隆");
this.getcloneData()
}else{
......@@ -290,16 +290,16 @@ export default {
this.entity.isEffect = parseInt(r.result.isEffect);
this.entity.id = 0;
});
if(this.title=='克隆'){
this.getCodNumber();
},
getCodNumber(){
Api.getCodeNumber({code:'GY',count:'1'}).then( r => {
// console.log(r)
if(r.success){
this.entity.code = r.result[0]
}else{
this.$Message.error("生成编号失败");
}
})
}
},
l(key) {
key = "routingHeader" + "." + key;
......
......@@ -70,7 +70,7 @@ export default {
});
}
},
{ key: "taskSeq", title: this.l("taskSeq"), align: "left",width:80 },
{ key: "taskSeq", title: this.l("taskSeq"), align: "left",width:100,sortable:true },
{
key: "name",
title: this.l("name"),
......
......@@ -49,8 +49,9 @@ export default {
"checkParams,standard",
value: null
},
routingHeaderId: { op: "Equal", value: -1 }
routingHeaderId: { op: "Equal", value: -1 },
},
sortType: 'normal',
modal: false,
title: "新增",
detail: null,
......@@ -78,7 +79,8 @@ export default {
title: this.l("routingDetailNo"),
align: "left",
high: true,
width: 80
width: 100,
sortable:true
},
{
key: "routingDetailName",
......@@ -357,7 +359,7 @@ export default {
l(key) {
let vkey = "routing_qc_card" + "." + key;
return this.$t(vkey) || key;
}
},
}
};
</script>
......
......@@ -112,7 +112,7 @@
</Col>
<Col :span="12" v-if="condition.creatorUserId.show">
<FormItem :label="l('creatorUserId')" prop="creatorUserId">
<Input v-model="condition.creatorUserId.value"></Input>
<UserSelect v-model="condition.creatorUserId.value"></UserSelect>
</FormItem>
</Col>
<Col :span="12" v-if="condition.lastModificationTime.show">
......@@ -122,7 +122,7 @@
</Col>
<Col :span="12" v-if="condition.lastModifierUserId.show">
<FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId">
<Input v-model="condition.lastModifierUserId.value"></Input>
<UserSelect v-model="condition.lastModifierUserId.value"></UserSelect>
</FormItem>
</Col>
<Col :span="12" v-if="condition.deletionTime.show">
......
......@@ -78,7 +78,8 @@ export default {
title: this.l("routingDetailNo"),
align: "left",
high: true,
width: 80
width: 100,
sortable:true
},
{
key: "routingDetailName",
......
......@@ -121,30 +121,7 @@ export default {
uId: "",
columns: [
{ key: "id", title: this.$t("id"), hide: true, align: "left" },
{
key: "creationTime",
title: this.$t("creationTime"),
align: "left",
hide: true
},
{
key: "creatorUserId",
title: this.$t("creatorUserId"),
align: "left",
hide: true
},
{
key: "lastModificationTime",
title: this.$t("lastModificationTime"),
align: "left",
hide: true
},
{
key: "lastModifierUserId",
title: this.$t("lastModifierUserId"),
align: "left",
hide: true
},
{ key: "classId", title: this.l("classId"), align: "left", hide: true },
{
key: "unicode",
......@@ -244,6 +221,30 @@ export default {
width: 140,
high: true,
code: "Process.Status"
},
{
key: "creationTime",
title: this.$t("creationTime"),
align: "left",
hide: true
},
{
key: "creatorUserId",
title: this.$t("creatorUserId"),
align: "left",
hide: true
},
{
key: "lastModificationTime",
title: this.$t("lastModificationTime"),
align: "left",
hide: true
},
{
key: "lastModifierUserId",
title: this.$t("lastModifierUserId"),
align: "left",
hide: true
},
{
title: "操作",
......
This diff is collapsed.
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