Commit afce80ad authored by 周远喜's avatar 周远喜

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

parents c7a391f1 add30ba4
...@@ -1432,3 +1432,6 @@ html [type=button] { ...@@ -1432,3 +1432,6 @@ html [type=button] {
.gdShow { .gdShow {
box-shadow: 0px 0px 15px #333; box-shadow: 0px 0px 15px #333;
} }
.bgDDD{
background:#DDD
}
\ No newline at end of file
...@@ -146,6 +146,14 @@ export default { ...@@ -146,6 +146,14 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
format: {
type: Function,
default: null
},
initsearch: {
type: Function,
default: null
},
lazy: { lazy: {
//懒加载设置,设置为真时候,默认不加载数据。 //懒加载设置,设置为真时候,默认不加载数据。
type: Boolean, type: Boolean,
...@@ -223,7 +231,8 @@ export default { ...@@ -223,7 +231,8 @@ export default {
return ["table", "card", "list"].indexOf(value) !== -1; return ["table", "card", "list"].indexOf(value) !== -1;
} }
}, },
span: {//栅格数 span: {
//栅格数
type: Number, type: Number,
default: 24 default: 24
}, },
...@@ -231,9 +240,10 @@ export default { ...@@ -231,9 +240,10 @@ export default {
rowKey: { rowKey: {
type: [String, Number] type: [String, Number]
}, },
gutter:{//间距 gutter: {
type:Number, //间距
default:40 type: Number,
default: 40
} }
}, },
created() { created() {
...@@ -260,7 +270,7 @@ export default { ...@@ -260,7 +270,7 @@ export default {
this.easySearch(); this.easySearch();
} }
if (this.height === 0) { if (this.height === 0) {
this.$nextTick(()=>{ this.$nextTick(() => {
this.tableHeight = this.$refs.main.offsetHeight; this.tableHeight = this.$refs.main.offsetHeight;
window.onresize = () => { window.onresize = () => {
///浏览器窗口大小变化 ///浏览器窗口大小变化
...@@ -268,7 +278,7 @@ export default { ...@@ -268,7 +278,7 @@ export default {
this.tableHeight = this.$refs.main.offsetHeight; this.tableHeight = this.$refs.main.offsetHeight;
})(); })();
}; };
}) });
} else { } else {
this.tableHeight = this.height; this.tableHeight = this.height;
} }
...@@ -285,8 +295,16 @@ export default { ...@@ -285,8 +295,16 @@ export default {
this.tableHeight = window.innerHeight - this.firstY - 60; this.tableHeight = window.innerHeight - this.firstY - 60;
} }
if (this.action) { if (this.action) {
//条件初始化处理。
if(this.initsearch){
this.initsearch(this.search)
}
this.$api.post(this.action, this.search).then(r => { this.$api.post(this.action, this.search).then(r => {
if (this.format) {
this.list = this.format(r.result.items);
} else {
this.list = r.result.items; this.list = r.result.items;
}
this.search.total = r.result.totalCount || r.result.count; this.search.total = r.result.totalCount || r.result.count;
}); });
} }
...@@ -380,7 +398,11 @@ export default { ...@@ -380,7 +398,11 @@ export default {
this.$emit("on-drag-drop", a, b); this.$emit("on-drag-drop", a, b);
}, },
easySearch() { easySearch() {
if (this.conditions &&this.conditions.keys&& this.conditions.keys.default) { if (
this.conditions &&
this.conditions.keys &&
this.conditions.keys.default
) {
//判断没有传入条件的用默认的查询 //判断没有传入条件的用默认的查询
this.conditions.keys.value = this.keys; this.conditions.keys.value = this.keys;
} }
...@@ -486,11 +508,13 @@ export default { ...@@ -486,11 +508,13 @@ export default {
if (u.type == "user") { if (u.type == "user") {
u.render = (h, params) => { u.render = (h, params) => {
let values = u.key; let values = u.key;
if (params.row[values]) {
return h("User", { return h("User", {
props: { props: {
value: params.row[values] value: params.row[values]
} }
}); });
}
}; };
} }
if (u.type == "date" || u.type == "dateTime") { if (u.type == "date" || u.type == "dateTime") {
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
</dd> </dd>
</dl> </dl>
</div> </div>
</div> </div>
</div> </div>
...@@ -53,13 +52,17 @@ ...@@ -53,13 +52,17 @@
clearable clearable
filterable filterable
> >
<Option v-for="item in dic" :value="item.value" :key="item.value" :label="item.label"> <Option
v-for="item in datas?datas:dic"
:value="item.value"
:key="item.value"
:label="item.label"
>
<div> <div>
<Icon :type="item.gender == 1 ? 'ios-man' : 'ios-woman'" /> {{ item.label }}
{{ item.label }}( <span style="color:#c3c3c3" v-if="item.cardNo">({{ item.cardNo }})</span>
<span style="color:#c3c3c3">{{ item.cardNo }}</span>)
<br /> <br />
<span style="color:#c3c3c3">{{ item.departmentTitle }}</span> <span style="color:#c3c3c3" v-if="item.departmentTitle">{{ item.departmentTitle }}</span>
</div> </div>
</Option> </Option>
</Select> </Select>
...@@ -111,6 +114,11 @@ export default { ...@@ -111,6 +114,11 @@ export default {
roleTitle: { roleTitle: {
type: String, type: String,
default: "" default: ""
},
datas: {
//自定义用户数据
type: Array,
default: null
} }
}, },
methods: { methods: {
...@@ -131,18 +139,18 @@ export default { ...@@ -131,18 +139,18 @@ export default {
}) })
.then(r => { .then(r => {
this.data = r.result; this.data = r.result;
if(this.theme=="list"){ if (this.theme == "list") {
this.departmentGroup(); this.departmentGroup();
} }
}); });
}, },
departmentGroup() { departmentGroup() {
var group = []; var group = [];
var users=this.$u.clone(this.data); var users = this.$u.clone(this.data);
if(this.name&&this.name.length>0){ if (this.name && this.name.length > 0) {
users.map(u=>{ users.map(u => {
u.checked=this.name.indexOf(u.id)>-1; u.checked = this.name.indexOf(u.id) > -1;
}) });
} }
group = this.$u.group(users, u => { group = this.$u.group(users, u => {
return u.departmentId; return u.departmentId;
...@@ -183,12 +191,12 @@ export default { ...@@ -183,12 +191,12 @@ export default {
this.listSetValue(); this.listSetValue();
}, },
//list 时,设置值。 //list 时,设置值。
listSetValue(){ listSetValue() {
var ids=[]; var ids = [];
this.checkedItems.map(u=>{ this.checkedItems.map(u => {
ids.push(u.id) ids.push(u.id);
}) });
this.$emit("on-change",ids); this.$emit("on-change", ids);
}, },
checkAll(item, i) { checkAll(item, i) {
item.children.map(u => { item.children.map(u => {
...@@ -207,12 +215,27 @@ export default { ...@@ -207,12 +215,27 @@ export default {
} else { } else {
if (!this.multiple) { if (!this.multiple) {
//单选时返回信息 //单选时返回信息
if (this.datas && this.datas.length > 0) {
var item2 = this.datas.filter(u => u.value == this.value);
if (item2 && item2[0]) {
items.push(item2[0]);
}
} else {
var item1 = this.dic.filter(u => u.value == this.value); var item1 = this.dic.filter(u => u.value == this.value);
if (item1 && item1[0]) { if (item1 && item1[0]) {
items.push(item1[0]); items.push(item1[0]);
} }
}
} else { } else {
//复选时返回 //复选时返回
if (this.datas && this.datas.length > 0) {
this.value.forEach(v => {
var item3 = this.dic.filter(u => u.value == v);
if (item3 && item3[0]) {
items.push(item3[0]);
}
});
} else {
this.value.forEach(v => { this.value.forEach(v => {
var item = this.dic.filter(u => u.value == v); var item = this.dic.filter(u => u.value == v);
if (item && item[0]) { if (item && item[0]) {
...@@ -221,6 +244,7 @@ export default { ...@@ -221,6 +244,7 @@ export default {
}); });
} }
} }
}
return items; return items;
}, },
...@@ -284,6 +308,11 @@ export default { ...@@ -284,6 +308,11 @@ export default {
this.getselectuser(v); this.getselectuser(v);
}, },
deep: true deep: true
},
datas(v) {
if (v) {
//alert(JSON.stringify(v))
}
} }
} }
}; };
......
<template> <template>
<div> <div style="z-index:200">
<viewer :options="options" :images="images" @inited="inited" class="viewer" ref="viewer"> <viewer :options="options" :images="images" @inited="inited" class="viewer" ref="viewer">
<template slot-scope="scope"> <template slot-scope="scope">
<figure class="images"> <figure class="images">
......
...@@ -1468,7 +1468,7 @@ export default { ...@@ -1468,7 +1468,7 @@ export default {
creator:'创建人', creator:'创建人',
content:'内容', content:'内容',
filePath:'文件路径', filePath:'文件路径',
filePaths:'多个文件路径', filePaths:'文件图片',
dispatchId:'工单id', dispatchId:'工单id',
routingDetailId:'工序id', routingDetailId:'工序id',
routingHeaderId:'工艺规程id', routingHeaderId:'工艺规程id',
...@@ -1489,5 +1489,30 @@ export default { ...@@ -1489,5 +1489,30 @@ export default {
description:'描述', description:'描述',
levelNum:'编码分类层数', levelNum:'编码分类层数',
codeLength:'编码分类位数', codeLength:'编码分类位数',
},
//转续列表
order_execute_handon:{
dispatchId:'工单id',
currentUserId:'当前操作人',
handonUserId:'转序人',
status:'状态',
currentDetailId:'工序id',
nextDetailId:'下道工序id',
remark:'备注',
finishTime:'工单完成时间',
productIdStr:'交接判定产品id字符串',
actualHandonUser:'实际交接人',
handonCardNo:'交接人刷卡号',
currentDetailName:'工序名称',
nextDetailName:'下道工序名称',
productName:'产品名称',
drawnNumber:'图号',
batchNumber:'批次号',
handonTime:'接收时间',
handonNo:'交接单号',
handonCount:'交接数量',
qualifiedCount:'合格数量',
currentUserName:'交接人名称',
handonUserName:'接收人名称',
} }
} }
...@@ -77,10 +77,10 @@ export default { ...@@ -77,10 +77,10 @@ export default {
password password
}).then(r => { }).then(r => {
if (r > 0) { if (r > 0) {
this.$Message.success("登成功!"); this.$Message.success("登成功!");
this.initUserInfo(r); this.initUserInfo(r);
} else { } else {
this.$Message.error("登失败!"); this.$Message.error("登失败!");
} }
}); });
} }
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</div> </div>
<!-- <div class="page-account-top-desc tc">SaaS MES 制造执行系统</div> --> <!-- <div class="page-account-top-desc tc">SaaS MES 制造执行系统</div> -->
</div> </div>
<h3 class="mb20">用户登</h3> <h3 class="mb20">用户登</h3>
<Login @on-submit="handleSubmit"> <Login @on-submit="handleSubmit">
<UserName name="username" value="" /> <UserName name="username" value="" />
<Password name="password" value="" enter-to-submit /> <Password name="password" value="" enter-to-submit />
...@@ -80,10 +80,10 @@ export default { ...@@ -80,10 +80,10 @@ export default {
password password
}).then(r => { }).then(r => {
if (r > 0) { if (r > 0) {
this.$Message.success("登成功!"); this.$Message.success("登成功!");
this.initUserInfo(r); this.initUserInfo(r);
} else { } else {
this.$Message.error("登失败!"); this.$Message.error("登失败!");
} }
}); });
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<img src="@/assets/images/home/user.png" /> <img src="@/assets/images/home/user.png" />
</div> </div>
<div class="user-text"> <div class="user-text">
<p>你好:张飞,欢迎登MES系统!</p> <p>你好:张飞,欢迎登MES系统!</p>
<p> <p>
<span>xx公司/xx车间xx班组</span> &nbsp &nbsp <span>xx公司/xx车间xx班组</span> &nbsp &nbsp
<span>工艺技术员</span> <span>工艺技术员</span>
......
...@@ -184,7 +184,7 @@ export default { ...@@ -184,7 +184,7 @@ export default {
if (r.result) { if (r.result) {
var arr = r.result; var arr = r.result;
this.checkList = arr.filter(function(item) { this.checkList = arr.filter(function(item) {
delete item["id"]; delete item["id"]; //删除属性id
return item; return item;
}); });
} }
...@@ -201,7 +201,7 @@ export default { ...@@ -201,7 +201,7 @@ export default {
this.checkList.splice(index, 1); this.checkList.splice(index, 1);
} }
}, },
setRow() { setRow(row, index) {
this.$set(this.checkList, index, row); this.$set(this.checkList, index, row);
}, },
addNew() { addNew() {
...@@ -229,12 +229,12 @@ export default { ...@@ -229,12 +229,12 @@ export default {
this.$Message.success("保存成功"); this.$Message.success("保存成功");
this.$emit("on-ok"); this.$emit("on-ok");
} else { } else {
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
} }
}) })
.catch(err => { .catch(err => {
this.disabled = false; this.disabled = false;
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
}); });
} }
}); });
......
...@@ -69,8 +69,9 @@ ...@@ -69,8 +69,9 @@
<template <template
slot-scope="{ row, index }" slot-scope="{ row, index }"
slot="action" slot="action"
v-if="row.fieldType==2||row.fieldType==3" v-if="row.fieldType==2||row.fieldType==3||!row.notEditDelete"
> >
<!-- notEditDelete=true,删除不显示 -->
<a @click="remove(index,row)" style="color:#FF7A8B">删除</a> <a @click="remove(index,row)" style="color:#FF7A8B">删除</a>
</template> </template>
</Table> </Table>
...@@ -197,7 +198,7 @@ export default { ...@@ -197,7 +198,7 @@ export default {
this.checkList.splice(index, 1); this.checkList.splice(index, 1);
} }
}, },
setRow() { setRow(row, index) {
this.$set(this.checkList, index, row); this.$set(this.checkList, index, row);
}, },
addNew() { addNew() {
...@@ -227,12 +228,12 @@ export default { ...@@ -227,12 +228,12 @@ export default {
this.$Message.success("保存成功"); this.$Message.success("保存成功");
this.$emit("on-ok"); this.$emit("on-ok");
} else { } else {
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
} }
}) })
.catch(err => { .catch(err => {
this.disabled = false; this.disabled = false;
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
}); });
} }
}); });
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</a> </a>
</div> </div>
<Content :class="!showMenu?'con_bord':''"> <Content :class="!showMenu?'con_bord':''">
<!-- <Product :parent="parent" /> --> <MasterData ref="dataTable" @on-edit="editRow" />
</Content> </Content>
</Layout> </Layout>
<Modal v-model="modal" :title="title" width="1000" footer-hide :mask-closable="false"> <Modal v-model="modal" :title="title" width="1000" footer-hide :mask-closable="false">
...@@ -69,11 +69,14 @@ ...@@ -69,11 +69,14 @@
</div> </div>
</template> </template>
<script> <script>
// import spareParts from "./spareParts"; import MasterData from "./masterData.vue";
// import Product from "./product";
import Api from "./api"; import Api from "./api";
export default { export default {
name: "", components: {
MasterData
},
name: "classification",
data() { data() {
return { return {
keys: "", keys: "",
...@@ -85,11 +88,7 @@ export default { ...@@ -85,11 +88,7 @@ export default {
curId: 0, curId: 0,
detail: null, detail: null,
showMenu: true, showMenu: true,
parent: { dataList: []
id: null,
parentName: "",
ids: ""
}
}; };
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
...@@ -103,15 +102,19 @@ export default { ...@@ -103,15 +102,19 @@ export default {
//this.$Message.info("展开左侧树") //this.$Message.info("展开左侧树")
this.showMenu = true; this.showMenu = true;
}, },
ok() { ok(row) {
this.loadTree(); this.loadTree();
this.modal = false; this.modal = false;
this.curId = 0; this.curId = 0;
if (row) {
this.dataList.map((e, index) => {
if (e.id == row.id) {
this.$set(this.$refs.dataTable.dataColumns, index, row);
}
});
}
}, },
addNew() { addNew() {
// this.nodeInfo.id = 0;
// let conditions = [];
this.curId = 0; this.curId = 0;
this.title = "新增"; this.title = "新增";
this.detail = () => import("./add"); this.detail = () => import("./add");
...@@ -124,6 +127,10 @@ export default { ...@@ -124,6 +127,10 @@ export default {
this.detail = () => import("./sonAdd"); this.detail = () => import("./sonAdd");
this.modal = true; this.modal = true;
}, },
editRow(row) {
this.nodeInfo = row;
this.edit();
},
edit() { edit() {
if (this.nodeInfo.upId == 0) { if (this.nodeInfo.upId == 0) {
this.detail = () => import("./edit"); this.detail = () => import("./edit");
...@@ -166,9 +173,9 @@ export default { ...@@ -166,9 +173,9 @@ export default {
"span", "span",
{ {
on: { on: {
// click: () => { click: () => {
// this.handleSelect(data); //手动选择树节点 this.handleSelect(data); //手动选择树节点
// }, },
//右键点击事件 //右键点击事件
contextmenu: e => { contextmenu: e => {
e.preventDefault(); e.preventDefault();
...@@ -182,9 +189,32 @@ export default { ...@@ -182,9 +189,32 @@ export default {
data.title data.title
); );
}, },
// handleSelect(data) { handleSelect(data) {
// this.$emit("clickItem", data); let tableData = [];
// }, let obj = {};
let children = 0;
if (data.upId == 0 && data.children.length > 0) {
data.children.forEach(e => {
if (e.children.length > 0) {
children = 1;
} else {
children = 0;
}
obj = {
id: e.id,
name: e.name,
code: e.code,
status: e.status,
children: children,
upId: e.upId,
description: e.description
};
tableData.push(obj);
});
this.dataList = tableData;
this.$refs.dataTable.dataColumns = tableData;
}
},
loadTree() { loadTree() {
let conditions = []; let conditions = [];
Api.list({ conditions: conditions }).then(r => { Api.list({ conditions: conditions }).then(r => {
......
<template>
<div class="master-data">
<Table border :columns="columns" :data="dataColumns" :height="tableHeight"></Table>
</div>
</template>
<script>
import Api from "./api";
export default {
name: "masterData",
data() {
return {
tableHeight: "",
dataColumns: [],
columns: [
// {
// key: "index",
// title: "#",
// align: "left",
// width: 60
// },
{
key: "code",
title: "编码",
align: "left"
},
{
key: "name",
title: "名称",
align: "left"
},
{
key: "status",
title: "状态",
align: "left",
render: (h, params) => {
return h("state", {
props: {
code: "materail.category.status",
type: "text",
value: params.row.status + ""
}
});
}
},
{
key: "banben",
title: "版本",
align: "left"
},
{
key: "description",
title: "描述",
align: "left"
},
{
title: "操作",
key: "action",
width: 260,
align: "left",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.edit(params.row) }
},
"编辑"
),
h(
"op",
{
attrs: { oprate: "delete" },
on: { click: () => this.remove(params.row.id) }
},
params.row.children == 0 ? "删除" : ""
)
]);
}
}
]
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
created() {
this.tableHeight = window.innerHeight - 150;
},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.tableHeight = window.innerHeight - 150;
})();
};
},
methods: {
edit(row) {
this.$emit("on-edit", row);
},
remove(id) {
this.$Modal.confirm({
title: "删除",
content: "<p>您确定要删除吗?</p>",
onOk: () => {
Api.delete(id).then(r => {
if (r.success) {
this.loadTree();
this.$Message.success("删除成功");
}
});
},
onCancel: () => {
this.$Message.success("取消删除");
}
});
}
}
};
</script>
<style lang="less" scoped>
.spare-parts {
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
<template>
<div>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem label="编码" prop="userUnit">
<Input v-model="entity.userUnit" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="名称" prop="taskBased">
<Input v-model="entity.taskBased" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="状态" prop="productName" placeholder="请选择">
<Select v-model="entity.productName" style="width:200px">
<Option value="0">New York</Option>
<Option value="1" disabled>London</Option>
<Option value="2">Sydney</Option>
</Select>
</FormItem>
</Col>
<Col :span="24">
<FormItem label="描述" prop="productName">
<Input v-model="entity.productName" type="textarea" placeholder="请输入..."></Input>
</FormItem>
</Col>
<Col :span="24">
<h4>属性配置</h4>
</Col>
<Col :span="24" style="padding:20px 0 0px 10px;margin-bottom:10px;" class="table-solt">
<Table border :columns="columns" :data="checkList" class="tableCommon">
<template slot-scope="{ row, index }" slot="name">
<Input v-model="row.name" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="require">
<Input v-model="row.require" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="result">
<Input v-model="row.result" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="pash">
<inputFile v-model="row.file" :files="true" :parms="getParams(row.fileId)" />
</template>
<template slot-scope="{ row, index }" slot="remark">
<Input v-model="row.remark" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
</Table>
</Col>
<Col :span="24" style="margin-bottom:20px;">
<Button type="primary" long @click="addNew" class="mt10">添加</Button>
</Col>
<Col :span="24" style="text-align: right;">
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</template>
<script>
export default {
data() {
return {
entity: {},
disabled: false,
columns: [
{
title: "序号",
type: "index",
width: 80,
align: "center"
},
{
title: "检验项目",
key: "name",
align: "center",
slot: "name"
},
{
title: "要求",
key: "require",
align: "center",
slot: "require"
},
{
title: "预测结果",
key: "result",
align: "center",
slot: "result"
}
],
checkList: [],
rules: {
businessName: [{ required: true, message: "必填", trigger: "blur" }],
businessCode: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
methods: {
setRow() {
this.checkList = r.result;
},
addNew() {},
handleSubmit() {
this.$refs.form.validate(v => {});
},
handleClose() {
this.$emit('on-close')
}
}
};
</script>
...@@ -74,12 +74,12 @@ export default { ...@@ -74,12 +74,12 @@ export default {
this.$Message.success("保存成功"); this.$Message.success("保存成功");
this.$emit("on-ok"); this.$emit("on-ok");
} else { } else {
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
} }
}) })
.catch(err => { .catch(err => {
this.disabled = false; this.disabled = false;
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
}); });
} }
}); });
......
...@@ -81,14 +81,14 @@ export default { ...@@ -81,14 +81,14 @@ export default {
.then(r => { .then(r => {
if (r.success) { if (r.success) {
this.$Message.success("保存成功"); this.$Message.success("保存成功");
this.$emit("on-ok"); this.$emit("on-ok",this.entity);
} else { } else {
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
} }
}) })
.catch(err => { .catch(err => {
this.disabled = false; this.disabled = false;
this.$Message.error("保存失败"); this.$Message.error(r.error.message);
}); });
} }
}); });
......
<template>
<div>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem label="编码" prop="code">
<Input v-model="entity.code" placeholder="请输入" disabled></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="名称" prop="name">
<Input v-model="entity.name" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="状态" prop="status" placeholder="请选择">
<Dictionary
code="materail.category.status"
v-model="entity.status"
type="select"
:value="entity.status"
:key="entity.status"
></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="版本" prop="version">
<Input v-model="entity.version" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem label="描述" prop="description">
<Input v-model="entity.description" type="textarea" placeholder="请输入..."></Input>
</FormItem>
</Col>
<Col :span="24" style="text-align: right;">
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</template>
<script>
import Api from "./api";
export default {
props: ["nodeInfo"],
data() {
return {
arr: [],
entity: {
code: 0,
categoryId: this.nodeInfo.categoryId, //左侧树点击的id
customProperties: {},
rootCategoryId: this.nodeInfo.rootCategoryId //左侧树点击的数据的最顶层id
},
disabled: false,
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
// this.tableData();
},
methods: {
tableData() {
let conditions = [
{
conditionalType: "In",
fieldName: "fieldType",
fieldValue: "1,2"
},
{
conditionalType: "Equal",
fieldName: "categoryId",
fieldValue: "0"
}
];
Api.listTable({ conditions: conditions }).then(r => {
if (r.result) {
var arr = r.result;
this.checkList = arr.filter(function(item) {
delete item["id"];
return item;
});
}
});
},
remove(index, row) {
if (row.add == 0) {
//新增的删除,直接删
this.checkList.splice(index, 1);
} else {
row.action = 2; //返回的默认删除,删除后保存在arr数组中,添加标识action = 2,然后点击保存的时候,一起传给后台
this.$set(this.checkList, index, row);
this.arr.push(row);
this.checkList.splice(index, 1);
}
},
setRow(row, index) {
this.$set(this.checkList, index, row);
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
// let categoryDto = this.entity;
// let pro = this.checkList.concat(this.arr);
Api.create(this.entity)
.then(r => {
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error(r.error.message);
}
})
.catch(err => {
this.disabled = false;
this.$Message.error(r.error.message);
});
}
});
},
handleClose() {
this.$emit("on-close");
}
}
};
</script>
import Api from '@/plugins/request'
export default {
index:`${systemUrl}/material/paged`,
paged(params){
return Api.post(`${systemUrl}/material/paged`,params);
},
list(params){
return Api.post(`${systemUrl}/category/list`,params);
},
get(params){
return Api.get(`${systemUrl}/material/get`,params);
},
create(params){
return Api.post(`${systemUrl}/material/create`,params);
},
update(params){
return Api.post(`${systemUrl}/material/update`,params);
},
delete(id) {
return Api.delete(`${systemUrl}/material/delete`,{params:{id:id}});
},
}
\ No newline at end of file
<template>
<div>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<!-- <Col :span="12">
<FormItem label="编码" prop="code">
<Input v-model="entity.code" placeholder="请输入" disabled></Input>
</FormItem>
</Col>-->
<Col :span="12">
<FormItem label="名称" prop="name">
<Input v-model="entity.name" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="状态" prop="status" placeholder="请选择">
<Dictionary
code="materail.category.status"
v-model="entity.status"
type="select"
:value="entity.status"
:key="entity.status"
></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem label="描述" prop="description">
<Input v-model="entity.description" type="textarea" placeholder="请输入..."></Input>
</FormItem>
</Col>
<Col :span="24">
<h4>属性配置</h4>
</Col>
<Col :span="24" style="padding:20px 0 0px 10px;margin-bottom:10px;" class="table-solt">
<!--fieldType 1.固有,2.默认,3自定义; -->
<Table border :columns="columns" :data="checkList" class="tableCommon" height="300">
<template slot-scope="{ row, index }" slot="title">
<div v-if="row.fieldType==1||row.fieldType==2">{{row.title}}</div>
<Input v-else v-model="row.title" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="note">
<div v-if="row.fieldType==1">{{row.note}}</div>
<Input v-model="row.note" placeholder="请输入" @on-blur="setRow(row,index)" v-else />
</template>
<template slot-scope="{ row, index }" slot="dataType">
<state
v-if="row.fieldType==1"
code="materail.category.dataType"
:value="row.dataType"
type="text"
></state>
<Dictionary
v-else
code="materail.category.dataType"
type="select"
:value="row.dataType"
:key="row.dataType"
></Dictionary>
</template>
<!-- <template slot-scope="{ row, index }" slot="result">
<Input v-model="row.result" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>-->
<template slot-scope="{ row, index }" slot="required">
<Checkbox v-model="row.required" @on-change="setRow(row,index)"></Checkbox>
</template>
<template slot-scope="{ row, index }" slot="isUnique">
<Checkbox v-model="row.isUnique" @on-change="setRow(row,index)"></Checkbox>
</template>
<template
slot-scope="{ row, index }"
slot="action"
v-if="row.fieldType==2||row.fieldType==3"
>
<a @click="remove(index,row)" style="color:#FF7A8B">删除</a>
</template>
</Table>
</Col>
<Col :span="24" style="margin-bottom:20px;">
<Button type="primary" long @click="addNew" class="mt10">添加</Button>
</Col>
<Col :span="24" style="text-align: right;">
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</template>
<script>
import Api from "./api";
export default {
props: ["nodeInfo"],
data() {
return {
entity: {
upId: 0,
code: 0
},
arr: [],
disabled: false,
columns: [
{
title: "序号",
type: "index",
width: 80,
align: "center"
},
{
title: "属性名称",
key: "title",
align: "center",
slot: "title"
},
{
title: "备注",
key: "note",
align: "center",
slot: "note"
},
{
title: "属性类型",
key: "dataType",
align: "center",
slot: "dataType"
},
// {
// title: "是否显示",
// key: "result",
// align: "center",
// slot: "result"
// },
{
title: "是否必填",
key: "required",
align: "center",
slot: "required"
},
{
title: "是否唯一属性",
key: "isunique",
align: "center",
slot: "isunique"
},
{
title: "操作",
slot: "action",
width: 100,
align: "center"
}
],
checkList: [],
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.get();
},
methods: {
get() {
Api.get({ id: this.nodeInfo.id }).then(r => {
if (r.result) {
this.entity = r.result;
this.tableData();
}
});
},
tableData() {
let conditions = [
{
conditionalType: "Equal",
fieldName: "categoryId",
fieldValue: this.nodeInfo.id
}
];
Api.listTable({ conditions: conditions }).then(r => {
if (r.result) {
console.log(r);
this.checkList = r.result;
}
});
},
remove(index, row) {
if (row.add == 0) {
this.checkList.splice(index, 1);
} else {
row.action = 2;
this.$set(this.checkList, index, row);
this.arr.push(row);
this.checkList.splice(index, 1);
}
},
setRow(row,index) {
this.$set(this.checkList, index, row);
},
addNew() {
let arr = this.$u.clone(this.checkList);
let obj = {
title: "",
note: "",
dataType: "",
required: false,
isunique: false,
fieldType: 3,
categoryId: 0,
action: 1,
add: 0
};
arr.push(obj);
this.checkList = arr;
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
let categoryDto = this.entity;
let pro = this.checkList.concat(this.arr);
Api.update({ categoryDto: categoryDto, pro: pro })
.then(r => {
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
});
}
});
},
handleClose() {
this.$emit("on-close");
}
}
};
</script>
<template> <template>
<div class="master-data"> <div class="classification">
<Button type="dashed" @click="datail">详情</Button> <Layout>
<Sider width="300" v-if="showMenu">
<div class="p-list">
<h3>
零部件库
<div class="fr mr10 mt10">
<ButtonGroup class="fr" size="small">
<!-- <Button icon="md-add" title="新增顶级" @click="addNew"></Button> -->
<Button
:icon="expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
@click="toggle"
title="展开/合并"
></Button>
<Button icon="md-refresh" title="刷新" @click="loadTree"></Button>
<Button icon="md-rewind" title="收起" @click="hide"></Button>
</ButtonGroup>
</div>
</h3>
<div class="search">
<Input search placeholder="关键字" v-model="keys" clearable />
</div>
<div class="fg">
<div class="tree">
<Tree :data="data" ref="tree" @on-select-change="change" :render="renderContent"></Tree>
</div>
</div>
</div>
</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>
<Content :class="!showMenu?'con_bord':''">
<MasterData ref="dataTable" :nodeInfo="nodeInfo" />
</Content>
</Layout>
</div> </div>
</template> </template>
<script> <script>
import MasterData from "./masterData.vue";
import Api from "./api";
export default { export default {
components: {
MasterData
},
name: "masterData",
data() { data() {
return {}; return {
keys: "",
expand: false,
list: [],
nodeInfo: {
categoryId: 0,
rootCategoryId: 0
},
modal: false,
title: "新增",
curId: 0,
detail: null,
showMenu: true,
dataList: []
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
created() {
this.loadTree();
}, },
methods: { methods: {
datail() { showMenuFn() {
this.$router.push({ //this.$Message.info("展开左侧树")
path: "/materiel/masterData/details" this.showMenu = true;
},
ok(row) {
this.loadTree();
this.modal = false;
this.curId = 0;
if (row) {
this.dataList.map((e, index) => {
if (e.id == row.id) {
this.$set(this.$refs.dataTable.dataColumns, index, row);
}
}); });
} }
},
cancel() {
this.curId = 0;
this.modal = false;
},
renderContent(h, { root, node, data }) {
return h(
"span",
{
on: {
click: () => {
this.handleSelect(root, data); //手动选择树节点
}
}
},
data.title
);
},
handleSelect(root, data) {
// console.log(root);
let pid = null; //定义最顶级id
let upId = data.upId;
let roots = root;
function addId(roots, upId) {
roots.map(u => {
if (u.node.id == upId) {
if (u.node.upId == 0) {
pid = u.node.id;
} else {
upId = u.node.upId;
addId(roots, upId);
}
}
});
}
addId(roots, upId);
this.nodeInfo.categoryId = data.id;
if (pid == null) {
this.nodeInfo.rootCategoryId = data.id;
} else {
this.nodeInfo.rootCategoryId = pid;
}
},
loadTree() {
let conditions = [];
Api.list({ conditions: conditions }).then(r => {
var data = this.$u.toTree(
r.result,
0,
u => {
u.title = u.code + u.name;
u.value = u.id;
u.expand = true;
},
"upId"
);
this.list = this.$u.clone(data);
});
},
toggle() {
this.expand = !this.expand;
},
change(v, b) {},
hide() {
this.showMenu = false;
}
},
computed: {
data() {
let items = this.$u.clone(this.list);
let expand = this.expand;
let result = [];
search(this.keys, items);
function search(keys, data) {
data.map(u => {
if (keys.length < u.title) {
u.expand = expand;
result.push(u);
} else {
u.expand = expand;
if (u.title.indexOf(keys) > -1) {
result.push(u);
} else if (u.children) {
search(keys, u.children);
}
}
});
}
return result;
}
} }
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" >
.master-data { .classification {
width: 100%; font-family: Microsoft YaHei;
.ivu-layout-sider {
background: rgba(255, 255, 255, 1);
margin-right: 10px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
height: 87vh;
h4 {
height: 30px;
line-height: 30px;
background: #eee;
padding-left: 10px;
}
.p-list {
h3 {
height: 50px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 50px;
color: rgba(81, 90, 110, 1);
background: rgba(245, 246, 250, 1);
opacity: 1;
padding-left: 10px;
}
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
height: 100%; height: 100%;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
}
}
.show_menu {
width: 30px;
height: 30px;
position: fixed;
top: 100px;
left: 0;
z-index: 9;
.menu_play {
width: 30px;
height: 30px;
line-height: 34px;
font-size: 14px;
text-align: center;
color: #515a6e;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px;
}
.menu_play:hover {
background-color: #2d8cf0;
color: white;
}
}
.ivu-layout-content {
// margin-left: 5px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
overflow: auto;
padding: 10px;
height: 87vh;
overflow-y: hidden;
}
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="master-data"> <div class="master-data">
<DataGrid :columns="columns" ref="grid" :action="action"> {{nodeInfo}}
<DataGrid :columns="columns" ref="grid" :action="action" :initsearch="sets" :high="false">
<template slot="easySearch"> <template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline> <Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys"> <FormItem prop="keys">
<Input placeholder="请输入编码/名称" v-width="200" v-model="easySearch.keys.value" clearable /> <Input
placeholder="请输入编码/名称/状态"
v-width="200"
v-model="easySearch.keys.value"
clearable
/>
</FormItem> </FormItem>
<FormItem> <FormItem>
<Button type="primary" @click="search">查询</Button> <Button type="primary" @click="search">查询</Button>
</FormItem> </FormItem>
</Form> </Form>
</template> </template>
<!-- <template slot="searchForm">
<Search />
</template>-->
<template slot="buttons"> <template slot="buttons">
<Button type="primary" @click="add">新增</Button> <Button type="primary" @click="add">新增</Button>
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="modal" :title="title" width="1120" footer-hide> <Modal v-model="modal" :title="title" width="1000" footer-hide :mask-closable="false">
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" /> <component
:is="detail"
:eid="curId"
:nodeInfo="nodeInfo"
@on-close="cancel"
@on-ok="ok"
ref="chlidren"
/>
</Modal> </Modal>
</div> </div>
</template> </template>
<script> <script>
import Api from "./api";
// import Search from "./search";
export default { export default {
name: "masterData",
components: {
// Search
},
props: ["nodeInfo"],
data() { data() {
return { return {
action: "", action: Api.index,
detail: null,
modal: false, modal: false,
title: "新增",
curId: 0, curId: 0,
detail: null,
sets: v => {
v.categoryId = this.nodeInfo.categoryId;
v.rootCategoryId = this.nodeInfo.rootCategoryId;
},
easySearch: { easySearch: {
keys: { op: "name,code", value: null } keys: { op: "Code,Name", value: null },
// categoryId: {
// op: "In",
// value: this.nodeInfo.categoryId
// },
// rootCategoryId: {
// op: "In",
// value: this.nodeInfo.rootCategoryId
// }
}, },
title: "",
columns: [ columns: [
// {
// key: "index",
// title: "#",
// align: "left",
// width: 60
// },
{ {
key: "code", key: "Code",
title: "编码", title: "编码",
align: "left", align: "left"
width: 200,
easy: true,
high: true
}, },
{ {
key: "name", key: "Name",
title: "名称", title: "名称",
align: "left"
},
{
key: "Status",
title: "状态",
align: "left", align: "left",
easy: true, render: (h, params) => {
high: true, return h("state", {
tooltip: true props: {
code: "materail.category.status",
type: "text",
value: params.row.Status + ""
}
});
}
},
{
key: "Version",
title: "版本",
align: "left"
},
{
key: "Description",
title: "描述",
align: "left"
}, },
{ {
title: "操作", title: "操作",
...@@ -70,7 +129,7 @@ export default { ...@@ -70,7 +129,7 @@ export default {
attrs: { oprate: "delete" }, attrs: { oprate: "delete" },
on: { click: () => this.remove(params.row.id) } on: { click: () => this.remove(params.row.id) }
}, },
"删除" params.row.children == 0 ? "删除" : ""
) )
]); ]);
} }
...@@ -78,21 +137,40 @@ export default { ...@@ -78,21 +137,40 @@ export default {
] ]
}; };
}, },
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
created() {},
methods: { methods: {
edit() { search() {
this.modal = true; this.$refs.grid.reload(this.easySearch);
this.detail = () => import("./add");
}, },
remove() {},
add() { add() {
this.modal = true; this.curId = 0;
this.title = "新增";
this.detail = () => import("./add"); this.detail = () => import("./add");
this.modal = true;
}, },
search() { edit(row) {},
this.$refs.grid.reload(this.easySearch); remove(id) {
this.$Modal.confirm({
title: "删除",
content: "<p>您确定要删除吗?</p>",
onOk: () => {
Api.delete(id).then(r => {
if (r.success) {
this.loadTree();
this.$Message.success("删除成功");
}
});
},
onCancel: () => {
this.$Message.success("取消删除");
}
});
}, },
ok() { ok() {
// this.$refs.grid.load(); this.$refs.grid.reload(this.easySearch);
this.modal = false; this.modal = false;
this.curId = 0; this.curId = 0;
}, },
...@@ -100,6 +178,13 @@ export default { ...@@ -100,6 +178,13 @@ export default {
this.curId = 0; this.curId = 0;
this.modal = false; this.modal = false;
} }
},
watch: {
"nodeInfo.categoryId"(v) {
if (v) {
this.$refs.grid.reload(this.easySearch);
}
}
} }
}; };
</script> </script>
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row> <Row>
<Col :span="12"><FormItem :label="l('creationTime')" prop="creationTime"> <DatePicker type="date" v-model="entity.creationTime"></DatePicker> <Col :span="24">
</FormItem></Col> <FormItem :label="l('title')" prop="title" style="width:95%">
<Col :span="12"><FormItem :label="l('creatorUserId')" prop="creatorUserId"> <InputNumber v-model="entity.creatorUserId"></InputNumber> <Input v-model="entity.title"></Input>
</FormItem></Col> </FormItem>
<Col :span="12"><FormItem :label="l('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="date" v-model="entity.lastModificationTime"></DatePicker> </Col>
</FormItem></Col> <Col :span="24">
<Col :span="12"><FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId"> <InputNumber v-model="entity.lastModifierUserId"></InputNumber> <FormItem label>
</FormItem></Col> <!-- <files ref="refFile" :parms="parms" files /> -->
<Col :span="12"><FormItem :label="l('isDeleted')" prop="isDeleted"> <InputNumber v-model="entity.isDeleted"></InputNumber> <files ref="refFile" :parms="parms" fileFormat :Photos="true" @clickItem="clickData" />
</FormItem></Col> </FormItem>
<Col :span="12"><FormItem :label="l('deletionTime')" prop="deletionTime"> <DatePicker type="date" v-model="entity.deletionTime"></DatePicker> <!-- <FormItem :label="l('filePath')" prop="filePath">
</FormItem></Col> <InputFile v-model="entity.filePath"></InputFile>
<Col :span="12"><FormItem :label="l('deleterUserId')" prop="deleterUserId"> <InputNumber v-model="entity.deleterUserId"></InputNumber> </FormItem> -->
</FormItem></Col> </Col>
<Col :span="12"><FormItem :label="l('title')" prop="title"> <Input v-model="entity.title"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('creator')" prop="creator"> <Input v-model="entity.creator"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('content')" prop="content"> <Input v-model="entity.content"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('filePath')" prop="filePath"> <InputFile v-model="entity.filePath"></InputFile>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('filePaths')" prop="filePaths"> <Input v-model="entity.filePaths"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('dispatchId')" prop="dispatchId"> <InputNumber v-model="entity.dispatchId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('routingDetailId')" prop="routingDetailId"> <InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('routingHeaderId')" prop="routingHeaderId"> <InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('type')" prop="type"> <InputNumber v-model="entity.type"></InputNumber>
</FormItem></Col>
</Row> </Row>
<FormItem> <FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button> <Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button> <Button @click="handleClose" class="ml20">取消</Button>
</FormItem> </FormItem>
</Form> </Form>
</template> </template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'Add', name: "Add",
data() { data() {
return { return {
disabled: false, disabled: false,
entity: {creationTime: null, entity: {
creatorUserId: null, // creationTime: null,
lastModificationTime: null, creatorUserId: this.$store.state.userInfo.userId,
lastModifierUserId: null, // lastModificationTime: null,
isDeleted: null, // lastModifierUserId: null,
deletionTime: null, // isDeleted: null,
deleterUserId: null, // deletionTime: null,
title: "", // deleterUserId: null,
creator: "", title: "",
content: "", creator: this.$store.state.userInfo.userName,
filePath: "", content: "",
filePaths: "", filePath: "",
dispatchId: null, filePaths: "",
routingDetailId: null, dispatchId: this.$route.query.id,
routingHeaderId: null, routingDetailId: this.$route.query.headid,
type: null}, routingHeaderId: this.$route.query.routid,
type: 1
},
rules: { rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }] title: [{ required: true, message: "请填写案例名称", trigger: "blur" }]
} },
} parms:{
app: 'technology', //服务
eid: this.$u.guid(), //记录id
name: '', //表名process_case
field: '' //字段名
},
};
}, },
props: { props: {
v: Object, v: Object,
eid: Number eid: Number
}, },
created(){
// console.log(this.entity.creator)
},
mounted() { mounted() {
if (this.eid > 0) { if (this.eid > 0) {
this.load(this.eid); this.load(this.eid);
this.$refs.refFile.intFiles()
} }
}, },
methods: { methods: {
handleSubmit() { handleSubmit() {
this.$refs.form.validate((v) => { this.$refs.form.validate(v => {
if (v) { if (v) {
this.disabled = true; this.disabled = true;
Api.create(this.entity).then((r) => { if (this.$refs.refFile.nameList.length > 0) {
// this.entity.filePath = this.$refs.refFile.nameList[0].filePath
this.entity.filePaths = this.parms.eid;
} else {
this.entity.filePath = "";
this.entity.filePaths = "";
}
Api.create(this.entity)
.then(r => {
this.disabled = false; this.disabled = false;
if (r.success) { if (r.success) {
this.$Message.success('保存成功') this.$Message.success("保存成功");
this.$emit('on-ok') this.$emit("on-ok");
} else { } else {
this.$Message.error('保存失败') this.$Message.error("保存失败");
} }
}).catch(err => {
this.disabled = false;
this.$Message.error('保存失败')
console.warn(err)
}) })
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
} }
}) });
}, },
handleClose() { handleClose() {
this.$emit('on-close') this.$emit("on-close");
}, },
load(v) { load(v) {
Api.get({ id: v }).then(r => { Api.get({ id: v }).then(r => {
...@@ -109,12 +112,12 @@ type: null}, ...@@ -109,12 +112,12 @@ type: null},
}, },
l(key) { l(key) {
key = "process_case" + "." + key; key = "process_case" + "." + key;
return this.$t(key) return this.$t(key);
} }
}, },
watch: { watch: {
v() { v() {
this.entity = this.$u.clone(this.v) this.entity = this.$u.clone(this.v);
}, },
eid(v) { eid(v) {
if (v > 0) { if (v > 0) {
...@@ -122,5 +125,5 @@ type: null}, ...@@ -122,5 +125,5 @@ type: null},
} }
} }
} }
} };
</script> </script>
\ No newline at end of file \ No newline at end of file
<template> <template>
<div class="detail"> <div class="detail">
<Row> <Row>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed> <Filed :span="24" :name="l('title')">{{entity.title}}</Filed>
<Filed :span="12" :name="l('creatorUserId')">{{entity.creatorUserId}}</Filed> <Filed :span="24" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('lastModificationTime')">{{entity.lastModificationTime}}</Filed> <Filed :span="24" :name="l('creator')">{{entity.creator}}</Filed>
<Filed :span="12" :name="l('lastModifierUserId')">{{entity.lastModifierUserId}}</Filed> <Filed :span="24" :name="l('filePaths')">
<Filed :span="12" :name="l('isDeleted')">{{entity.isDeleted}}</Filed> <files
<Filed :span="12" :name="l('deletionTime')">{{entity.deletionTime}}</Filed> ref="refFile"
<Filed :span="12" :name="l('deleterUserId')">{{entity.deleterUserId}}</Filed> :parms="parms"
<Filed :span="12" :name="l('title')">{{entity.title}}</Filed> fileFormat
<Filed :span="12" :name="l('creator')">{{entity.creator}}</Filed> :Photos="true"
<Filed :span="12" :name="l('content')">{{entity.content}}</Filed> :showList="false"
<Filed :span="12" :name="l('filePath')">{{entity.filePath}}</Filed> @clickItem="clickData"
<Filed :span="12" :name="l('filePaths')">{{entity.filePaths}}</Filed> /></Filed>
<Filed :span="12" :name="l('dispatchId')">{{entity.dispatchId}}</Filed> <!-- <Filed :span="12" :name="l('filePaths')">{{entity.filePaths}}</Filed> -->
<Filed :span="12" :name="l('routingDetailId')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingHeaderId')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('type')">{{entity.type}}</Filed>
</Row> </Row>
</div> </div>
</template> </template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'Add', name: "Add",
data() { data() {
return { return {
entity: {}, entity: {},
rules: { rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }], name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: '必填', trigger: 'blur' }] code: [{ required: true, message: "必填", trigger: "blur" }]
} },
parms: {
app: "technology",
eid: "",
name: "",
field: ""
} }
};
}, },
props: { props: {
eid: Number eid: Number
...@@ -44,18 +45,22 @@ ...@@ -44,18 +45,22 @@
} }
}, },
methods: { methods: {
clickData(data,liUrl) {
window.open(data, "_blank");
},
load(v) { load(v) {
Api.get({ id: v }).then(r => { Api.get({ id: v }).then(r => {
this.entity = r.result; this.entity = r.result;
this.$emit('on-load') this.parms.eid = r.result.filePaths;
}) this.$emit("on-load");
});
}, },
handleClose() { handleClose() {
this.$emit('on-close') this.$emit("on-close");
}, },
l(key) { l(key) {
key = "process_case" + "." + key; key = "process_case" + "." + key;
return this.$t(key) return this.$t(key);
} }
}, },
watch: { watch: {
...@@ -65,5 +70,5 @@ ...@@ -65,5 +70,5 @@
} }
} }
} }
} };
</script> </script>
\ No newline at end of file
...@@ -27,7 +27,39 @@ ...@@ -27,7 +27,39 @@
<Button type="primary" @click="add">新增</Button> <Button type="primary" @click="add">新增</Button>
</template> </template>
<template slot="card" slot-scope="{row}"> <template slot="card" slot-scope="{row}">
<div class="card_box" @click="changeCards(row)"> <div class="card_body">
<Row class="title_i">
<Col :span="21">案例名称:{{row.title}}</Col>
<Col :span="3" class="btn_click">
<!-- <a @click="edit(row.id)">
<Icon type="ios-create" @click="edit(row.id)" />
</a> -->
<a @click="view(row.id)">
<Icon type="ios-paper" />
</a>
<a @click="remove(row.id)">
<Icon type="ios-trash" />
</a>
</Col>
</Row>
<div class="down_text">
<Row :gutter="16">
<Col span="6">
<div class="file">
<!-- <img :src="fileUrlDown +row.filePaths" /> -->
<!-- <Icon type="ios-paper" v-if="row.id%2==0" /> -->
<Icon type="ios-paper" v-if="row.filePaths" />
<Icon type="md-film" v-else />
</div>
</Col>
<Col span="18">
<p>{{row.creationTime}}</p>
<p>{{row.id}}{{row.creator}}</p>
</Col>
</Row>
</div>
</div>
<!-- <div class="card_box" @click="changeCards(row)">
<Row :gutter="16"> <Row :gutter="16">
<Col span="6"> <Col span="6">
<div class="file"> <div class="file">
...@@ -43,12 +75,15 @@ ...@@ -43,12 +75,15 @@
<p>{{row.id}}{{row.creator}}</p> <p>{{row.id}}{{row.creator}}</p>
</Col> </Col>
</Row> </Row>
</div> </div> -->
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide> <Modal v-model="modal" :title="title" width="800" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" /> <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal> </Modal>
<Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel" :mask-closable="false">
<p>确定删除?</p>
</Modal>
</div> </div>
</template> </template>
<script> <script>
...@@ -62,7 +97,7 @@ export default { ...@@ -62,7 +97,7 @@ export default {
head: { head: {
title: "工艺案例", title: "工艺案例",
author: "henq", author: "henq",
description: "process_case 6/1/2020 5:06:34 PM" // description: "process_case 6/1/2020 5:06:34 PM"
}, },
data() { data() {
return { return {
...@@ -72,6 +107,7 @@ export default { ...@@ -72,6 +107,7 @@ export default {
type: { op: "Equal", value: 1 } type: { op: "Equal", value: 1 }
}, },
modal: false, modal: false,
deletelModal: false,
title: "新增", title: "新增",
detail: null, detail: null,
curId: 0, curId: 0,
...@@ -212,7 +248,7 @@ export default { ...@@ -212,7 +248,7 @@ export default {
}, },
methods: { methods: {
laodparme() { laodparme() {
console.log(555); // console.log(555);
this.$refs.grid.reload(condition); this.$refs.grid.reload(condition);
}, },
changeCards(carData) { changeCards(carData) {
...@@ -251,6 +287,11 @@ export default { ...@@ -251,6 +287,11 @@ export default {
this.modal = true; this.modal = true;
}, },
remove(id) { remove(id) {
this.deletelModal = true;
this.curId = id;
},
removeOk(){
let id = this.curId;
Api.delete(id).then(r => { Api.delete(id).then(r => {
if (r.success) { if (r.success) {
this.$refs.grid.load(); this.$refs.grid.load();
...@@ -261,6 +302,7 @@ export default { ...@@ -261,6 +302,7 @@ export default {
cancel() { cancel() {
this.curId = 0; this.curId = 0;
this.modal = false; this.modal = false;
this.deletedlModal = false;
}, },
l(key) { l(key) {
/* /*
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row> <Row>
<Col :span="12"> <Col :span="24">
<FormItem :label="l('creationTime')" prop="creationTime"> <FormItem :label="l('title')" prop="title" style="width:95%">
<DatePicker type="date" v-model="entity.creationTime"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('creatorUserId')" prop="creatorUserId">
<InputNumber v-model="entity.creatorUserId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('lastModificationTime')" prop="lastModificationTime">
<DatePicker type="date" v-model="entity.lastModificationTime"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId">
<InputNumber v-model="entity.lastModifierUserId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isDeleted')" prop="isDeleted">
<InputNumber v-model="entity.isDeleted"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('deletionTime')" prop="deletionTime">
<DatePicker type="date" v-model="entity.deletionTime"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('deleterUserId')" prop="deleterUserId">
<InputNumber v-model="entity.deleterUserId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('title')" prop="title">
<Input v-model="entity.title"></Input> <Input v-model="entity.title"></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="24">
<FormItem :label="l('creator')" prop="creator"> <FormItem label>
<Input v-model="entity.creator"></Input> <!-- <files ref="refFile" :parms="parms" files @clickItem="clickData"/> -->
<files ref="refFile" :parms="parms" fileFormat :Photos="true" @clickItem="clickData" />
</FormItem> </FormItem>
</Col> <!-- <FormItem :label="l('filePath')" prop="filePath">
<Col :span="12">
<FormItem :label="l('content')" prop="content">
<Input v-model="entity.content"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('filePath')" prop="filePath">
<InputFile v-model="entity.filePath"></InputFile> <InputFile v-model="entity.filePath"></InputFile>
</FormItem> </FormItem> -->
</Col>
<Col :span="12">
<FormItem :label="l('filePaths')" prop="filePaths">
<Input v-model="entity.filePaths"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('dispatchId')" prop="dispatchId">
<InputNumber v-model="entity.dispatchId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<InputNumber v-model="entity.routingHeaderId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('type')" prop="type">
<InputNumber v-model="entity.type"></InputNumber>
</FormItem>
</Col> </Col>
</Row> </Row>
<FormItem> <FormItem>
...@@ -96,42 +30,56 @@ export default { ...@@ -96,42 +30,56 @@ export default {
return { return {
disabled: false, disabled: false,
entity: { entity: {
creationTime: null, creatorUserId: this.$store.state.userInfo.userId,
creatorUserId: null,
lastModificationTime: null,
lastModifierUserId: null,
isDeleted: null,
deletionTime: null,
deleterUserId: null,
title: "", title: "",
creator: "", creator: this.$store.state.userInfo.userName,
content: "", content: "",
filePath: "", filePath: "",
filePaths: "", filePaths: "",
dispatchId: null, dispatchId: this.$route.query.id,
routingDetailId: null, routingDetailId: this.$route.query.headid,
routingHeaderId: null, routingHeaderId: this.$route.query.routid,
type: null type: 2
}, },
rules: { rules: {
name: [{ required: true, message: "必填", trigger: "blur" }] title: [{ required: true, message: "请填写工艺名称", trigger: "blur" }]
} },
parms: {
app: 'technology', //服务
eid: this.$u.guid(), //记录id
name: '', //表名process_case
field: '' //字段名
},
}; };
}, },
props: { props: {
v: Object, v: Object,
eid: Number eid: Number
}, },
created(){
// console.log(this.entity.creator)
},
mounted() { mounted() {
if (this.eid > 0) { if (this.eid > 0) {
this.load(this.eid); this.load(this.eid);
this.$refs.refFile.intFiles()
} }
}, },
methods: { methods: {
clickData(data, liUrl) {
this.entity.filePath = liUrl;
},
handleSubmit() { handleSubmit() {
this.$refs.form.validate(v => { this.$refs.form.validate(v => {
if (v) { if (v) {
this.disabled = true; this.disabled = true;
if (this.$refs.refFile.nameList.length > 0) {
// this.entity.filePath = this.$refs.refFile.nameList[0].filePath
this.entity.filePaths = this.parms.eid;
} else {
this.entity.filePath = "";
this.entity.filePaths = "";
}
Api.create(this.entity) Api.create(this.entity)
.then(r => { .then(r => {
this.disabled = false; this.disabled = false;
......
<template> <template>
<div class="detail"> <div class="detail">
<Row> <Row>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed> <Filed :span="24" :name="l('title')">{{entity.title}}</Filed>
<Filed :span="12" :name="l('creatorUserId')">{{entity.creatorUserId}}</Filed> <Filed :span="24" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('lastModificationTime')">{{entity.lastModificationTime}}</Filed> <Filed :span="24" :name="l('creator')">{{entity.creator}}</Filed>
<Filed :span="12" :name="l('lastModifierUserId')">{{entity.lastModifierUserId}}</Filed> <Filed :span="24" :name="l('filePaths')">
<Filed :span="12" :name="l('isDeleted')">{{entity.isDeleted}}</Filed> <files
<Filed :span="12" :name="l('deletionTime')">{{entity.deletionTime}}</Filed> ref="refFile"
<Filed :span="12" :name="l('deleterUserId')">{{entity.deleterUserId}}</Filed> :parms="parms"
<Filed :span="12" :name="l('title')">{{entity.title}}</Filed> fileFormat
<Filed :span="12" :name="l('creator')">{{entity.creator}}</Filed> :Photos="true"
<Filed :span="12" :name="l('content')">{{entity.content}}</Filed> :showList="false"
<Filed :span="12" :name="l('filePath')">{{entity.filePath}}</Filed> @clickItem="clickData"
<Filed :span="12" :name="l('filePaths')">{{entity.filePaths}}</Filed> />
<Filed :span="12" :name="l('dispatchId')">{{entity.dispatchId}}</Filed> </Filed>
<Filed :span="12" :name="l('routingDetailId')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingHeaderId')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('type')">{{entity.type}}</Filed>
</Row> </Row>
</div> </div>
</template> </template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'Add', name: "Add",
data() { data() {
return { return {
entity: {}, entity: {},
rules: { rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }], name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: '必填', trigger: 'blur' }] code: [{ required: true, message: "必填", trigger: "blur" }]
} },
parms: {
app: "technology",
eid: "",
name: "",
field: ""
} }
};
}, },
props: { props: {
eid: Number eid: Number
...@@ -44,18 +45,24 @@ ...@@ -44,18 +45,24 @@
} }
}, },
methods: { methods: {
clickData(data,liUrl) {
console.log(liUrl)
console.log(data)
window.open(data, "_blank");
},
load(v) { load(v) {
Api.get({ id: v }).then(r => { Api.get({ id: v }).then(r => {
this.entity = r.result; this.entity = r.result;
this.$emit('on-load') this.parms.eid = r.result.filePaths;
}) this.$emit("on-load");
});
}, },
handleClose() { handleClose() {
this.$emit('on-close') this.$emit("on-close");
}, },
l(key) { l(key) {
key = "process_case" + "." + key; key = "process_case" + "." + key;
return this.$t(key) return this.$t(key);
} }
}, },
watch: { watch: {
...@@ -65,5 +72,5 @@ ...@@ -65,5 +72,5 @@
} }
} }
} }
} };
</script> </script>
\ No newline at end of file
...@@ -24,7 +24,37 @@ ...@@ -24,7 +24,37 @@
<Button type="primary" @click="add">新增</Button> <Button type="primary" @click="add">新增</Button>
</template> </template>
<template slot="card" slot-scope="{row}"> <template slot="card" slot-scope="{row}">
<div class="card_box" @click="changeCards(row)"> <div class="card_body">
<Row class="title_i">
<Col :span="21">工艺名称:{{row.title}}</Col>
<Col :span="3" class="btn_click">
<!-- <a @click="edit(row.id)">
<Icon type="ios-create" @click="edit(row.id)" />
</a> -->
<a @click="view(row.id)">
<Icon type="ios-paper" />
</a>
<a @click="remove(row.id)">
<Icon type="ios-trash" />
</a>
</Col>
</Row>
<div class="down_text">
<Row :gutter="16">
<Col span="6">
<div class="file">
<Icon type="ios-paper" v-if="row.filePaths" />
<Icon type="md-film" v-else />
</div>
</Col>
<Col span="18">
<p>{{row.creationTime}}</p>
<p>{{row.id}}{{row.creator}}</p>
</Col>
</Row>
</div>
</div>
<!-- <div class="card_box" @click="changeCards(row)">
<Row :gutter="16"> <Row :gutter="16">
<Col span="6"> <Col span="6">
<div class="file"> <div class="file">
...@@ -40,12 +70,15 @@ ...@@ -40,12 +70,15 @@
<p>{{row.id}}{{row.creator}}</p> <p>{{row.id}}{{row.creator}}</p>
</Col> </Col>
</Row> </Row>
</div> </div> -->
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide> <Modal v-model="modal" :title="title" width="800" footer-hide :mask-closable="false">
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" /> <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal> </Modal>
<Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel" :mask-closable="false">
<p>确定删除?</p>
</Modal>
</div> </div>
</template> </template>
<script> <script>
...@@ -58,8 +91,8 @@ export default { ...@@ -58,8 +91,8 @@ export default {
}, },
head: { head: {
title: "工艺提醒", title: "工艺提醒",
author: "henq", // author: "henq",
description: "process_case 6/1/2020 5:06:34 PM" // description: "process_case 6/1/2020 5:06:34 PM"
}, },
data() { data() {
return { return {
...@@ -69,6 +102,7 @@ export default { ...@@ -69,6 +102,7 @@ export default {
type: { op: "Equal", value: 2 } type: { op: "Equal", value: 2 }
}, },
modal: false, modal: false,
deletelModal: false,
title: "新增", title: "新增",
detail: null, detail: null,
curId: 0, curId: 0,
...@@ -242,6 +276,11 @@ export default { ...@@ -242,6 +276,11 @@ export default {
this.modal = true; this.modal = true;
}, },
remove(id) { remove(id) {
this.deletelModal = true;
this.curId = id;
},
removeOk(){
let id = this.curId;
Api.delete(id).then(r => { Api.delete(id).then(r => {
if (r.success) { if (r.success) {
this.$refs.grid.load(); this.$refs.grid.load();
...@@ -252,6 +291,7 @@ export default { ...@@ -252,6 +291,7 @@ export default {
cancel() { cancel() {
this.curId = 0; this.curId = 0;
this.modal = false; this.modal = false;
this.deletedlModal = false;
}, },
l(key) { l(key) {
/* /*
......
...@@ -25,5 +25,29 @@ export default { ...@@ -25,5 +25,29 @@ export default {
entrentrycontinuestart(params) { entrentrycontinuestart(params) {
return Api.post(`${PlanUrl}/orderexecute/entrycontinue`, params); return Api.post(`${PlanUrl}/orderexecute/entrycontinue`, params);
}, },
//转序弹框产品+人员
productsandoperators(params) {
return Api.post(`${PlanUrl}/orderexecutehandon/productsandoperators`, params);
},
//确认发起转序
confirmproductsandoperator(params) {
return Api.post(`${PlanUrl}/orderexecutehandon/confirmproductsandoperator`, params);
},
//转续列表
indexHandon: `${PlanUrl}/orderexecutehandon/handonpaged`,
handonpaged(params) {
return Api.post(`${PlanUrl}/orderexecutehandon/handonpaged`, params);
},
//刷卡交接
handon(params) {
return Api.post(`${PlanUrl}/orderexecutehandon/handon`, params);
},
//工时分配--下一步人员
getentryusers(params) {
return Api.get(`${PlanUrl}/orderexecutenew/entryusers`, params);
},
//工时分配--总工时待分配
getallhours(params) {
return Api.post(`${technologyUrl}workhours/allhours`, params);
},
} }
\ No newline at end of file
...@@ -42,18 +42,25 @@ export default { ...@@ -42,18 +42,25 @@ export default {
}, },
props: { props: {
order: { order: {
type: String, type: [String, Number]
default: '', },
asc: {
type: Boolean,
default: true
},
statu: {
type: Number,
default: -9
} }
}, },
created() { created() {
this.loadTree(-9); this.loadTree();
}, },
methods: { methods: {
loadTree(value) { loadTree() {
let parmse = { let parmse = {
status: value, status: this.statu,
isAsc: true isAsc: this.asc
}; };
Api.getCardList(parmse).then(res => { Api.getCardList(parmse).then(res => {
if (res.success) { if (res.success) {
...@@ -73,15 +80,24 @@ export default { ...@@ -73,15 +80,24 @@ export default {
orderId: item.orderId, orderId: item.orderId,
executeId: item.executeId, executeId: item.executeId,
headid: item.routingHeaderId, headid: item.routingHeaderId,
routid: item.routingDetailId,//工序ID
quantity: item.quantity, //派工数量
dispatchStatus: item.status dispatchStatus: item.status
} }
}); });
} }
}, },
watch: { watch: {
order(v) order(v) {
{
//alert(v) //alert(v)
},
asc(v) {
this.asc = v;
this.loadTree();
},
statu(v) {
this.statu=v
this.loadTree();
} }
} }
}; };
......
...@@ -126,7 +126,30 @@ ...@@ -126,7 +126,30 @@
padding: 0; padding: 0;
} }
} }
.card_body{
border: 1px solid #e4e6ed;
border-radius: 4px;
margin-bottom: 30px;
.title_i{
padding: 0 8px;
height: 35px;
line-height: 35px;
color: #fff;
background: #a7b8cc;
font-size: 15px;
}
.btn_click{
text-align: right;
}
.down_text{
background: #a7b8cc33;
padding: 5px 8px;
line-height: 32px;
i{
font-size: 62px;
}
}
}
.gd_box{ .gd_box{
.ivu-drawer-wrap{ .ivu-drawer-wrap{
.ivu-drawer-left{ .ivu-drawer-left{
...@@ -274,7 +297,8 @@ ...@@ -274,7 +297,8 @@
float: left; float: left;
margin: 20px 72px; margin: 20px 72px;
width: 300px; width: 300px;
height: 240px; // height: 240px;
height: 180px;
border-color: #2680EB; border-color: #2680EB;
.ivu-card-head{ .ivu-card-head{
background: #d3e6fb; background: #d3e6fb;
...@@ -287,10 +311,13 @@ ...@@ -287,10 +311,13 @@
.gs_p{ .gs_p{
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
font-size: 20px;
text-align: center;
} }
.gs_time{ .gs_time{
text-align: center; text-align: center;
color: #2680EB; color: #2680EB;
line-height: 46px;
.b_size{ .b_size{
font-size: 32px; font-size: 32px;
} }
...@@ -299,20 +326,21 @@ ...@@ -299,20 +326,21 @@
background: #d3e6fb; background: #d3e6fb;
margin: 0 -16px; margin: 0 -16px;
height: 59px; height: 59px;
border-bottom-left-radius: 4px; // border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px; // border-bottom-right-radius: 4px;
border-top: 1px solid #2680eb; // border-top: 1px solid #2680eb;
a{ a{
display: inline-block; display: inline-block;
height: 59px; height: 59px;
line-height: 60px; line-height: 60px;
text-align: center; text-align: center;
width: calc(50% - 2px); width: calc(100% - 0px);
// width: calc(50% - 2px);
} }
.gs_del{ .gs_del{
background: #2680EB; background: #2680EB;
color: #fff; color: #fff;
border-bottom-right-radius: 4px; // border-bottom-right-radius: 4px;
} }
} }
} }
...@@ -324,7 +352,8 @@ ...@@ -324,7 +352,8 @@
border: 1px dashed #2680EB; border: 1px dashed #2680EB;
color: #2680EB; color: #2680EB;
text-align: center; text-align: center;
line-height: 275px; // line-height: 275px;
line-height: 220px;
border-radius: 4px; border-radius: 4px;
i{ i{
font-size: 80px; font-size: 80px;
...@@ -345,13 +374,14 @@ ...@@ -345,13 +374,14 @@
height: 56px; height: 56px;
border-radius: 28px 4px 4px 28px; border-radius: 28px 4px 4px 28px;
border: 1px solid #2d8cf0; border: 1px solid #2d8cf0;
margin: 15px 23px; margin: 15px 14px;
i { i {
font-size: 56px; font-size: 56px;
float: left; float: left;
color: #2680EB; color: #2680EB;
} }
.gd_user { .gd_user {
line-height: 22px;
padding: 6px; padding: 6px;
color: #707070; color: #707070;
} }
...@@ -491,6 +521,124 @@ ...@@ -491,6 +521,124 @@
} }
} }
.wu_bgModal{
height: calc(100vh - 185px);
.mass_box{
padding: 0 50px;
}
.footer {
width: 100%;
position: absolute;
left: 0;
bottom: -5px;
height: 60px;
line-height: 60px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding-left: 50px;
}
.mass_box{
h2{ height: 40px;}
// .weizhix{ color: #4d5055;}
.rangb{ color: #515A6E;}
.hege{ color: #2680EB;}
.fanxiu{ color: #FFA000;}
.feipin{ color: #FE7777;}
.chuanse{
button{
width: 88px;
height: 40px;
font-size: 16px;
margin: 0 30px 0 0;
color: #fff;
}
.button04{ background: #2680EB; }
.button01{ background: #515A6E; }
.button02{ background: #FFA000; }
.button03{ background: #FE7777; }
}
.mass_list{
border: 1px solid #CACBD0;
border-radius: 4px;
padding: 10px 15px;
margin: 15px 0;
.btn_play{
margin: 0 0 20px 0;
color: #4d5055;
}
.list01{
min-height: 50px;
max-height: 155px;
overflow-x: auto;
.tag_card{
cursor: pointer;
margin: 0 20px 15px 0;
}
.ivu-tag-checked{
border: 1px solid #2680EB !important;
}
.card_bor{
border: 1px solid #2680EB !important;
}
}
.list02{
min-height: 50px;
max-height: 100px;
overflow-y: auto;
.tag_card02{
margin: 0 20px 15px 0;
}
}
}
.hege_box{
.ivu-tag-dot-inner{
background: #2680EB;
}
}
.rangbu{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #515a6e;
}
}
}
}
.fanxiu_box{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FFA000;
}
}
}
}
.fei_box{
width: calc(100% - 482px);
display: inline-block;
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FE7777;
}
}
}
}
.fei_right{
float: right;
padding-top: 15px;
line-height: 50px;
width: 460px;
}
}
.futer{
width: 100%;
height: 60px;
position: absolute;
bottom: 1px;
}
}
.tech_box{ .tech_box{
height: calc(100vh - 110px); height: calc(100vh - 110px);
.ivu-layout-header{ .ivu-layout-header{
...@@ -599,8 +747,7 @@ ...@@ -599,8 +747,7 @@
} }
.zhuanx{ .zhuanx{
text-align: center; text-align: center;
line-height: 50px; line-height: 60px;
.line_p{ .line_p input{
} }
} }
\ No newline at end of file
...@@ -6,26 +6,37 @@ ...@@ -6,26 +6,37 @@
<!-- <div class="top_title"> <!-- <div class="top_title">
<span class="fl">{{orderTitle}}</span> <span class="fl">{{orderTitle}}</span>
<div>工单编号: 12001011</div> <div>工单编号: 12001011</div>
</div> --> </div>-->
<component :is="detail" :gdid="gdId" :row="row"/> <component :is="detail" :gdid="gdId" :row="row" />
<a class="gd_list" @click="orderlistMode = true">工单列表</a> <a class="gd_list" @click="orderlistMode = true">工单列表</a>
<a class="gn_area" @click="functionalMode = true">功能区</a> <a class="gn_area" @click="functionalMode = true">功能区</a>
<!-- 工单列表 --> <!-- 工单列表 -->
<Drawer placement="left" class="gd_box" :closable="false" <Drawer
:inner="true" :transfer="false" v-model="orderlistMode"> placement="left"
class="gd_box"
:closable="false"
:inner="true"
:transfer="false"
v-model="orderlistMode"
>
<div slot="header"> <div slot="header">
<div class="header"> <div class="header">
<a class="gd_tt" @click="goToOrder"><Icon type="ios-undo-outline" />工单列表</a> <a class="gd_tt" @click="goToOrder">
<Dictionary code="taskList.status" class="select_star fr" v-model="odermodel" @on-change="searchOrder"></Dictionary> <Icon type="ios-undo-outline" />工单列表
</Option> </a>
</Select> <Dictionary
code="taskList.status"
class="select_star fr"
v-model="odermodel"
@on-change="searchOrder"
></Dictionary>
</div> </div>
<div class="select_t"> <div class="select_t">
<Button class>时间正序排列</Button> <Button @click="changeAsc">{{ascTitle}}</Button>
</div> </div>
</div> </div>
<!-- 列表卡片主内容 --> <!-- 列表卡片主内容 -->
<orderlist ref="orderlist" :order="inputId" /> <orderlist ref="orderlistref" :asc="asc" :statu="statu" :order="inputId" />
</Drawer> </Drawer>
<!-- 功能区 --> <!-- 功能区 -->
<Drawer <Drawer
...@@ -54,20 +65,23 @@ export default { ...@@ -54,20 +65,23 @@ export default {
functionalMode: false, functionalMode: false,
gdId: 0, gdId: 0,
detail: null, detail: null,
row:{}, row: {},
odermodel: -9, odermodel: -9,
orderId: this.$route.query.id, orderId: this.$route.query.id,
condition: [], condition: [],
inputId: null, inputId: null,
asc: true,
ascTitle: "时间正序排序",
statu:-9
}; };
}, },
created() { created() {
let row={} let row = {};
row.id = this.$route.query.id; row.id = this.$route.query.id;
row.orderId = this.$route.query.orderId; row.orderId = this.$route.query.orderId;
row.executeId = this.$route.query.executeId; row.executeId = this.$route.query.executeId;
this.row=row this.row = row;
this.inputId=this.$route.query.id this.inputId = this.$route.query.id;
this.detail = () => import("./starOrder/index"); this.detail = () => import("./starOrder/index");
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
...@@ -76,16 +90,17 @@ export default { ...@@ -76,16 +90,17 @@ export default {
mounted() {}, mounted() {},
comments: {}, comments: {},
methods: { methods: {
starFun() {
this.$Message.success("开工...");
},
// getListLength(len){ this.listLength = len }, // getListLength(len){ this.listLength = len },
// 返回工单列表 // 返回工单列表
goToOrder() { goToOrder() {
this.$router.push("/produce/orderlist"); this.$router.push("/produce/orderlist");
}, },
searchOrder(value) { searchOrder(value) {
this.$refs.orderlist.loadTree(value); if (value == null || typeof value == "undefined") {
value = -9;
}
this.statu=value
// this.$refs.orderlistref.loadTree(value);
}, },
changeTitle(number, type) { changeTitle(number, type) {
this.orderTitle = type; this.orderTitle = type;
...@@ -94,18 +109,18 @@ export default { ...@@ -94,18 +109,18 @@ export default {
this.detail = () => import("./starOrder/index"); this.detail = () => import("./starOrder/index");
} //进度汇报 } //进度汇报
if (number == 1) { if (number == 1) {
this.$Message.info("尊敬的用户,您没有该权限!") this.$Message.info("尊敬的用户,您没有该权限!");
// this.detail = () => import("./MaterialCollec/index"); // this.detail = () => import("./MaterialCollec/index");
} //物料领用 } //物料领用
if (number == 2) { if (number == 2) {
// this.detail = () => import("./productSet/index"); // this.detail = () => import("./productSet/index");
this.$Message.info("尊敬的用户,您没有该权限!") this.$Message.info("尊敬的用户,您没有该权限!");
} //产品装配 } //产品装配
if (number == 3) { if (number == 3) {
this.detail = () => import("./taskTime/index"); this.detail = () => import("./taskTime/index");
} //工时分配 } //工时分配
if (number == 4) { if (number == 4) {
this.$Message.info("尊敬的用户,您没有该权限!") this.$Message.info("尊敬的用户,您没有该权限!");
// this.detail = () => import("./preparation/index"); // this.detail = () => import("./preparation/index");
} //生产准备 } //生产准备
if (number == 5) { if (number == 5) {
...@@ -121,19 +136,25 @@ export default { ...@@ -121,19 +136,25 @@ export default {
this.detail = () => import("./datafilling/index"); this.detail = () => import("./datafilling/index");
} //数据填报 } //数据填报
if (number == 9) { if (number == 9) {
this.$Message.info("尊敬的用户,您没有该权限!") this.$Message.info("尊敬的用户,您没有该权限!");
// this.detail = () => import("./testdata/index"); // this.detail = () => import("./testdata/index");
} //测试数据 } //测试数据
},
changeAsc() {
this.asc = !this.asc;
if (this.asc) {
this.ascTitle = "时间正序排序";
} else {
this.ascTitle = "时间倒序排序";
}
} }
}, },
watch: { watch: {
'$route.query.id'(v) "$route.query.id"(v) {
{ this.row.id = v;
this.row.id = v this.inputId = v;
this.inputId=v this.detail = () => import("./starOrder/index");
this.detail = () => import("./starOrder/index") }
},
} }
}; };
</script> </script>
<template> <template>
<div class> <div>
<div class="star" v-if="dispatchStatus==12"> <div class="star" v-if="dispatchStatus==12">
<a class="start" @click="starFun"> <a class="start" @click="starFun">
<Icon type="md-play" />开工 <Icon type="md-play" />开工
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<li>图号:{{entity.drawnNumber}}</li> <li>图号:{{entity.drawnNumber}}</li>
<li> <li>
状态: 状态:
<state code="plan.order.status" ref="state" :value="entity.status" type="text"></state> <state code="plan.order.status" ref="state" :value="entity.status" type="text" ></state>
</li> </li>
<li>订单编号:{{entity.mesCode}}</li> <li>订单编号:{{entity.mesCode}}</li>
<li>批次号:{{entity.batchNumber}}</li> <li>批次号:{{entity.batchNumber}}</li>
...@@ -68,23 +68,48 @@ ...@@ -68,23 +68,48 @@
<li>派工数量:{{entity.dispatchQuantity}}</li> <li>派工数量:{{entity.dispatchQuantity}}</li>
<li>人员信息:{{entity.userNames}}</li> <li>人员信息:{{entity.userNames}}</li>
<li>准备工时:{{entity.setupTime}}</li> <li>准备工时:{{entity.setupTime}}</li>
<li>工单状态: <state code="taskList.status" ref="state1" :value="dispatchStatus" type="text"></state></li> <li>
工单状态:
<state code="taskList.status" ref="state1" :value="dispatchStatus" type="text"></state>
</li>
</ul> </ul>
</div> </div>
<div class="img_box fl" style="background:#DDD"> <div class="img_box fl bgDDD">
<ViewerImg :images="images" /> <ViewerImg :images="images" />
</div> </div>
</div> </div>
<Modal v-model="ransferModal" :title="transferTitle" width="800"> <Modal v-model="ransferModal" :title="transferTitle" fullscreen style="z-index:99999" :footer-hide="cardlist.length==0">
<!-- <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" footer-hide/> --> <div class="wu_bgModal">
<div class="zhuanx"> <div class="mass_box">
<p class="line_p"> <div class="mass_list">
<Input prefix="ios-contact-outline" placeholder="请输入人员编号" style="width: auto" /> <h2 class="btn_play tl">
<!-- <UserSelect ref="userSelected" :multiple="true" style="width: 220px;margin:0 auto;"/> --> 选择产品({{cardlist.length}}
</p> <Button class="button" type="primary" @click="allcheck">全选</Button>
<p class="line_p"> <Button class="button" type="primary" @click="rechecked">反选</Button>
<Input prefix="ios-lock-outline" placeholder="请输入人员密码" style="width: auto" /> </h2>
</p> <div class="list01 tl">
<Tag
type="dot"
:checkable="true"
class="tag_card"
size="large"
v-for="(item,index) in cardlist"
:name="item.id"
:key="index"
:checked="item.checked"
color="primary"
@on-change="changeCards"
>{{item.product_code}}</Tag>
</div>
</div>
</div>
<div class="mass_box">
<UserSelect ref="userSelected" :datas="userlist" v-model="user" v-width="300" />
</div>
</div>
<div slot="footer">
<Button class="button" @click="ransferModal=false">取消</Button>
<Button class="button" type="primary" @click="ransOk">确定</Button>
</div> </div>
</Modal> </Modal>
</div> </div>
...@@ -125,14 +150,20 @@ export default { ...@@ -125,14 +150,20 @@ export default {
? true ? true
: Number(this.$route.query.dispatchStatus) == 5 : Number(this.$route.query.dispatchStatus) == 5
? true ? true
: false : false,
cardlist: [],
detailId: null,
nextDetailId: null,
operatorId: null,
userlist: [],
user: null
}; };
}, },
created() { created() {
// this.treeHeight = window.innerHeight - 120; // this.treeHeight = window.innerHeight - 120;
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary");
}, },
mounted() { mounted() {
this.load(this.id); this.load(this.id);
...@@ -217,6 +248,7 @@ export default { ...@@ -217,6 +248,7 @@ export default {
}, },
transferFn() { transferFn() {
this.ransferModal = true; this.ransferModal = true;
this.getProduce();
}, },
load(v) { load(v) {
//加载基础数据 //加载基础数据
...@@ -278,9 +310,103 @@ export default { ...@@ -278,9 +310,103 @@ export default {
show() { show() {
this.$viewer.show(); this.$viewer.show();
}, },
goPage(type,title) goPage(type, title) {
{ this.$parent.changeTitle(type, title);
this.$parent.changeTitle(type,title) },
getProduce() {
this.cardlist = [];
let pid = Number(this.$route.query.id); // JSON.stringify()
let params = {
id: Number(this.$route.query.id),
executeId: Number(this.$route.query.executeId)
};
Api.productsandoperators(params)
.then(res => {
if (res.success && res.result) {
this.detailId = res.result.detailId;
this.nextDetailId = res.result.nextDetailId;
let users = res.result.users;
this.userlist = [];
users.forEach(u => {
(u.value = u.id), (u.label = u.userName);
this.userlist.push(u);
});
let resoult = res.result.products;
resoult.filter(u => {
u.checked = false;
this.cardlist.push(u);
});
}
})
.catch(e => {
this.$Message.error("连接错误");
});
},
// 全选
allcheck() {
let cardslist = this.cardlist;
cardslist.map(a => {
a.checked = true;
});
},
// 反选
rechecked() {
let cardslist = this.cardlist;
cardslist.map(b => {
b.checked = !b.checked;
});
},
// 单选
changeCards(checked, name) {
let cardlist = this.cardlist;
cardlist.map((u, i) => {
if (u.id == name) {
u.checked = checked;
}
});
},
//确定转续
ransOk() {
let userInfo = this.$refs.userSelected.getSelectItems();
let cardlist = this.cardlist;
let upList = [];
cardlist.map((u, i) => {
if (u.checked) {
upList.push(u.id);
}
});
if (upList.length == 0) {
this.$Message.error("请选择转续的产品!");
return;
}
if (!userInfo || userInfo.length == 0) {
this.$Message.error("请选择人员!");
return;
}
let params = {
id: Number(this.$route.query.id),
detailId: this.detailId,
nextDetailId: this.nextDetailId,
productIds: upList,
operatorId: userInfo[0].id,
operator: userInfo[0].userName
};
Api.confirmproductsandoperator(params)
.then(res => {
if (res.success && res.result) {
this.$Message.success("转续成功");
this.ransferModal=false
}
else{
this.$Message.error("转续失败");
}
})
.catch(e => {
this.$Message.error("连接错误");
});
} }
}, },
watch: { watch: {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="add_user"> <div class="add_user">
<Form ref="form" :model="entity" :rules="rules" :label-width="100"> <Form ref="form" :model="entity" :rules="rules" :label-width="100">
<Row> <Row>
<Col span="8"> <!-- <Col span="8">
<FormItem label="所属车间"> <FormItem label="所属车间">
<Select v-model="entity.che" style="width:200px"> <Select v-model="entity.che" style="width:200px">
<Option v-for="item in cityList" :value="item.value" :key="item.value"> <Option v-for="item in cityList" :value="item.value" :key="item.value">
...@@ -23,25 +23,51 @@ ...@@ -23,25 +23,51 @@
<FormItem label=""> <FormItem label="">
<Input search enter-button placeholder="请输入编号" /> <Input search enter-button placeholder="请输入编号" />
</FormItem> </FormItem>
</Col> </Col>-->
<Col span="24" class="mb20"> <Col span="24" class="mb20">
<FormItem label="既定人员">
<div class="gd_userB"> <div class="gd_userB">
<a class="user_item" @click="checkItem(index)" v-for="(item,index) in listMan" :key="index"> <a
<div :class="{user_bg:item.checked}" > class="user_item"
v-model="entity.oldUserse"
@click="checkItem(index)"
v-for="(item,index) in listMan"
:key="index"
>
<div :class="{user_bg:item.checked}">
<Icon type="md-contact" /> <Icon type="md-contact" />
<div class="gd_user"> <div class="gd_user">
<span class="user_name">{{item.userName}}</span> <p class="user_name">{{item.userName}}</p>
<span class="user_number">{{item.userCode}}</span> <p class="user_number">{{item.cardNo}}</p>
</div> </div>
</div> </div>
<!-- <RadioGroup class="man_body"> v-model="item.checked"
<Radio border :label="entity.oldUserse" class="checkUser">
<span class="svg_name" :title="item.userName">{{item.userName}}</span>
</Radio >
</RadioGroup >-->
<!-- <radioButton v-model="entity.oldUserse" @on-change="radioChange">
<RadioGroup class="man_body">
<Radio border :label="entity.oldUserse" class="checkUser">
<span class="svg_name" :title="item.userName">{{item.userName}}</span>
</Radio >
</RadioGroup >
</radioButton>-->
</a> </a>
</div> </div>
</FormItem>
</Col>
<Col span="24" v-show="showSelect">
<FormItem label="添加人员" style="width:90%">
<UserSelect ref="userSelected" v-model="entity.userse" @on-change="changeUser"/>
<!-- :roleTitle="roleTitle" :datas="userlist" :multiple="true" -->
</FormItem>
</Col> </Col>
<Col span="24"> <Col span="24">
<FormItem label="分配工时"> <FormItem label="分配工时" prop="setTime">
<InputNumber :max="30" :min="0" v-model="value1"></InputNumber>&nbsp;&nbsp;&nbsp;&nbsp; <!-- <InputNumber :max="30" :min="0" v-model="value1"></InputNumber>&nbsp;&nbsp;&nbsp;&nbsp; -->
<InputNumber :max="23" :min="0" v-model="value1"></InputNumber> 小时 &nbsp;&nbsp;&nbsp;&nbsp; <InputNumber :max="maxHour" :min="1" v-model="entity.workHour" @on-change="testChange"></InputNumber>工时 &nbsp;&nbsp;&nbsp;&nbsp;
<InputNumber :max="59" :min="1" v-model="value1"></InputNumber> 分钟 &nbsp;&nbsp;&nbsp;&nbsp; <!-- <InputNumber :max="59" :min="1" v-model="value1"></InputNumber> 分钟 &nbsp;&nbsp;&nbsp;&nbsp; -->
</FormItem> </FormItem>
</Col> </Col>
</Row> </Row>
...@@ -49,73 +75,124 @@ ...@@ -49,73 +75,124 @@
<Row> <Row>
<Col span="24" style="text-align:right;height:60px;line-height:60px"> <Col span="24" style="text-align:right;height:60px;line-height:60px">
<Button @click="handleClose" class="mr20">取消</Button> <Button @click="handleClose" class="mr20">取消</Button>
<Button type="primary" @click="handleSubmit">确定</Button> <Button type="primary" @click="handleSubmit">保存</Button>
</Col> </Col>
</Row> </Row>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data(){ data() {
return{ return {
admor:1,
value1:1,
u_bgFlag:false,
entity: { entity: {
oldUserse: "",
userse: null,
workHour: 1
}, },
// userlist:[],
userflag:false,
showSelect: true,
rules: { rules: {
outSideTime: [ outSideTime: [
{ required: true, message: "必填", type: "number", trigger: "change" } { required: true, message: "必填", type: "number", trigger: "change" }
] ]
}, },
cityList:[ maxHour: 10,
listMan: [
{ {
value: '车间A1', checked: false,
label: '车间A1' userName: "张珊珊1",
},{ cardNo: "08965481",
value: '车间A2', id: 1
label: '车间A2'
},{
value: '车间A3',
label: '车间A3'
},{
value: '车间A4',
label: '车间A4'
},{
value: '车间A5',
label: '车间A5'
}, },
],
listMan:[
{ {
checked:false, checked: false,
userName:'张珊珊1', userName: "张珊珊2",
userCode:'08965481', cardNo: "08965482",
id: 1
},{
checked:false,
userName:'张珊珊2',
userCode:'08965482',
id: 2 id: 2
},{ },
checked:false, {
userName:'张珊珊3', checked: false,
userCode:'08965483', userName: "张珊珊3",
cardNo: "08965483",
id: 3 id: 3
} }
], ]
} };
}, },
created(){},
methods: { methods: {
handleSubmit(){ handleSubmit() {
console.log(this.entity);
this.$emit("on-ok", this.entity); this.$emit("on-ok", this.entity);
}, },
handleClose(){ //单选框
radioChange(val) {
alert("选择项的值:" + val);
},
handleClose() {
this.$emit("on-close"); this.$emit("on-close");
}, },
checkItem(i){ checkItem(i) {
this.listMan[i].checked = !this.listMan[i].checked; if(this.userflag){
this.$Message.error("只能选择一人");
return
}
let oldlist = this.listMan
oldlist[i].checked = !oldlist[i].checked;
let oolist = [];
oldlist.map(u => {
if (u.checked) {
oolist.push(u);
this.showSelect = false
if (1 < oolist.length) {
this.$Message.error("只能选择一人");
this.listMan[i].checked = false;
}
}
});
oolist.map(u => {
if (u.checked) {
this.entity.oldUserse = u.userName;
this.showSelect = false
}else{
this.entity.oldUserse = '';
}
});
if(oolist.length==0){
this.showSelect = true
}
},
// 选择新增人员
changeUser(data){
console.log(data)
if(data&&data!=undefined){
this.userflag = true
}
if(data==undefined){
this.userflag = false
}
let alloterInfo = this.$refs.userSelected.getSelectItems();
console.log(alloterInfo)
}, },
testChange() {
// 该方法在input内容改变是就会触发进行检测
this.numberChange(this.entity.workHour); // 调用函数
}, },
} // 封装控制小数点位数的函数
numberChange(VauleNumber) {
// VauleNumber你想要控制位数的数字
let newNumber = null;
if (VauleNumber >= 0) {
let reg = /.*\..*/;
if (reg.test(VauleNumber)) {
newNumber = parseFloat(VauleNumber.toFixed(1));
} else {
newNumber = VauleNumber;
}
}
return newNumber;
}
}
};
</script> </script>
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<!-- <Icon type="ios-time" /> --> <!-- <Icon type="ios-time" /> -->
<div class="gs_bo01"> <div class="gs_bo01">
<span class="shi">总工时</span> <span class="shi">总工时</span>
<span class="number">250</span> <span class="number">{{allHours}}</span>
</div> </div>
</div> </div>
<Divider type="vertical" class="line_slit"/> <Divider type="vertical" class="line_slit"/>
...@@ -16,25 +16,31 @@ ...@@ -16,25 +16,31 @@
<img src="@/assets/imgicon/execute/time02.png" alt=""/> <img src="@/assets/imgicon/execute/time02.png" alt=""/>
<div class="gs_bo01"> <div class="gs_bo01">
<span class="shi">待分配</span> <span class="shi">待分配</span>
<span class="number">200</span> <span class="number">{{waitHours}}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="gs_card_box"> <div class="gs_card_box">
<Card class="gs_card" v-for="i of 5" :key="i"> <Card class="gs_card" v-for="(item,index) in cardMan" :key="index">
<p slot="title" class="gs_title"> <p slot="title" class="gs_title">
张三 {{item.userName}}
<span class="fr">02816335{{i}}</span> <span class="fr">{{item.cardNo}}</span>
</p> </p>
<p class="gs_p">所属车间:车间A{{i}}</p> <!-- <p class="gs_p">所属车间:车间A{{i}}</p>
<p class="gs_p">所属班组:班组B{{i}}</p> <p class="gs_p">所属班组:班组B{{i}}</p> -->
<p class="gs_time"> <p class="gs_time">
<span class="b_size">100</span> 工时 <span class="b_size">{{item.workHour}}</span> 工时
</p> </p>
<!-- <p class="gs_p">
<span class="b_size">100</span>
</p>
<p class="gs_p">
<span class="b_size">100</span>
</p> -->
<p class="gs_footer"> <p class="gs_footer">
<a class="gs_edit" @click="editItem"> <!-- <a class="gs_edit" @click="editItem">
<Icon type="md-create" /> <Icon type="md-create" />
编辑</a> 编辑</a> -->
<a class="gs_del" @click="delItem"> <a class="gs_del" @click="delItem">
<Icon type="ios-trash-outline" /> <Icon type="ios-trash-outline" />
删除</a> 删除</a>
...@@ -54,6 +60,7 @@ ...@@ -54,6 +60,7 @@
</template> </template>
<script> <script>
import addview from "./add"; import addview from "./add";
import Api from "../api";
export default { export default {
name:'starOrder', name:'starOrder',
components: {addview,}, components: {addview,},
...@@ -63,10 +70,20 @@ export default { ...@@ -63,10 +70,20 @@ export default {
msg:'确认要删除吗?', msg:'确认要删除吗?',
title:'删除确认', title:'删除确认',
addmodal: false, addmodal: false,
allHours: 240,
waitHours: 200,
cardMan:[
// {
// userName:"张三",
// cardNo:123123,
// workHour:50,
// }
]
} }
}, },
created() { created() {
// this.treeHeight = window.innerHeight - 120; // this.treeHeight = window.innerHeight - 120;
this.laodHorse()
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
...@@ -80,8 +97,32 @@ export default { ...@@ -80,8 +97,32 @@ export default {
}; };
}, },
methods: { methods: {
laodHorse(){
let parme = {
dispatchId: this.$route.query.id,
routingDetailId: this.$route.query.routid,
count: this.$route.query.quantity
}
Api.getallhours(parme).then(res=>{
if(res.result){
this.allHours = res.result.allHours
this.waitHours = res.result.waitHours
this.$refs.addview.maxHour = this.waitHours
}else{
console.log("获取失败。")
}
})
},
addItem(){ addItem(){
this.addmodal = true this.addmodal = true
let id = this.$route.query.id
Api.getentryusers({Id:id}).then(res=>{
let result = res.result
result.map(u=>{
u.checked = false
})
this.$refs.addview.listMan = result
})
}, },
editItem(){ editItem(){
this.$Message.success("编辑工时...") this.$Message.success("编辑工时...")
...@@ -98,7 +139,13 @@ export default { ...@@ -98,7 +139,13 @@ export default {
cancel(){ cancel(){
this.addmodal = false this.addmodal = false
}, },
addInfo(){ addInfo(formdata){
console.log(formdata)
this.cardMan.push(formdata)
// this.cardMan.userName = formdata.userse||formdata.oldUserse
// this.cardMan.cardNo = formdata.cardNo
// this.cardMan.workHour = formdata.workHour
console.log(this.cardMan)
this.addmodal = false this.addmodal = false
} }
}, },
......
...@@ -27,7 +27,10 @@ ...@@ -27,7 +27,10 @@
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button> <Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template> </template>
<template slot="card" slot-scope="{row}"> <template slot="card" slot-scope="{row}">
<div class="body" @click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.status)"> <div
class="body"
@click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status)"
>
<Row class="title-i"> <Row class="title-i">
<Col :span="10" class="order-code">{{row.productName}}</Col> <Col :span="10" class="order-code">{{row.productName}}</Col>
<Col :span="10" class="order-code">{{row.mesCode}}</Col> <Col :span="10" class="order-code">{{row.mesCode}}</Col>
...@@ -182,6 +185,8 @@ export default { ...@@ -182,6 +185,8 @@ export default {
params.row.orderId, params.row.orderId,
params.row.executeId, params.row.executeId,
params.row.routingHeaderId, params.row.routingHeaderId,
params.row.routingDetailId,
params.row.quantity,
params.row.status params.row.status
) )
} }
...@@ -212,11 +217,19 @@ export default { ...@@ -212,11 +217,19 @@ export default {
search() { search() {
this.$refs.grid.reload(this.easySearch); this.$refs.grid.reload(this.easySearch);
}, },
toExecute(id, orderId, executeId,headid,status) { toExecute(id, orderId, executeId, headid, routingDetailId,quantity, status) {
//跳转到对应操作页面 获取id:this.$route.query.id //跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({ this.$router.push({
path: "/produce/execute", path: "/produce/execute",
query: { id: id, orderId: orderId, executeId: executeId,headid:headid,dispatchStatus:status } query: {
id: id, //工单ID
orderId: orderId, //订单id
executeId: executeId, //订单执行表id
headid: headid, //工艺规程id
routid: routingDetailId, //工序ID
quantity: quantity, //派工数量
dispatchStatus: status
}
}); });
}, },
tdStyle(val) { tdStyle(val) {
...@@ -280,7 +293,7 @@ export default { ...@@ -280,7 +293,7 @@ export default {
//返回img需要显示的src值 //返回img需要显示的src值
let tempUrl = ""; let tempUrl = "";
if (url && url.length > 0) { if (url && url.length > 0) {
tempUrl = this.downUrl +url; tempUrl = this.downUrl + url;
} else { } else {
tempUrl = iconImg + "noPic_product.png"; tempUrl = iconImg + "noPic_product.png";
} }
......
<style lang="less">
@import "../execute/execute.less";
</style>
<!--:action="action"-->
<template> <template>
<div class="p20"> <div>
<div class=""> <DataGrid
转序交接 :action="action"
</div> :columns="columns"
:conditions="easySearch"
ref="grid"
@on-selection-change="onSelect"
:batch="true"
:border="false"
:high="false"
:format="formatFun"
>
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input
search
enter-button
placeholder="请输入关键字产品名称"
v-model="easySearch.keys.value"
@on-search="search"
v-width="300"
/>
</FormItem>
</Form>
</template>
<template slot="batch">
<Button type="primary" class="mr10 ml10" @click="openTrans">确认转续</Button>
</template>
</DataGrid>
<Modal v-model="transModal" title="确认转续" width="900">
<div class="zhuanx mt30 mb20">
<p class="line_p">
<Input
prefix="ios-contact"
v-model="handonCardNo"
placeholder="请输入接收人员编号"
style="width: auto"
size="large"
/>
</p>
<!--<p class="line_p">
<Poptip trigger="focus">
<Input
v-model="handonCardNo"
prefix="ios-contact"
placeholder="请输入接收人员编号"
style="width: 300px"
/>
<div slot="content">{{ formatNumber }}</div>
</Poptip>
</p>-->
</div>
<div slot="footer">
<Button @click="transModal = false">取消</Button>
<Button type="primary" @click="transOk">确定转续</Button>
</div>
</Modal>
</div> </div>
</template> </template>
<script> <script>
import Api from "../execute/api";
export default { export default {
name:'starOrder', name: "reOrder",
data(){ data() {
return{ return {
action: Api.indexHandon,
starmodal: false, starmodal: false,
easySearch: {
keys: {
op: "productName",
value: null,
default: true
} }
}, },
transModal: false,
arrayIds: [],
rowDataArry: [],
columns: [
{
key: "selection",
type: "selection",
width: 50,
align: "center"
},
{
key: "handonNo",
title: this.l("handonNo"),
align: "left",
high: true
},
{
key: "status",
title: this.l("status"),
align: "center",
width: 120,
high: true,
code: "mes.order_execute_handon.status"
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
high: true
},
{
key: "batchNumber",
title: this.l("batchNumber"),
align: "left",
high: true
},
{
key: "handonCount",
title: this.l("handonCount"),
align: "right",
high: true
},
{
key: "qualifiedCount",
title: this.l("qualifiedCount"),
align: "right",
high: true,
hide: true
},
{
key: "finishTime",
title: this.l("finishTime"),
align: "center",
width: 150,
high: true
},
{
key: "currentDetailName",
title: this.l("currentDetailName"),
align: "left",
easy: true,
high: true
},
{
key: "nextDetailName",
title: this.l("nextDetailName"),
align: "left",
easy: true,
high: true
},
{
key: "handonUserId",
title: this.l("handonUserId"),
align: "left",
high: true,
type: "user"
},
{
key: "handonCardNo",
title: this.l("handonCardNo"),
align: "left",
high: true,
hide: true
},
{
key: "currentUserName",
title: this.l("currentUserName"),
align: "left",
easy: true,
high: true,
hide: true
},
{
key: "handonUserName",
title: this.l("handonUserName"),
align: "left",
easy: true,
high: true
},
{
key: "actualHandonUser",
title: this.l("actualHandonUser"),
align: "left",
high: true,
type: "user"
},
{
key: "handonTime",
title: this.l("handonTime"),
high: true,
align: "center",
width: 150
},
{
title: "操作",
key: "action",
width: 180,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.openTrans(params.row.id) },
style: params.row.status == 1 ? "" : "display:none"
},
"确认转续"
)
]);
}
}
],
handonCardNo: "",
userPwd: ""
};
},
created() { created() {
// this.treeHeight = window.innerHeight - 120; // this.treeHeight = window.innerHeight - 120;
}, },
...@@ -30,9 +239,68 @@ export default { ...@@ -30,9 +239,68 @@ export default {
}; };
}, },
methods: { methods: {
starFun(){ search() {
this.$Message.success("开工...") this.easySearch.keys.value = this.easySearch.keys.value.trim();
this.$refs.grid.reload(this.easySearch);
},
openTrans(val) {
if (val && val > 0) {
this.$refs.grid.selectAll(false);
this.arrayIds = [];
this.arrayIds.push(val);
}
this.transModal = true;
},
transOk() {
if (!this.handonCardNo || this.handonCardNo.trim == "") {
this.$Message.error("请输入接收人员编号!");
return;
}
let params = {
ids: this.arrayIds,
handonCardNo: this.handonCardNo
};
Api.handon(params)
.then(res => {
if (res.success && res.result) {
this.$Message.success("转续成功!");
this.transModal = false;
this.search();
} else {
this.$Message.error("转续失败!");
}
})
.catch(err => {
this.$Message.error("连接失败!");
});
}, },
onSelect(a, b) {
//批量选择
let selectRows = a;
this.arrayIds = [];
this.arrayIds = selectRows.map(e => e.id);
}, },
} l(key) {
let vkey = "order_execute_handon" + "." + key;
return this.$t(vkey) || key;
},
//格式化原始数据
formatFun(data) {
data.map(e => {
if (e.status != 1) {
e._disabled = true;
} else {
e._disabled = false;
}
});
return data;
}
},
computed: {
formatNumber() {
if (this.handonCardNo == "") return "请输入接收人员编号";
return this.handonCardNo;
}
}
};
</script> </script>
...@@ -134,6 +134,7 @@ export default { ...@@ -134,6 +134,7 @@ export default {
}, },
methods: { methods: {
clickData(data, liUrl) { clickData(data, liUrl) {
debugger
this.img = liUrl; this.img = liUrl;
this.entity.productUrl = liUrl; this.entity.productUrl = liUrl;
}, },
......
...@@ -23,7 +23,7 @@ export default ({ ...@@ -23,7 +23,7 @@ export default ({
next(); next();
} else { } else {
// 没有登录的时候跳转到登录界面 // 没有登录的时候跳转到登录界面
// 携带上登成功之后需要跳转的页面完整路径 // 携带上登成功之后需要跳转的页面完整路径
next({ next({
name: 'login', name: 'login',
query: { query: {
......
...@@ -1067,3 +1067,6 @@ html [type=button] { ...@@ -1067,3 +1067,6 @@ html [type=button] {
.gdShow { .gdShow {
box-shadow: 0px 0px 15px #333; box-shadow: 0px 0px 15px #333;
} }
.bgDDD {
background: #DDD;
}
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
} }
.execute_box .gd_list { .execute_box .gd_list {
position: absolute; position: absolute;
top: 40%; top: 43%;
left: 0px; left: 0px;
background: #2680EB; background: #2680EB;
color: #fff; color: #fff;
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
} }
.execute_box .gn_area { .execute_box .gn_area {
position: absolute; position: absolute;
top: 40%; top: 43%;
right: 0px; right: 0px;
background: #515A6E; background: #515A6E;
color: #fff; color: #fff;
...@@ -84,13 +84,16 @@ ...@@ -84,13 +84,16 @@
background: #ddd; background: #ddd;
margin: 10px 0 0 170px; margin: 10px 0 0 170px;
} }
.execute_box .bottom_box {
height: calc(100vh - 145px);
overflow-y: auto;
padding: 15px 40px 0px;
}
.execute_box .pross_case { .execute_box .pross_case {
padding: 5px 50px 0; padding: 5px 50px 0;
}
.execute_box .pross_case .table_box {
height: calc(100vh - 105px); height: calc(100vh - 105px);
} }
.execute_box .pross_case .table_box .card_box { .execute_box .pross_case .card_box {
background: #F5F6FA; background: #F5F6FA;
border: 1px solid #dedede7d; border: 1px solid #dedede7d;
padding: 10px; padding: 10px;
...@@ -99,12 +102,40 @@ ...@@ -99,12 +102,40 @@
margin: 10px 0 20px; margin: 10px 0 20px;
line-height: 30px; line-height: 30px;
} }
.execute_box .pross_case .table_box .card_box i { .execute_box .pross_case .card_box i {
font-size: 62px; font-size: 62px;
} }
.execute_box .pross_case .table_box .card_box:hover { .execute_box .pross_case .card_box:hover {
box-shadow: 4px 5px 7px #d2d2d2bd; box-shadow: 4px 5px 7px #d2d2d2bd;
} }
.execute_box .pros_check {
height: calc(100vh - 175px);
padding: 0;
}
.card_body {
border: 1px solid #e4e6ed;
border-radius: 4px;
margin-bottom: 30px;
}
.card_body .title_i {
padding: 0 8px;
height: 35px;
line-height: 35px;
color: #fff;
background: #a7b8cc;
font-size: 15px;
}
.card_body .btn_click {
text-align: right;
}
.card_body .down_text {
background: #a7b8cc33;
padding: 5px 8px;
line-height: 32px;
}
.card_body .down_text i {
font-size: 62px;
}
.gd_box .ivu-drawer-wrap .ivu-drawer-left { .gd_box .ivu-drawer-wrap .ivu-drawer-left {
width: 370px!important; width: 370px!important;
} }
...@@ -133,7 +164,7 @@ ...@@ -133,7 +164,7 @@
} }
.gd_box .ivu-drawer-wrap .ivu-drawer-left .ivu-drawer-content .ivu-drawer-body { .gd_box .ivu-drawer-wrap .ivu-drawer-left .ivu-drawer-content .ivu-drawer-body {
padding: 0; padding: 0;
height: calc(100% - 210px); height: calc(100% - 115px);
} }
.gd_box .ivu-drawer-wrap .ivu-drawer-left .ivu-drawer-content .ivu-drawer-body .order_list .select_t { .gd_box .ivu-drawer-wrap .ivu-drawer-left .ivu-drawer-content .ivu-drawer-body .order_list .select_t {
padding: 15px 20px; padding: 15px 20px;
...@@ -275,7 +306,7 @@ ...@@ -275,7 +306,7 @@
height: 59px; height: 59px;
line-height: 60px; line-height: 60px;
text-align: center; text-align: center;
width: calc(50% - 2px); width: calc(100% - 0px);
} }
.gs_set .gs_card_box .gs_card .gs_footer .gs_del { .gs_set .gs_card_box .gs_card .gs_footer .gs_del {
background: #2680EB; background: #2680EB;
...@@ -335,7 +366,7 @@ ...@@ -335,7 +366,7 @@
color: #fff; color: #fff;
} }
.wu_bg { .wu_bg {
height: calc(100vh - 100px); height: calc(100vh - 115px);
} }
.wu_bg .mass_box { .wu_bg .mass_box {
padding: 0 50px; padding: 0 50px;
...@@ -354,12 +385,12 @@ ...@@ -354,12 +385,12 @@
.wu_bg .mass_box h2 { .wu_bg .mass_box h2 {
height: 40px; height: 40px;
} }
.wu_bg .mass_box .heger {
color: #2680EB;
}
.wu_bg .mass_box .rangb { .wu_bg .mass_box .rangb {
color: #515A6E; color: #515A6E;
} }
.wu_bg .mass_box .hege {
color: #2680EB;
}
.wu_bg .mass_box .fanxiu { .wu_bg .mass_box .fanxiu {
color: #FFA000; color: #FFA000;
} }
...@@ -373,6 +404,9 @@ ...@@ -373,6 +404,9 @@
margin: 0 30px 0 0; margin: 0 30px 0 0;
color: #fff; color: #fff;
} }
.wu_bg .mass_box .chuanse .button04 {
background: #2680EB;
}
.wu_bg .mass_box .chuanse .button01 { .wu_bg .mass_box .chuanse .button01 {
background: #515A6E; background: #515A6E;
} }
...@@ -390,6 +424,7 @@ ...@@ -390,6 +424,7 @@
} }
.wu_bg .mass_box .mass_list .btn_play { .wu_bg .mass_box .mass_list .btn_play {
margin: 0 0 20px 0; margin: 0 0 20px 0;
color: #4d5055;
} }
.wu_bg .mass_box .mass_list .list01 { .wu_bg .mass_box .mass_list .list01 {
min-height: 50px; min-height: 50px;
...@@ -414,6 +449,9 @@ ...@@ -414,6 +449,9 @@
.wu_bg .mass_box .mass_list .list02 .tag_card02 { .wu_bg .mass_box .mass_list .list02 .tag_card02 {
margin: 0 20px 15px 0; margin: 0 20px 15px 0;
} }
.wu_bg .mass_box .hege_box .ivu-tag-dot-inner {
background: #2680EB;
}
.wu_bg .mass_box .rangbu .list02 .tag_card02 .ivu-tag-dot-inner { .wu_bg .mass_box .rangbu .list02 .tag_card02 .ivu-tag-dot-inner {
background: #515a6e; background: #515a6e;
} }
...@@ -439,6 +477,118 @@ ...@@ -439,6 +477,118 @@
position: absolute; position: absolute;
bottom: 1px; bottom: 1px;
} }
.wu_bgModal {
height: calc(100vh - 185px);
}
.wu_bgModal .mass_box {
padding: 0 50px;
}
.wu_bgModal .footer {
width: 100%;
position: absolute;
left: 0;
bottom: -5px;
height: 60px;
line-height: 60px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding-left: 50px;
}
.wu_bgModal .mass_box h2 {
height: 40px;
}
.wu_bgModal .mass_box .rangb {
color: #515A6E;
}
.wu_bgModal .mass_box .hege {
color: #2680EB;
}
.wu_bgModal .mass_box .fanxiu {
color: #FFA000;
}
.wu_bgModal .mass_box .feipin {
color: #FE7777;
}
.wu_bgModal .mass_box .chuanse button {
width: 88px;
height: 40px;
font-size: 16px;
margin: 0 30px 0 0;
color: #fff;
}
.wu_bgModal .mass_box .chuanse .button04 {
background: #2680EB;
}
.wu_bgModal .mass_box .chuanse .button01 {
background: #515A6E;
}
.wu_bgModal .mass_box .chuanse .button02 {
background: #FFA000;
}
.wu_bgModal .mass_box .chuanse .button03 {
background: #FE7777;
}
.wu_bgModal .mass_box .mass_list {
border: 1px solid #CACBD0;
border-radius: 4px;
padding: 10px 15px;
margin: 15px 0;
}
.wu_bgModal .mass_box .mass_list .btn_play {
margin: 0 0 20px 0;
color: #4d5055;
}
.wu_bgModal .mass_box .mass_list .list01 {
min-height: 50px;
max-height: 155px;
overflow-x: auto;
}
.wu_bgModal .mass_box .mass_list .list01 .tag_card {
cursor: pointer;
margin: 0 20px 15px 0;
}
.wu_bgModal .mass_box .mass_list .list01 .ivu-tag-checked {
border: 1px solid #2680EB !important;
}
.wu_bgModal .mass_box .mass_list .list01 .card_bor {
border: 1px solid #2680EB !important;
}
.wu_bgModal .mass_box .mass_list .list02 {
min-height: 50px;
max-height: 100px;
overflow-y: auto;
}
.wu_bgModal .mass_box .mass_list .list02 .tag_card02 {
margin: 0 20px 15px 0;
}
.wu_bgModal .mass_box .hege_box .ivu-tag-dot-inner {
background: #2680EB;
}
.wu_bgModal .mass_box .rangbu .list02 .tag_card02 .ivu-tag-dot-inner {
background: #515a6e;
}
.wu_bgModal .mass_box .fanxiu_box .list02 .tag_card02 .ivu-tag-dot-inner {
background: #FFA000;
}
.wu_bgModal .mass_box .fei_box {
width: calc(100% - 482px);
display: inline-block;
}
.wu_bgModal .mass_box .fei_box .list02 .tag_card02 .ivu-tag-dot-inner {
background: #FE7777;
}
.wu_bgModal .mass_box .fei_right {
float: right;
padding-top: 15px;
line-height: 50px;
width: 460px;
}
.wu_bgModal .futer {
width: 100%;
height: 60px;
position: absolute;
bottom: 1px;
}
.tech_box { .tech_box {
height: calc(100vh - 110px); height: calc(100vh - 110px);
} }
...@@ -548,3 +698,7 @@ ...@@ -548,3 +698,7 @@
display: inline-block; display: inline-block;
color: #515a6e; color: #515a6e;
} }
.zhuanx {
text-align: center;
line-height: 60px;
}
...@@ -10,7 +10,7 @@ let address=systemApi.dev; ...@@ -10,7 +10,7 @@ let address=systemApi.dev;
//let address=systemApi.local; //let address=systemApi.local;
window.systemUrl = `http://${address}:10000/system`; //System-api 系统管理(基础数据) window.systemUrl = `http://${address}:10000/system`; //System-api 系统管理(基础数据)
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登认证 window.authUrl = `http://${address}:10010`; //Authentication-api //统一登认证
window.designUrl = `http://${address}:10000/process`; // 工艺规程 window.designUrl = `http://${address}:10000/process`; // 工艺规程
window.PlanUrl = `http://${address}:10000/plan`; //订单 window.PlanUrl = `http://${address}:10000/plan`; //订单
// window.PlanUrl = `http://localhost:10050/api/services/app`; //Process-api // window.PlanUrl = `http://localhost:10050/api/services/app`; //Process-api
...@@ -27,7 +27,7 @@ window.technologyUrl =`http://${address}:10000/technology/`;//新工艺规程接 ...@@ -27,7 +27,7 @@ window.technologyUrl =`http://${address}:10000/technology/`;//新工艺规程接
window.iconImg = `/imgicon/`; window.iconImg = `/imgicon/`;
/* window.systemUrl = `http://${address}:10020/api/services/app`; //System-api 系统管理(基础数据) /* window.systemUrl = `http://${address}:10020/api/services/app`; //System-api 系统管理(基础数据)
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登认证 window.authUrl = `http://${address}:10010`; //Authentication-api //统一登认证
window.designUrl = `http://${address}:10030/api/services/app`; //Process-api 工艺规程 window.designUrl = `http://${address}:10030/api/services/app`; //Process-api 工艺规程
window.PlanUrl = `http://${address}:10050/api/services/app`; //Process-api window.PlanUrl = `http://${address}:10050/api/services/app`; //Process-api
window.routeUrl = `http://${address}:10050/api/services/app`; //Process-api window.routeUrl = `http://${address}:10050/api/services/app`; //Process-api
......
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