Commit f6b29aad authored by 仇晓婷's avatar 仇晓婷

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

parents 3af63b53 e4e38ecc
......@@ -12,7 +12,38 @@ html body {
#__layout {
height: 100%
}
/*flex*/
.flex{
display: flex;
//采用flex布局
}
.fc-m{
justify-content: center;
}
.fc-e{
justify-content: flex-end;
}
.fc-b{
justify-content: space-between;
}
.fc-a{
justify-content: space-around;
}
.fd{
flex-direction: column;
}
.fg{
flex-grow: 1;
}
.fg2{
flex-grow: 2;
}
.fos{
order: -1;
}
.foe{
order: 99;
}
/*字体*/
.ib {
display: inline;
......@@ -51,7 +82,11 @@ html body {
color: #f23a3a;
cursor: pointer;
}
.stitle{
height: 40px;
background-color: #F5F6FA;
line-height: 40px;
}
//行高
.lh10 {
line-height: 10px
......@@ -76,7 +111,9 @@ html body {
.lh40 {
line-height: 40px
}
.lh50 {
line-height: 50px
}
/*边距*/
.m10 {
......@@ -1199,4 +1236,6 @@ html [type=button] {
.content {
padding-left: 5px;
}
\ No newline at end of file
.h100{
height: 100%;
}
\ No newline at end of file
<template>
<div>
<h3 class="title">
<Input search placeholder="请输入查询条件" clearable v-model="treeInputSearch" />
<Input search placeholder="请输入查询条件" style="width:72%" clearable v-model="treeInputSearch" />
<ButtonGroup class="fr" size="small">
<Button>
<Icon
......
<template>
<div>
<RadioGroup
v-if="type === 'radio'"
ref="dicradio"
v-model="name"
@on-change="change"
:vertical="vertical"
>
<Radio
v-for="(item, index) in dic"
:disabled="item.disabled"
:label="item.value"
:key="index"
<div>
<RadioGroup
v-if="type === 'radio'"
ref="dicradio"
v-model="name"
@on-change="change"
:vertical="vertical"
>
<Radio
v-for="(item, index) in dic"
:disabled="item.disabled"
:label="item.value"
:key="index"
:border="border"
>
<span :title="item.value">{{ item.label }}</span>
</Radio
> </RadioGroup>
<span :title="item.value">{{ item.label }}</span>
</Radio>
</RadioGroup>
<Select
v-else
:placeholder="placeholder"
v-model="name"
@on-change="change"
:disabled="disabled"
:multiple="multiple"
clearable
:transfer="true"
>
<Option
v-for="(item, i) in dic"
:value="item.value"
:disabled="item.disabled"
:key="item.value"
:label="item.label"
v-else
:placeholder="placeholder"
v-model="name"
@on-change="change"
:disabled="disabled"
:multiple="multiple"
clearable
:transfer="true"
>
<span :title="item.value">
{{item.label}}
</span>
</Option>
</Select>
</div>
<Option
v-for="(item, i) in dic"
:value="item.value"
:disabled="item.disabled"
:key="item.value"
:label="item.label"
>
<span :title="item.value">{{item.label}}</span>
</Option>
</Select>
</div>
</template>
<script>
export default {
model: {
prop: 'value',
event: 'on-change'
prop: "value",
event: "on-change"
},
props: {
code: String,
value: [String, Number, Array],
placeholder: {
type: String,
default: '请选择'
default: "请选择"
},
type: {
// 显示形式: select 或者radio
type: String,
default: 'Select'
default: "Select"
},
border: {//radio可以选择border属性
type: Boolean,
default: false
},
multiple: {
//是否多选
......@@ -76,18 +79,17 @@ export default {
limit: {
//限制只在此值范围内进行选择,其它值禁用选择。
type: String,
default: ''
default: ""
}
},
data() {
return {
name: this.value,
data: []
}
};
},
created() {
this.data = this.$store.getters.dictionaryByKey(this.code)
this.data = this.$store.getters.dictionaryByKey(this.code);
},
mounted() {
// if(this.value==undefined||this.value==''||this.value==null)
......@@ -102,49 +104,49 @@ export default {
// }
// this.name = v
},
methods: {
change(event) {
this.$emit('on-change', event)
this.$emit("on-change", event);
}
},
computed: {
dic() {
let result = []
let limit = this.limit.split(',')
this.data.forEach((u) => {
let v = u.code
let s = u.status
let result = [];
let limit = this.limit.split(",");
this.data.forEach(u => {
let v = u.code;
let s = u.status;
try {
v = parseInt(u.code)
v = parseInt(u.code);
} catch (err) {
console.warn('数据字典值请设置为int')
console.warn("数据字典值请设置为int");
}
var disabled = this.disabled //false
var disabled = this.disabled; //false
if (!this.disabled && !this.$u.isNull(this.limit)) {
disabled = limit.indexOf(v + '') == -1
disabled = limit.indexOf(v + "") == -1;
}
if (!this.disabled) {
disabled = s == 1 ? true : false
disabled = s == 1 ? true : false;
}
result.push({
label: u.name,
value: v,
disabled: disabled
})
})
return result
});
});
return result;
}
},
watch: {
value: {
handler(v, o) {
this.name = v
this.name = v;
},
deep: true
}
}
}
};
</script>
<style lang="less">
.w200 {
......
......@@ -29,7 +29,7 @@ export default {
default: "text"
},
title: {
type: String
type: String,
},
msg: {
type: String,
......@@ -47,7 +47,8 @@ export default {
detail: "查看",
edit: "编辑",
add: "添加",
delete: "删除"
delete: "删除",
remove: "删除"
};
if (oprates[this.oprate]) {
......@@ -61,9 +62,9 @@ export default {
},
methods: {
handler() {
if (this.oprate == "delete") {
if (this.oprate == "delete"||this.oprate == "remove") {
this.$Modal.confirm({
title: "确认",
title: this.title,
content: "<p>" + this.msg + "</p>",
onOk: () => {
this.$emit("click", event);
......
<template>
<TreeSelect
v-model="dep"
:data="data"
@on-change="change"
:disabled="disabled"
:multiple="multiple"
/>
</template>
<script>
export default {
model: {
prop: "value",
event: "on-change"
},
data() {
return {
dep: "",
data: [],
list: []
};
},
created() {
this.dep = this.value | "";
//http://39.100.148.168:10030/api/services/app/productlevel/getproducttreenew
this.$api.get(`${designUrl}/productlevel/getproducttreenew`).then(r => {
this.list = r.result;
setTree(r.result)
function setTree(data) {
data.map(u => {
u.title = u.name;
u.value = u.id;
// u.expand = true;
// u.selected = false;
// u.checked = false;
if (u.children) {
setTree(u.children);
}
});
}
var data = r.result;
this.data = this.$u.clone(data);
});
},
props: {
value: [String, Number, Array],
placeholder: {
type: String,
default: "请选择部门"
},
multiple: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
}
},
methods: {
change(v) {
console.log(v);
this.dep = v;
var item;
var items = this.list.filter(u => {
return u.id == v;
});
if (items && items.length > 0) {
item = items[0];
}
this.$emit("on-change", v, item);
}
},
watch: {
value: {
handler(v, o) {
this.dep = v | "";
},
deep: true
}
}
};
</script>
\ No newline at end of file
<template>
<div class="flex fd tree-menu">
<h3 class="stitle pl10">
产品结构
<div class="fr mr10 mt10">
<ButtonGroup class="fr" size="small">
<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"></Tree>
</div>
</div>
</div>
</template>
<script>
export default {
name: "",
data() {
return {
keys: "",
expand: false,
list: []
};
},
created() {
this.loadTree();
},
methods: {
loadTree() {
this.$api.get(`${designUrl}/productlevel/getproducttreenew`).then(r => {
setTree(r.result);
function setTree(data) {
data.map(u => {
u.title = u.name;
u.value = u.id;
// u.expand = true;
// u.selected = false;
// u.checked = false;
if (u.children) {
setTree(u.children);
}
});
}
var data = r.result;
this.list = this.$u.clone(data);
});
},
toggle() {
this.expand = !this.expand;
},
change(v,b) {
let ids=[];
ids.push(b.value);
if(b.children){
addId(b.children);
function addId(data){
data.map(u=>{
ids.push(u.value)
if(u.children){
addId(u.children)
}
})
}
}
this.$emit("on-select",b.value,b,ids)
},
hide(){
this.$emit("on-hide")
}
},
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<3){
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>
<style lang="less">
.tree-menu {
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
// height:0;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 200px);
overflow: auto;
}
}
</style>
\ No newline at end of file
......@@ -4,6 +4,11 @@ export default {
menu: {
i18n: '多语言'
},
id: '编号',
creationTime: '创建时间',
creatorUserId: '创建人',
lastModificationTime: '更新时间',
lastModifierUserId: '更新人',
page: {
login: {
title: '登录',
......@@ -960,12 +965,12 @@ export default {
outSideTime: '外协工期',
taskSeq: '工序号',
taskName: '工序名称',
productName:'产品名称',
drawingNum:'产品图号',
batchNum:'批次号',
projectNo:'项目号',
partTaskPk:'计划编号',
opTaskPk:'工单Id',
productName: '产品名称',
drawingNum: '产品图号',
batchNum: '批次号',
projectNo: '项目号',
partTaskPk: '计划编号',
opTaskPk: '工单Id',
}, //多租户-服务器数据源
host: {
id: '',
......@@ -1160,6 +1165,33 @@ export default {
changeMethod: '更改办法',
taskType: '任务类型',
},
routingHeader: {
classId: '类id',
unicode: 'unicode',
name: '工艺名称',
code: '工艺编号',
productId: '产品id',
version: '版本',
author: '编制人',
departmentId: '主制车间',
isMain: '主工艺',
upId: '父工艺',
upDetailId: '上级工序',
routingType: '工艺类型',
status: '状态',
approvalStatus: '审批状态',
remark: '备注',
approvalStatusRemark: '审批备注',
auditUserId1: '审批人',
auditUserId2: '审批人',
isDeleted: '是否删除',
platesnum: '板数',
isEffect: '生效',
versionnotes: '版本',
phase: '阶段',
versionid: '版本ID',
isSendPpm: '发送PPM',
},
routing_detail: {
id: '',
creationTime: '创建时间',
......@@ -1295,5 +1327,69 @@ export default {
holidayCalName: '加班日历名称',
isimportant: '关重',
capabilityValue: '能力值',
},
routing_qc_card: { //智控卡
id: '',
creationTime: '创建时间',
creatorUserId: '创建人',
lastModificationTime: '最近修改时间',
lastModifierUserId: '最近修改人',
isDeleted: '是否删除',
deleterUserId: '删除人',
deletionTime: '删除时间',
routingHeaderId: '工艺ID',
routingHeaderName: '工艺',
routingDetailId: '工序ID',
routingDetailName: '工序',
routingStepId: '工步ID',
checkContent: '检测内容',
checkType: '检测类型',
checkParams: '检测要求',
measurementUnit: '测量单位',
fillintype: '填报类型',
qualityTemplate: '模板',
isphotograph: '是否拍照',
status: '状态',
extend: '扩展字段',
remark: '备注',
productionRequirement: '生产要求',
standard: '标准指标',
qualityTemplateName: '模板名称',
isImportant: '关键检验',
firstCheck: '首件检验',
inspection: '巡检',
inspectionTime: '巡查间隔时间',
sampling: '抽检',
samplingBatch: '抽检批次',
},
routingsupporting: {//工艺BOM
id: '',
creationTime: '创建时间',
creatorUserId: '创建人',
lastModificationTime: '更新时间',
lastModifierUserId: '更新人',
isDeleted: '删除人',
deletionTime: '删除时间',
deleterUserId: '删除人',
routingHeaderId: '工艺ID',
routingHeaderName: '工艺',
routingDetailId: '工序ID',
routingDetailName: '工序',
routingStepId: '工步ID',
quantity: '数量',
materialId: '物料id',
materialType: '物料类型',
materialNumber: '物料编号',
nameMaterial: '物料名称',
brand: '牌号',
specifications: '规格',
xhgg: '型号规格',
texture: '材质',
procurementStandards: '采购标准',
qualityGrade: '质量等级',
state: '状态',
extend: '扩展字段',
remark: '备注',
drawNum: '产品图号',
}
}
......@@ -43,12 +43,12 @@ henq.isArray = u => {
return Object.prototype.toString.call(u) == '[object Array]';
}
henq.toIntArray = u => {
if(henq.isNull(u)){
if (henq.isNull(u)) {
return [];
}
var arrs=u.split(',')
var result=[];
arrs.map(p=>{
var arrs = u.split(',')
var result = [];
arrs.map(p => {
result.push(parseInt(p));
})
return result;
......@@ -96,7 +96,7 @@ henq.getDate = (strDate) => {
}).match(/\d+/g) + ')');
return date;
}
henq.group=(array, f)=> {
henq.group = (array, f) => {
const groups = {};
array.forEach(function (o) {
const group = JSON.stringify(f(o));
......@@ -122,7 +122,7 @@ henq.toTree = (list, rootId, format, parentFiledName) => {
if (format) {
format(u)
}
u.children = toTree(data, u.id, level)
u.children = toTree(data, u.id, level)
})
}
return parents;
......@@ -130,19 +130,20 @@ henq.toTree = (list, rootId, format, parentFiledName) => {
return toTree(list, rootId, i)
}
henq.treeToList = (tree) => {
let list=[];
let list = [];
function treeToList(data) {
data.map(u=>{
if(u.children){
treeToList(u.children,u)
data.map(u => {
if (u.children) {
treeToList(u.children, u)
}
let copy=henq.clone(u);
let copy = henq.clone(u);
delete copy.delete;
copy.parent=u;
copy.parent = u;
list.push(copy);
})
}
treeToList(tree,null)
treeToList(tree, null)
return list;
}
//导出pdf
......@@ -169,4 +170,15 @@ henq.outPdf = (ele, fileName) => {
window.open("/static/pdf.html", '_blank');
}, 1000)
}
export default henq;
\ No newline at end of file
henq.getArry = (arryList) => {//得到数据字典对应的label和value,用于table排序
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
}
export default henq;
......@@ -82,14 +82,8 @@
<Modal v-model="scheduleModal" title="移入排产" width="800">
<p>&nbsp;</p>
<h4>请选择排产模型:</h4>
<RadioGroup v-model="scheduleType" class="radioList" @on-change="onchangeScheduleType">
<Radio label="1" border>APS排产</Radio>
<Radio label="2" border>智能排产</Radio>
<Radio label="3" border>整机排产</Radio>
<Radio label="4" border>流水排产</Radio>
</RadioGroup>
<p class="pl30 pt10" v-show="scheduleType!=''">
<Dictionary code="aps.plan.scheduleType" v-model="scheduleType" class="radioList" border="true" type="radio" @on-change="onchangeScheduleType"></Dictionary>
<p class="pl30 pt10" v-show="scheduleType!=null">
确定将订单
<span class="fwBold">{{resultsOrderList}}</span> 移入
<span class="red fwBold">{{scheduleTypeName}}</span>
......@@ -316,7 +310,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail" },
attrs: { oprate: "detail",title: params.row.mainRoutingSetStatus == 0? "工艺派发": "移入排产"},
style: {
color: params.row.mainRoutingSetStatus == 0 ? "red" : ""
},
......@@ -337,7 +331,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail" },
attrs: { oprate: "detail",title: params.row.isSupportingFinish == 2|| params.row.isSupportingFinish == 3? "配套派发": "" },
style: {
color: params.row.mainRoutingSetStatus == 0 ? "red" : ""
},
......@@ -370,7 +364,7 @@ export default {
dispatchStatus: 0, //派发标识
scheduleStatus: 0, //排产标识
resultsOrderList: "",
scheduleType: "",
scheduleType: null,
scheduleTypeName: ""
};
},
......@@ -456,7 +450,7 @@ export default {
},
modalSchedule() {
//移入排产
this.scheduleType = "";
this.scheduleType = null;
this.scheduleTypeName = "";
this.listBatchIds = this.listBatchIds1;
if (this.scheduleStatus == 1) {
......@@ -470,7 +464,7 @@ export default {
this.canselFooter();
this.resultsOrderList = value.mesCode;
this.listBatchIds = [value.id];
this.scheduleType = "";
this.scheduleType = null;
this.scheduleTypeName = "";
if (value.mainRoutingSetStatus == 0) {
//this.dispatchStatus = 1
......@@ -487,12 +481,12 @@ export default {
this.$refs.orderSupport.loaddata(value.id);
},
scheduleOk() {
if (this.scheduleType == "") {
if (this.scheduleType == null) {
this.$Message.error("请选择排产模型");
} else {
let params = {
ids: this.listBatchIds,
poolType: Number(this.scheduleType)
poolType: this.scheduleType
};
Api.moveinbatch(params)
.then(r => {
......@@ -614,13 +608,13 @@ export default {
//移入排产前选择排产模型
onchangeScheduleType(val) {
switch (val) {
case "2":
case 4:
this.scheduleTypeName = "智能排产";
break;
case "3":
case 2:
this.scheduleTypeName = "整机排产";
break;
case "4":
case 3:
this.scheduleTypeName = "流水排产";
break;
default:
......@@ -630,13 +624,13 @@ export default {
//移入排产成功后给标题增加数量
changeCountOut(type, count) {
switch (type) {
case "2": //智能排产池排产订单数量
case 4: //智能排产池排产订单数量
this.$store.commit("setCountAi", this.$store.state.countAi + count);
break;
case "3": //整机排产池排产订单数量
case 2: //整机排产池排产订单数量
this.$store.commit("setCountAll", this.$store.state.countAll + count);
break;
case "4": //流水排产池排产订单数量
case 3: //流水排产池排产订单数量
this.$store.commit("setCountRun", this.$store.state.countRun + count);
break;
default:
......
......@@ -166,7 +166,8 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",
title: this.tabIndex == 2? "审核": "查看"
},
on: {
click: () => {
......
......@@ -68,7 +68,8 @@ export default {
"op",
{
attrs: {
oprate: "add"
oprate: "add",
title:"查看"
},
on: {
click: () => {
......
......@@ -297,7 +297,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail" },
attrs: { oprate: "detail",title: "查看" },
on: { click: () => this.detail(params.row) }
},
"查看"
......@@ -305,7 +305,7 @@ export default {
h(
"op",
{
attrs: { oprate: "edit" },
attrs: { oprate: "edit",title: "编辑" },
on: { click: () => this.edit(params.row) },
style:
(params.row.status == 1 &&
......@@ -321,7 +321,7 @@ export default {
h(
"op",
{
attrs: { oprate: "remove" },
attrs: { oprate: "remove",title: "删除" },
on: { click: () => this.remove(params.row) },
style:
(params.row.status == 1 &&
......@@ -336,7 +336,7 @@ export default {
h(
"op",
{
attrs: { oprate: "detail" },
attrs: { oprate: "detail",title: "分解" },
on: { click: () => this.split(params.row) },
style:
(params.row.divideMark != 0 &&
......
......@@ -28,7 +28,7 @@
<Record :eid="recordId" />
</Modal>
<Modal v-model="SpeedModal" title="工单信息" fullscreen footer-hide class="recordM">
<Speed :result="result" />
<Speed :result="result" :load="loading" />
</Modal>
</div>
</template>
......@@ -68,7 +68,7 @@ export default {
{
title: "序号",
type: "index",
width: 40,
width: 70,
align: "center"
},
{
......@@ -77,13 +77,13 @@ export default {
code: "plan.order.status",
align: "center",
easy: true,
high: true
high: true,
width: 100
},
{
key: "mesCode",
title: this.l("mesCode"),
align: "left",
width: 230,
render: (h, params) => {
return h("div", [
params.row.mesCode,
......@@ -174,7 +174,6 @@ export default {
align: "left",
easy: true,
high: true,
width: 130
},
{
......@@ -243,7 +242,8 @@ export default {
align: "left",
code: "mes_xingchi_plan.order_material.routingType",
easy: true,
high: true
high: true,
width: 100,
},
{
title: this.l("jindu"),
......@@ -273,7 +273,6 @@ export default {
}
}
},
params.row.unstartCount //未开工数
),
h(
......@@ -289,7 +288,6 @@ export default {
}
}
},
params.row.startCount //开工数
),
h(
......@@ -307,7 +305,6 @@ export default {
}
}
},
params.row.stopCount //暂停数
),
h(
......@@ -324,8 +321,7 @@ export default {
}
}
},
params.row.finishCount //完工数
params.row.finishCount //完成数
)
]
)
......@@ -335,7 +331,8 @@ export default {
{
key: "remark",
title: this.l("remark"),
align: "center"
align: "center",
hide:true
},
{
title: "暂停记录",
......@@ -347,7 +344,7 @@ export default {
h(
"op",
{
attrs: { oprate: "record", class: "edit" },
attrs: { oprate: "record", class: "edit",title:'暂停记录' },
on: { click: () => this.record(params.row.id) }
},
"暂停记录"
......@@ -411,7 +408,8 @@ export default {
]);
}
}
]
],
loading: false
};
},
mounted() {},
......@@ -427,15 +425,29 @@ export default {
this.recordId = id;
},
speed(row) {
this.SpeedModal = true;
Api.info({
routingHeaderId: row.routingHeaderId,
dispatchExecuteId: row.dispatchExecuteId
}).then(r => {
if (r.success) {
this.result = r.result;
}
});
if (
row.finishCount == 0 &&
row.stopCount == 0 &&
row.startCount == 0 &&
row.unstartCount == 0
) {
this.$Message.error("进度数据错误");
} else {
this.result = [];
this.loading = true;
this.SpeedModal = true;
Api.info({
routingHeaderId: row.routingHeaderId,
dispatchExecuteId: row.dispatchExecuteId
}).then(r => {
if (r.success) {
this.result = r.result;
this.loading = false;
}
}).catch(err=>{
this.$Message.error("连接错误");
});
}
},
suspendOk() {
this.suspendModal = false;
......
<template>
<div class="record">
<DataGrid :columns="columns" ref="grid" :action="action" :tool="false" :height="820"></DataGrid>
<Tabs value="name1">
<TabPane label="订单暂停记录" name="name1">
<DataGrid :columns="columns" ref="grid" :action="action" :tool="false" :height="tdHeight"></DataGrid>
</TabPane>
<TabPane label="工单暂停记录" name="name2">
<DataGrid :columns="columnsProcess" ref="gridProcess" :tool="false" :height="tdHeight"></DataGrid>
</TabPane>
</Tabs>
<Modal v-model="detailModal" title="详情" width="800">
<Detail :eid="curId" />
</Modal>
......@@ -18,6 +25,7 @@ export default {
return {
detailModal: false,
action: Api.record,
tdHeight: "",
condition: {
orderId: { op: "Equal", value: this.eid },
keys: { op: "pauseCause,", value: null }
......@@ -29,7 +37,7 @@ export default {
{
title: "序号",
type: "index",
width: 60,
width: 70,
align: "center"
},
{
......@@ -103,7 +111,7 @@ export default {
);
}
},
{
key: "relatedPerson",
type: "user",
......@@ -111,13 +119,81 @@ export default {
align: "left",
high: true
}
],
columnsProcess: [
{
key: "productName",
title: "工序Id",
align: "left",
width: 90
},
{
key: "productName",
title: "工序号",
align: "left",
width: 90
},
{
key: "productName",
title: "工序名称",
align: "left",
width: 350,
},
{
key: "remark",
title: "暂停原因",
align: "left"
},
{
key: "productName",
title: "暂停人",
align: "left",
high: true,
width: 180
},
{
key: "productName",
title: "暂停时间",
align: "left",
width: 180
},
{
key: "productName",
title: "恢复人",
align: "left",
width: 180
},
{
key: "productName",
title: "恢复时间",
align: "left",
width: 180
},
{
key: "productName",
title: "相关人",
align: "left",
width: "180"
}
]
};
},
props: {
eid: Number
},
created() {},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.tdHeight = window.screenHeight - 180;
})();
};
},
created() {
this.tdHeight = window.innerHeight - 180;
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
......
<template>
<div class="record">
<DataGrid :columns="columns" :data="result" border :tool='false' :height="820"></DataGrid>
<div v-if="load" style="width:100px;margin:0 auto;padding-top:260px;">
<Spin size="large"></Spin>
</div>
<div v-show="!load">
<DataGrid :columns="columns" :data="result" border :tool="false" :height="820" :page="false"></DataGrid>
</div>
<Modal v-model="modalSplit" title="订单分卡" width="650" footer-hide>
<div slot="close">
<Icon type="ios-close" size="31" color="gray" @click="handleClose" />
</div>
<Form :model="entity" ref="form" :label-width="110" :rules="rules">
<Row>
<Col span="24">
<FormItem label="选择序列号" prop="num">
<Select v-model="entity.num" multiple>
<Option
v-for="(item,index) in numList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col>
<Col span="24">
<FormItem label="选择分卡原因" prop="reason">
<Select v-model="entity.reason" style="width:260px">
<Option
v-for="(item,index) in reasonList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col>
<Col span="24">
<FormItem label="备注说明">
<Input v-model="entity.remark" placeholder type="textarea" :rows="3" />
</FormItem>
</Col>
<!--
<Col span="14">
<FormItem label prop="action">
<RadioGroup v-model="entity.action" @on-change="onchangeAction">
<Radio :label="1">暂停</Radio>
<Radio :label="2">继续</Radio>
<Radio :label="3">移入排产</Radio>
</RadioGroup>
</FormItem>
</Col>
<Col span="10" v-if="entity.action===3">
<FormItem label prop="scheduleType">
<Dictionary
code="aps.plan.scheduleType"
v-model="entity.scheduleType"
class="scheduleTypeSelect"
></Dictionary>
</FormItem>
</Col>
-->
</Row>
</Form>
<Row>
<Col span="24" style="text-align:right;height:60px;line-height:60px">
<Button type="primary" @click="splitOk">确定分卡</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</Col>
</Row>
</Modal>
</div>
</template>
<script>
......@@ -11,16 +78,26 @@ export default {
data() {
return {
modalSplit: false,
entity: {
num: [], //序列号组合
reason: null, //分卡原因
remark: "", //备注信息
action: null, //操作
scheduleType: null //排产类型
},
columns: [
{
key: "detailId",
title: this.l("detailId"),
align: "center"
align: "center",
width: 100
},
{
key: "taskSeq",
title: this.l("taskSeq"),
align: "center"
align: "center",
width: 100
},
{
key: "detailName",
......@@ -97,21 +174,209 @@ export default {
{
key: "status",
title: '工单状态',
title: "工单状态",
code: "taskList.status",
align: "center"
align: "center",
width: 140,
filters: this.$u.getArry(
this.$store.getters.dictionaryByKey("taskList.status")
),
filterMethod(value, row) {
let statusChar = row.status + "";
return statusChar.indexOf(value) > -1;
}
},
{
title: "操作",
key: "action",
width: 120,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
props: {
oprate: "delete",
title: "暂停",
msg: "确定暂停工序:" + params.row.detailName + "?"
},
style: params.row.status == 14 ? "" : "display:none",
on: { click: () => this.pause(params.row) }
},
"暂停"
),
h(
"op",
{
props: { oprate: "edit", title: "分卡" },
style: params.row.status == 5 ? "" : "display:none",
on: { click: () => this.split(params.row) }
},
"分卡"
),
h(
"op",
{
props: {
oprate: "delete",
title: "继续",
msg: "确定继续执行工序:" + params.row.detailName + "?"
},
style: params.row.status == 5? "" : "display:none",
on: { click: () => this.continue(params.row) }
},
"继续"
)
]);
}
}
]
],
listTask: [],
numList: [
{
value: 1,
label: "SKJC-001"
},
{
value: 2,
label: "SKJC-002"
},
{
value: 3,
label: "SKJC-003"
},
{
value: 4,
label: "SKJC-004"
},
{
value: 5,
label: "SKJC-005"
},
{
value: 6,
label: "SKJC-006"
},
{
value: 7,
label: "SKJC-007"
},
{
value: 8,
label: "SKJC-008"
}
],
reasonList: [
{
value: 1,
label: "分卡原因1"
},
{
value: 2,
label: "分卡原因2"
},
{
value: 3,
label: "分卡原因3"
}
],
rules: {
num: [
{
required: true,
message: "请选择分卡原因",
trigger: "change",
type: "array"
}
],
reason: [
{
required: true,
message: "请选择分卡原因",
trigger: "change",
type: "number"
}
],
action: [
{
required: true,
message: "请选择操作",
trigger: "change",
type: "number"
}
],
scheduleType: [
{
required: true,
message: "请选择排产类型",
trigger: "change",
type: "number"
}
]
}
};
},
props: {
result: Array
result: Array,
load: Boolean
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
created() {},
methods: {
split(row) {
//工单分卡
this.modalSplit = true;
},
onchangeAction(val) {
//选择移入排产时显示排产模型下拉框
if (val != 3) {
this.entity.scheduleType = null;
}
},
splitOk() {
//确定分卡
this.$refs.form.validate(valid => {
if (valid) {
let params = {
num: this.entity.num,
reason: this.entity.reason,
remark: this.entity.remark,
action: this.entity.action,
scheduleType: this.entity.scheduleType
};
alert(JSON.stringify(params));
this.handleClose();
} else {
this.modalSplit = true;
}
});
},
handleClose() {
//取消分卡
this.entityReset();
this.modalSplit = false;
},
entityReset() {
//重置分卡项目
this.entity = {
num: [],
reason: null,
remark: "",
action: null,
scheduleType: null
};
},
pause(row) {
//暂停工单
alert(JSON.stringify(row));
},
continue(row) {
//继续工单
alert(JSON.stringify(row));
},
//截取字符串
sliceStr(str, lenS, lenE) {
return str.slice(lenS, lenE);
......@@ -120,8 +385,23 @@ export default {
let vkey = "mes_order_watch" + "." + key;
return this.$t(vkey) || key;
}
},
watch: {
result(v) {
if (v && v.length > 0) {
this.load = false;
}
}
}
};
</script>
<style lang='less'>
<style lang='less' scope>
.scheduleTypeSelect {
display: inline;
width: 180px;
margin-left: -110px;
.ivu-select {
width: 180px;
}
}
</style>
\ No newline at end of file
......@@ -371,7 +371,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "预览"
},
on: {
click: () => {
......@@ -390,7 +390,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "编辑"
},
on: {
click: () => {
......
......@@ -357,7 +357,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "预览"
},
on: {
click: () => {
......@@ -376,7 +376,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "编辑"
},
on: {
click: () => {
......
......@@ -129,7 +129,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "查看合格证"
},
on: { click: () => this.detail(params.row.id) }
},
......
......@@ -316,7 +316,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "检验"
},
on: {
click: () => {
......
......@@ -285,7 +285,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "设置最低库存"
},
on: { click: () => this.setNum(params.row) }
},
......
......@@ -290,7 +290,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "修改"
},
on: { click: () => this.edit(params.row.id) }
},
......@@ -300,7 +300,7 @@ export default {
"op",
{
attrs: {
oprate: "delete"
oprate: "delete",title: "删除"
},
class:
params.row.totalNum === params.row.numberAvailable
......@@ -314,7 +314,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "查看日志"
},
on: { click: () => this.logDetail(params.row.id) }
},
......@@ -381,7 +381,7 @@ export default {
},
remove(row) {
if (row.totalNum != row.numberAvailable) {
this.$Message.error("资源有接触不能删除");
this.$Message.error("资源有借出不能删除");
} else {
this.deletelModal = true;
this.curId = row.id;
......
......@@ -536,7 +536,7 @@ export default {
{
attrs: {
oprate: "detail",
class: "edit"
class: "edit",title: "设置日历"
},
on: {
click: () => {
......
......@@ -573,7 +573,8 @@ export default {
{
attrs: {
oprate: "detail",
class: "edit"
class: "edit",
title: "编辑"
},
on: {
click: () => {
......@@ -587,7 +588,7 @@ export default {
"op",
{
attrs: {
oprate: "delete"
oprate: "delete",title: "删除"
},
style: {
color: "red"
......@@ -604,7 +605,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "保养"
},
on: {
click: () => {
......@@ -618,7 +619,7 @@ export default {
"op",
{
attrs: {
oprate: "detail"
oprate: "detail",title: "维修"
},
on: {
click: () => {
......
......@@ -147,7 +147,8 @@ export default {
{
attrs: {
oprate: "detail",
class: "edit"
class: "edit",
title: "编辑"
},
on: {
click: () => {
......@@ -161,7 +162,7 @@ export default {
"op",
{
attrs: {
oprate: "delete"
oprate: "delete",title: "删除"
},
style: {
color: "red"
......
......@@ -178,7 +178,7 @@ export default {
h(
"op",
{
attrs: { oprate: "remove" },
attrs: { oprate: "remove",title: "删除" },
on: { click: () => this.remove(params.row.id) }
},
"删除"
......
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<!-- <Col :span="12">
<FormItem :label="l('classId')" prop="classId">
<InputNumber v-model="entity.classId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('unicode')" prop="unicode">
<Input v-model="entity.unicode"></Input>
</FormItem>
</Col>-->
<Col :span="12">
<FormItem :label="l('name')" prop="name">
<Input v-model="entity.name"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('code')" prop="code">
<Input v-model="entity.code"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingType')" prop="routingType">
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productId')" prop="productId">
<ProductSelect v-model="entity.productId"></ProductSelect>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('version')" prop="version">
<Input v-model="entity.version"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('author')" prop="author">
<Input v-model="entity.author"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('departmentId')" prop="departmentId">
<departmentSelect v-model="entity.departmentId"></departmentSelect>
</FormItem>
</Col> <Col :span="12">
<FormItem :label="l('isMain')" prop="isMain">
<Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isSendPpm')" prop="isSendPpm">
<Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
</FormItem>
</Col>
<!--
<Col :span="12">
<FormItem :label="l('upId')" prop="upId">
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('upDetailId')" prop="upDetailId">
<InputNumber v-model="entity.upDetailId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('approvalStatus')" prop="approvalStatus">
<Dictionary code="process.RoutingStatus" v-model="entity.approvalStatus"></Dictionary>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('approvalStatusRemark')" prop="approvalStatusRemark">
<Input v-model="entity.approvalStatusRemark"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('auditUserId1')" prop="auditUserId1">
<Input v-model="entity.auditUserId1"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('auditUserId2')" prop="auditUserId2">
<Input v-model="entity.auditUserId2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('platesnum')" prop="platesnum">
<InputNumber v-model="entity.platesnum"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('versionnotes')" prop="versionnotes">
<Input v-model="entity.versionnotes"></Input>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('phase')" prop="phase">
<InputNumber v-model="entity.phase"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('versionid')" prop="versionid">
<InputNumber v-model="entity.versionid"></InputNumber>
</FormItem>
</Col>-->
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
disabled: false,
entity: {
classId: null,
unicode: "",
name: "",
code: "",
productId: null,
version: "",
author: null,
departmentId: null,
isMain: 1,
upId: null,
upDetailId: null,
routingType: null,
status: 0,
approvalStatus: 0,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
isEffect: 1,
versionnotes: "",
phase: null,
versionid: null,
isSendPpm: 1
},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
v: Object,
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.entity.id = 0;
});
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
}
},
watch: {
v() {
this.entity = this.$u.clone(this.v);
},
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
};
</script>
\ No newline at end of file
import Api from '@/plugins/request'
export default {
index: `${technologyUrl}routingheader/paged`,
paged(params) {
return Api.post(`${technologyUrl}routingheader/paged`, params);
},
get(params) {
return Api.get(`${technologyUrl}routingheader/get`, params);
},
create(params) {
return Api.post(`${technologyUrl}routingheader/create`, params);
},
update(params) {
return Api.put(`${technologyUrl}routingheader/update`, params);
},
delete(id) {
return Api.delete(`${technologyUrl}routingheader/delete`, {
params: {
id: id
}
});
},
deletes(params) {
return Api.post(`${technologyUrl}routingheader/batchdelete`, params);
}
}
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('classId')">{{entity.classId}}</Filed>
<Filed :span="12" :name="l('unicode')">{{entity.unicode}}</Filed>
<Filed :span="12" :name="l('name')">{{entity.name}}</Filed>
<Filed :span="12" :name="l('code')">{{entity.code}}</Filed>
<Filed :span="12" :name="l('productId')">{{entity.productId}}</Filed>
<Filed :span="12" :name="l('version')">{{entity.version}}</Filed>
<Filed :span="12" :name="l('author')">{{entity.author}}</Filed>
<Filed :span="12" :name="l('departmentId')">{{entity.departmentId}}</Filed>
<Filed :span="12" :name="l('isMain')">{{entity.isMain}}</Filed>
<Filed :span="12" :name="l('upId')">{{entity.upId}}</Filed>
<Filed :span="12" :name="l('upDetailId')">{{entity.upDetailId}}</Filed>
<Filed :span="12" :name="l('routingType')">{{entity.routingType}}</Filed>
<Filed :span="12" :name="l('status')">{{entity.status}}</Filed>
<Filed :span="12" :name="l('approvalStatus')">{{entity.approvalStatus}}</Filed>
<Filed :span="24" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="12" :name="l('approvalStatusRemark')">{{entity.approvalStatusRemark}}</Filed>
<Filed :span="12" :name="l('auditUserId1')">{{entity.auditUserId1}}</Filed>
<Filed :span="12" :name="l('auditUserId2')">{{entity.auditUserId2}}</Filed>
<Filed :span="12" :name="l('platesnum')">{{entity.platesnum}}</Filed>
<Filed :span="12" :name="l('isEffect')">{{entity.isEffect}}</Filed>
<Filed :span="12" :name="l('versionnotes')">{{entity.versionnotes}}</Filed>
<Filed :span="12" :name="l('phase')">{{entity.phase}}</Filed>
<Filed :span="12" :name="l('versionid')">{{entity.versionid}}</Filed>
<Filed :span="12" :name="l('isSendPpm')">{{entity.isSendPpm}}</Filed>
</Row>
</div>
</template>
<script>
import Api from './api'
export default {
name: 'Add',
data() {
return {
entity: {},
rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }],
code: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit('on-load')
})
},
handleClose() {
this.$emit('on-close')
},
l(key) {
key = "routing_header" + "." + key;
return this.$t(key)
}
},
watch: {
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
}
</script>
\ No newline at end of file
......@@ -11,14 +11,14 @@
<div class="details_body">
<Menu mode="horizontal" theme="light" active-name="1">
<MenuItem name="1" to="/technology/details/working">工序</MenuItem>
<MenuItem name="2" to="/technology/details/controlcard">质控卡</MenuItem>
<MenuItem name="3" to="/technology/details/process">工艺BOM</MenuItem>
<MenuItem name="2" to="/technology/details/routingqccard">质控卡</MenuItem>
<MenuItem name="3" to="/technology/details/routingsupporting">工艺BOM</MenuItem>
<MenuItem name="4" to="/technology/details/setup/setupDetails">生产准备</MenuItem>
</Menu>
</div>
</Header>
<Layout class="bottom_box" >
<nuxt-child keep-alive></nuxt-child>
<nuxt-child keep-alive ></nuxt-child>
</Layout>
</Layout>
</template>
......@@ -35,6 +35,7 @@ export default {
},
created() {
this.treeHeight = window.innerHeight - 140
},
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
......
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="100">
<Row>
<!--
<Col :span="12">
<FormItem :label="l('creationTime')" prop="creationTime">
<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">
<Input v-model="entity.isDeleted"></Input>
</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('deletionTime')" prop="deletionTime">
<DatePicker type="date" v-model="entity.deletionTime"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('extend')" prop="extend">
<Input v-model="entity.extend"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingStepId')" prop="routingStepId">
<InputNumber v-model="entity.routingStepId"></InputNumber>
</FormItem>
</Col>
-->
<Col :span="12">
<FormItem :label="l('routingHeaderName')" prop="routingHeaderId">
<!--<InputNumber v-model="entity.routingHeaderId"></InputNumber>-->
181
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingDetailName')" prop="routingDetailId">
<Select v-model="entity.routingDetailId">
<Option
v-for="(item,index) in routingDetailList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('fillintype')" prop="fillintype">
<Dictionary code="QC.fillintype" v-model="entity.fillintype"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="entity.qualityTemplate" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productionRequirement')" prop="productionRequirement">
<Input v-model="entity.productionRequirement" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<Input v-model="entity.qualityTemplateName"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isImportant')" prop="isImportant">
<Dictionary code="Process.state" v-model="entity.isImportant" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('firstCheck')" prop="firstCheck">
<Dictionary code="Process.state" v-model="entity.firstCheck" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('inspection')" prop="inspection">
<Dictionary code="Process.state" v-model="entity.inspection" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('inspectionTime')" prop="inspectionTime">
<InputNumber v-model="entity.inspectionTime"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('sampling')" prop="sampling">
<Dictionary code="Process.state" v-model="entity.sampling" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('samplingBatch')" prop="samplingBatch">
<Input v-model="entity.samplingBatch"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
disabled: false,
entity: {
creationTime: null,
creatorUserId: null,
lastModificationTime: null,
lastModifierUserId: null,
isDeleted: null,
deleterUserId: null,
deletionTime: null,
routingHeaderId: null,
routingDetailId: null,
routingStepId: null,
checkContent: "",
checkType: null,
checkParams: "",
measurementUnit: "",
fillintype: null,
qualityTemplate: "",
isphotograph: null,
status: null,
extend: "",
remark: "",
productionRequirement: "",
standard: "",
qualityTemplateName: "",
isImportant: null,
firstCheck: null,
inspection: null,
inspectionTime: null,
sampling: null,
samplingBatch: ""
},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
},
routingDetailList: []
};
},
props: {
v: Object,
eid: Number
},
mounted() {
this.loadDetails();
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.entity.id = 0;
});
},
loadDetails() {
//获取工序列表
let parms = {
headerID: 181
};
Api.pagedDetails(parms).then(r => {
let tempDetails = r.result;
let tempD = [];
tempDetails.forEach(data => {
let tempObj = {};
tempObj.value = data.id;
tempObj.label = data.name;
tempD.push(tempObj);
});
this.routingDetailList = tempD;
});
},
l(key) {
key = "routing_qc_card" + "." + key;
return this.$t(key);
}
},
watch: {
v() {
this.entity = this.$u.clone(this.v);
},
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
};
</script>
import Api from '@/plugins/request'
export default {
index: `${technologyUrl}routingqccard/paged`,
paged(params) {
return Api.post(`${technologyUrl}routingqccard/paged`, params);
},
get(params) {
return Api.get(`${technologyUrl}routingqccard/get`, params);
},
create(params) {
return Api.post(`${technologyUrl}routingqccard/create`, params);
},
update(params) {
return Api.put(`${technologyUrl}routingqccard/update`, params);
},
delete(id) {
return Api.delete(`${technologyUrl}routingqccard/delete`, {
params: {
id: id
}
});
},
deletes(params) {
return Api.post(`${technologyUrl}routingqccard/batchdelete`, params);
},
pagedDetails(params) {//获取工序列表
return Api.get(`${technologyUrl}routingdetail/getlistbyheaderid`, params);
},
}
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('routingHeaderName')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingDetailName')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingStepId')" v-if="false">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('checkContent')">{{entity.checkContent}}</Filed>
<Filed :span="12" :name="l('checkType')">
<state
code="QC.checktype"
:value="entity.checkType+''"
type="text"
></state>
</Filed>
<Filed :span="24" :name="l('checkParams')">{{entity.checkParams}}</Filed>
<Filed :span="12" :name="l('measurementUnit')">{{entity.measurementUnit}}</Filed>
<Filed :span="12" :name="l('fillintype')">
<state
code="QC.fillintype"
:value="entity.fillintype+''"
type="text"
></state>
</Filed>
<Filed :span="24" :name="l('qualityTemplate')">{{entity.qualityTemplate}}</Filed>
<Filed :span="12" :name="l('isphotograph')">{{entity.isphotograph}}</Filed>
<Filed :span="12" :name="l('status')"><state
code="Process.state"
:value="entity.status+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('extend')" v-if="false">{{entity.extend}}</Filed>
<Filed :span="24" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="24" :name="l('productionRequirement')">{{entity.productionRequirement}}</Filed>
<Filed :span="24" :name="l('standard')">{{entity.standard}}</Filed>
<Filed :span="12" :name="l('qualityTemplateName')">{{entity.qualityTemplateName}}</Filed>
<Filed :span="12" :name="l('isImportant')"><state
code="Process.state"
:value="entity.isImportant+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('firstCheck')"><state
code="Process.state"
:value="entity.firstCheck+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('inspection')"><state
code="Process.state"
:value="entity.inspection+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('inspectionTime')">{{entity.inspectionTime}}</Filed>
<Filed :span="12" :name="l('sampling')">
<state
code="Process.state"
:value="entity.sampling+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('samplingBatch')">{{entity.samplingBatch}}</Filed>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('creatorUserId')"><User :value="entity.creatorUserId"></User></Filed>
<Filed :span="12" :name="l('lastModificationTime')">{{entity.lastModificationTime}}</Filed>
<Filed :span="12" :name="l('lastModifierUserId')"><User v-model="entity.lastModifierUserId"></User></Filed>
<!-- <Filed :span="12" :name="l('isDeleted')">{{entity.isDeleted}}</Filed>
<Filed :span="12" :name="l('deleterUserId')">{{entity.deleterUserId}}</Filed>
<Filed :span="12" :name="l('deletionTime')">{{entity.deletionTime}}</Filed>
-->
</Row>
</div>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit("on-load");
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routing_qc_card" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
};
</script>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="100">
<Row>
<!--
<Col :span="12">
<FormItem :label="l('creationTime')" prop="creationTime">
<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">
<Input v-model="entity.isDeleted"></Input>
</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('deletionTime')" prop="deletionTime">
<DatePicker type="date" v-model="entity.deletionTime"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingStepId')" prop="routingStepId">
<InputNumber v-model="entity.routingStepId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('extend')" prop="extend">
<Input v-model="entity.extend"></Input>
</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('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkContent')" prop="checkContent">
<Input v-model="entity.checkContent"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="entity.measurementUnit"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="entity.checkType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('fillintype')" prop="fillintype">
<Dictionary code="QC.fillintype" v-model="entity.fillintype"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="entity.checkParams" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="entity.qualityTemplate" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="entity.isphotograph" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productionRequirement')" prop="productionRequirement">
<Input v-model="entity.productionRequirement" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="entity.standard" type="textarea" :rows="2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<Input v-model="entity.qualityTemplateName"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isImportant')" prop="isImportant">
<Dictionary code="Process.state" v-model="entity.isImportant" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('firstCheck')" prop="firstCheck">
<Dictionary code="Process.state" v-model="entity.firstCheck" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('inspection')" prop="inspection">
<Dictionary code="Process.state" v-model="entity.inspection" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('inspectionTime')" prop="inspectionTime">
<InputNumber v-model="entity.inspectionTime"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('sampling')" prop="sampling">
<Dictionary code="Process.state" v-model="entity.sampling" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('samplingBatch')" prop="samplingBatch">
<Input v-model="entity.samplingBatch"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Edit",
data() {
return {
disabled: false,
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
});
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.update(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routing_qc_card" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
};
</script>
<template>
<div>
<DataGrid :columns="columns" ref="grid" :action="action">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input
placeholder="请输入关键字检测要求/测量单位/模板/备注/生产要求/标准指标/模板名称/抽检批次"
v-model="easySearch.keys.value"
/>
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button type="primary" @click="add">新增</Button>
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</template>
<script>
import Api from "./api";
import Search from "./search";
export default {
name: "list",
components: {
Search
},
head: {
title: "质检卡",
author: "henq",
description: "routing_qc_card 4/27/2020 10:31:00 AM"
},
data() {
return {
action: Api.index,
easySearch: {
keys: {
op:
"checkParams,measurementUnit,qualityTemplate,remark,productionRequirement,standard,qualityTemplateName,samplingBatch",
value: null
}
},
modal: false,
title: "新增",
detail: null,
curId: 0,
columns: [
{ key: "id", title: this.l("id"), hide: true, align: "left" },
{
key: "creationTime",
title: this.l("creationTime"),
align: "left",
high: true
},
{
key: "creatorUserId",
title: this.l("creatorUserId"),
align: "left",
high: true
},
{
key: "lastModificationTime",
title: this.l("lastModificationTime"),
align: "left",
high: true
},
{
key: "lastModifierUserId",
title: this.l("lastModifierUserId"),
align: "left",
high: true
},
{
key: "routingHeaderId",
title: this.l("routingHeaderId"),
align: "left",
high: true
},
{
key: "routingDetailId",
title: this.l("routingDetailId"),
align: "left",
high: true
},
{
key: "routingStepId",
title: this.l("routingStepId"),
align: "left",
high: true
},
{
key: "checkType",
title: this.l("checkType"),
align: "left",
high: true,
code: "QC.checktype"
},
{
key: "checkParams",
title: this.l("checkParams"),
align: "left",
easy: true,
high: true
},
{
key: "measurementUnit",
title: this.l("measurementUnit"),
align: "left",
easy: true,
high: true
},
{
key: "fillintype",
title: this.l("fillintype"),
align: "left",
high: true,
code: "QC.fillintype"
},
{
key: "qualityTemplate",
title: this.l("qualityTemplate"),
align: "left",
easy: true,
high: true
},
{
key: "isphotograph",
title: this.l("isphotograph"),
align: "left",
high: true,
code: "Process.state"
},
{
key: "status",
title: this.l("status"),
align: "left",
high: true,
code: "Process.Status"
},
{
key: "productionRequirement",
title: this.l("productionRequirement"),
align: "left",
easy: true,
high: true
},
{
key: "standard",
title: this.l("standard"),
align: "left",
easy: true,
high: true
},
{
key: "qualityTemplateName",
title: this.l("qualityTemplateName"),
align: "left",
easy: true,
high: true
},
{
key: "isImportant",
title: this.l("isImportant"),
align: "left",
high: true,
code: "Process.state"
},
{
key: "firstCheck",
title: this.l("firstCheck"),
align: "left",
high: true,
code: "Process.state"
},
{
key: "inspection",
title: this.l("inspection"),
align: "left",
high: true,
code: "Process.state"
},
{
key: "inspectionTime",
title: this.l("inspectionTime"),
align: "left",
high: true
},
{
key: "sampling",
title: this.l("sampling"),
align: "left",
high: true,
code: "Process.state"
},
{
key: "samplingBatch",
title: this.l("samplingBatch"),
align: "left",
easy: true,
high: true
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.view(params.row.id) }
},
"查看"
),
//h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.edit(params.row.id) }
},
"编辑"
),
h(
"op",
{
attrs: { oprate: "delete" },
on: { click: () => this.remove(params.row.id) }
},
"删除"
)
]);
}
}
]
};
},
mounted() {
console.log(this);
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
add() {
this.curId = 0;
this.title = "新增";
this.detail = () => import("./add");
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () => import("./add");
this.modal = true;
},
view(id) {
this.curId = id;
this.title = "详情";
this.detail = () => import("./detail");
this.modal = true;
},
edit(id) {
this.curId = id;
this.title = "编辑";
this.detail = () => import("./edit");
this.modal = true;
},
remove(id) {
Api.delete(id).then(r => {
if (r.success) {
this.$refs.grid.load();
this.$Message.success("删除成功");
}
});
},
cancel() {
this.curId = 0;
this.modal = false;
},
l(key) {
let vkey = "routing_qc_card" + "." + key;
return this.$t(vkey) || key;
}
}
};
</script>
<style lang="less">
</style>
\ No newline at end of file
<template>
<Form ref="form" :model="condition" :label-width="100">
<Row>
<Col :span="12" v-if="condition.routingHeaderId.show">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<Input v-model="condition.routingHeaderId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.routingDetailId.show">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<Input v-model="condition.routingDetailId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.checkType.show">
<FormItem :label="l('checkType')" prop="checkType">
<Dictionary code="QC.checktype" v-model="condition.checkType.value"></Dictionary>
</FormItem>
</Col>
<Col :span="24" v-if="condition.checkParams.show">
<FormItem :label="l('checkParams')" prop="checkParams">
<Input v-model="condition.checkParams.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.measurementUnit.show">
<FormItem :label="l('measurementUnit')" prop="measurementUnit">
<Input v-model="condition.measurementUnit.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.fillintype.show">
<FormItem :label="l('fillintype')" prop="fillintype">
<Dictionary code="QC.fillintype" v-model="condition.fillintype.value"></Dictionary>
</FormItem>
</Col>
<Col :span="24" v-if="condition.qualityTemplate.show">
<FormItem :label="l('qualityTemplate')" prop="qualityTemplate">
<Input v-model="condition.qualityTemplate.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.isphotograph.show">
<FormItem :label="l('isphotograph')" prop="isphotograph">
<Dictionary code="Process.state" v-model="condition.isphotograph.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.status.show">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="condition.status.value"></Dictionary>
</FormItem>
</Col>
<Col :span="24" v-if="condition.remark.show">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="condition.remark.value"></Input>
</FormItem>
</Col>
<Col :span="24" v-if="condition.productionRequirement.show">
<FormItem :label="l('productionRequirement')" prop="productionRequirement">
<Input v-model="condition.productionRequirement.value"></Input>
</FormItem>
</Col>
<Col :span="24" v-if="condition.standard.show">
<FormItem :label="l('standard')" prop="standard">
<Input v-model="condition.standard.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.qualityTemplateName.show">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<Input v-model="condition.qualityTemplateName.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.isImportant.show">
<FormItem :label="l('isImportant')" prop="isImportant">
<Dictionary code="Process.state" v-model="condition.isImportant.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.firstCheck.show">
<FormItem :label="l('firstCheck')" prop="firstCheck">
<Dictionary code="Process.state" v-model="condition.firstCheck.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.inspection.show">
<FormItem :label="l('inspection')" prop="inspection">
<Dictionary code="Process.state" v-model="condition.inspection.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.inspectionTime.show">
<FormItem :label="l('inspectionTime')" prop="inspectionTime">
<Input v-model="condition.inspectionTime.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.sampling.show">
<FormItem :label="l('sampling')" prop="sampling">
<Dictionary code="Process.state" v-model="condition.sampling.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.samplingBatch.show">
<FormItem :label="l('samplingBatch')" prop="samplingBatch">
<Input v-model="condition.samplingBatch.value"></Input>
</FormItem>
</Col>
</Row>
<Row>
<Col :span="12" v-if="condition.creationTime.show">
<FormItem :label="l('creationTime')" prop="creationTime">
<DatePicker type="daterange" v-model="condition.creationTime.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" v-if="condition.creatorUserId.show">
<FormItem :label="l('creatorUserId')" prop="creatorUserId">
<Input v-model="condition.creatorUserId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.lastModificationTime.show">
<FormItem :label="l('lastModificationTime')" prop="lastModificationTime">
<DatePicker type="daterange" v-model="condition.lastModificationTime.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" v-if="condition.lastModifierUserId.show">
<FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId">
<Input v-model="condition.lastModifierUserId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.deletionTime.show">
<FormItem :label="l('deletionTime')" prop="deletionTime">
<DatePicker type="daterange" v-model="condition.deletionTime.value"></DatePicker>
</FormItem>
</Col>
</Row>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
condition: {
creationTime: { op: "Range", value: null, show: true },
creatorUserId: { op: "Equal", value: null, show: true },
lastModificationTime: { op: "Range", value: null, show: true },
lastModifierUserId: { op: "Equal", value: null, show: true },
deletionTime: { op: "Range", value: null, show: false },
routingHeaderId: { op: "Equal", value: null, show: false },
routingDetailId: { op: "Equal", value: null, show: true },
routingStepId: { op: "Equal", value: null, show: false },
checkType: { op: "Equal", value: null, show: true },
checkParams: { op: "Equal", value: null, show: false },
measurementUnit: { op: "Equal", value: null, show: true },
fillintype: { op: "Equal", value: null, show: true },
qualityTemplate: { op: "Equal", value: null, show: false },
isphotograph: { op: "Equal", value: null, show: true },
status: { op: "Equal", value: null, show: true },
remark: { op: "Equal", value: null, show: false },
productionRequirement: { op: "Equal", value: null, show: false },
standard: { op: "Equal", value: null, show: false },
qualityTemplateName: { op: "Equal", value: null, show: true },
isImportant: { op: "Equal", value: null, show: true },
firstCheck: { op: "Equal", value: null, show: true },
inspection: { op: "Equal", value: null, show: true },
inspectionTime: { op: "Equal", value: null, show: true },
sampling: { op: "Equal", value: null, show: true },
samplingBatch: { op: "Equal", value: null, show: true }
}
};
},
methods: {
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routing_qc_card" + "." + key;
return this.$t(key);
}
}
};
</script>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<!--
<Col :span="12">
<FormItem :label="l('routingStepId')" prop="routingStepId">
<InputNumber v-model="entity.routingStepId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialId')" prop="materialId">
<InputNumber v-model="entity.materialId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('extend')" prop="extend">
<Input v-model="entity.extend"></Input>
</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('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
code="mes_xingchi_resource.material.materialReType"
v-model="entity.materialType"
></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialNumber')" prop="materialNumber">
<Input v-model="entity.materialNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('nameMaterial')" prop="nameMaterial">
<Input v-model="entity.nameMaterial"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('brand')" prop="brand">
<Input v-model="entity.brand"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('specifications')" prop="specifications">
<Input v-model="entity.specifications"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('xhgg')" prop="xhgg">
<Input v-model="entity.xhgg"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('texture')" prop="texture">
<Input v-model="entity.texture"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('procurementStandards')" prop="procurementStandards">
<Input v-model="entity.procurementStandards"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityGrade')" prop="qualityGrade">
<Input v-model="entity.qualityGrade"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('drawNum')" prop="drawNum">
<Input v-model="entity.drawNum"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="entity.state" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
disabled: false,
entity: {
routingHeaderId: null,
routingDetailId: null,
routingStepId: null,
quantity: null,
materialId: null,
materialType: "",
materialNumber: "",
nameMaterial: "",
brand: "",
specifications: "",
xhgg: "",
texture: "",
procurementStandards: "",
qualityGrade: "",
state: null,
extend: "",
remark: "",
drawNum: ""
},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
v: Object,
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.entity.id = 0;
});
},
l(key) {
key = "routingsupporting" + "." + key;
return this.$t(key);
}
},
watch: {
v() {
this.entity = this.$u.clone(this.v);
},
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
};
</script>
import Api from '@/plugins/request'
export default {
index: `${technologyUrl}routingsupporting/paged`,
paged(params) {
return Api.post(`${technologyUrl}routingsupporting/paged`, params);
},
get(params) {
return Api.get(`${technologyUrl}routingsupporting/get`, params);
},
create(params) {
return Api.post(`${technologyUrl}routingsupporting/create`, params);
},
update(params) {
return Api.put(`${technologyUrl}routingsupporting/update`, params);
},
delete(id) {
return Api.delete(`${technologyUrl}routingsupporting/delete`, {
params: {
id: id
}
});
},
deletes(params) {
return Api.post(`${technologyUrl}routingsupporting/batchdelete`, params);
}
}
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('routingHeaderId')">{{entity.routingHeaderId}}</Filed>
<Filed :span="12" :name="l('routingDetailId')">{{entity.routingDetailId}}</Filed>
<Filed :span="12" :name="l('routingStepId')">{{entity.routingStepId}}</Filed>
<Filed :span="12" :name="l('quantity')">{{entity.quantity}}</Filed>
<Filed :span="12" :name="l('materialId')">{{entity.materialId}}</Filed>
<Filed :span="12" :name="l('materialType')"><state
code="mes_xingchi_resource.material.materialReType"
:value="entity.materialType+''"
type="text"
></state></Filed>
<Filed :span="12" :name="l('materialNumber')">{{entity.materialNumber}}</Filed>
<Filed :span="12" :name="l('nameMaterial')">{{entity.nameMaterial}}</Filed>
<Filed :span="12" :name="l('brand')">{{entity.brand}}</Filed>
<Filed :span="12" :name="l('specifications')">{{entity.specifications}}</Filed>
<Filed :span="12" :name="l('xhgg')">{{entity.xhgg}}</Filed>
<Filed :span="12" :name="l('texture')">{{entity.texture}}</Filed>
<Filed :span="12" :name="l('procurementStandards')">{{entity.procurementStandards}}</Filed>
<Filed :span="12" :name="l('qualityGrade')">{{entity.qualityGrade}}</Filed>
<Filed :span="12" :name="l('state')">
<state
code="Process.state"
:value="entity.state+''"
type="text"
></state>
</Filed>
<Filed :span="12" :name="l('extend')" v-if="false">{{entity.extend}}</Filed>
<Filed :span="12" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="12" :name="l('drawNum')">{{entity.drawNum}}</Filed>
</Row>
</div>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit("on-load");
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routingsupporting" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
};
</script>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<!--
<Col :span="12">
<FormItem :label="l('routingStepId')" prop="routingStepId">
<InputNumber v-model="entity.routingStepId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialId')" prop="materialId">
<InputNumber v-model="entity.materialId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('extend')" prop="extend">
<Input v-model="entity.extend"></Input>
</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('routingDetailId')" prop="routingDetailId">
<InputNumber v-model="entity.routingDetailId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
code="mes_xingchi_resource.material.materialReType"
v-model="entity.materialType"
></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('materialNumber')" prop="materialNumber">
<Input v-model="entity.materialNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('nameMaterial')" prop="nameMaterial">
<Input v-model="entity.nameMaterial"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('brand')" prop="brand">
<Input v-model="entity.brand"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('specifications')" prop="specifications">
<Input v-model="entity.specifications"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('xhgg')" prop="xhgg">
<Input v-model="entity.xhgg"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('texture')" prop="texture">
<Input v-model="entity.texture"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('procurementStandards')" prop="procurementStandards">
<Input v-model="entity.procurementStandards"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('qualityGrade')" prop="qualityGrade">
<Input v-model="entity.qualityGrade"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="entity.state" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('drawNum')" prop="drawNum">
<Input v-model="entity.drawNum"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Edit",
data() {
return {
disabled: false,
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
});
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.update(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routingsupporting" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
};
</script>
<template>
<div>
<DataGrid :columns="columns" ref="grid" :action="action"><template slot="easySearch"><Form ref="formInline" :model="easySearch" inline><FormItem prop="keys"><Input placeholder="请输入关键字物料类型/物料编号/物料名称/牌号/规格/型号规格/材质/采购标准/质量等级/备注/产品图号" v-model="easySearch.keys.value" /> </FormItem>
<FormItem><Button type="primary" @click="search">查询</Button></FormItem>
</Form></template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button type="primary" @click="add">新增</Button>
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</template>
<script>
import Api from './api'
import Search from './search'
export default {
name: 'list',
components:{
Search
},
head: {
title: "工艺配套表",
author: "henq",
description: "routingsupporting 4/27/2020 10:35:33 AM",
},
data() {
return {
action: Api.index,
easySearch: {
keys:{op:"materialType,materialNumber,nameMaterial,brand,specifications,xhgg,texture,procurementStandards,qualityGrade,remark,drawNum",value:null}
},
modal: false,
title:"新增",
detail:null,
curId: 0,
columns: [
{ key:"id",title:this.l("id") ,hide:true ,align:"left" },
{ key:"creationTime",title:this.l("creationTime") ,hide:true ,align:"left" },
{ key:"creatorUserId",title:this.l("creatorUserId") ,hide:true ,align:"left" },
{ key:"lastModificationTime",title:this.l("lastModificationTime") ,hide:true ,align:"left" },
{ key:"lastModifierUserId",title:this.l("lastModifierUserId") ,hide:true ,align:"left" },
{ key:"isDeleted",title:this.l("isDeleted") ,hide:true ,align:"left" },
{ key:"deletionTime",title:this.l("deletionTime") ,hide:true ,align:"left" },
{ key:"deleterUserId",title:this.l("deleterUserId") ,hide:true ,align:"left" },
{ key:"routingHeaderId",title:this.l("routingHeaderId") ,align:"left" ,high:true },
{ key:"routingDetailId",title:this.l("routingDetailId") ,align:"left" ,high:true },
{ key:"routingStepId",title:this.l("routingStepId") ,align:"left" ,high:true },
{ key:"quantity",title:this.l("quantity") ,align:"left" ,high:true },
{ key:"materialId",title:this.l("materialId") ,align:"left" ,high:true },
{ key:"materialType",title:this.l("materialType") ,align:"left" ,easy:true ,high:true ,code:'mes_xingchi_resource.material.materialReType' },
{ key:"materialNumber",title:this.l("materialNumber") ,align:"left" ,easy:true ,high:true },
{ key:"nameMaterial",title:this.l("nameMaterial") ,align:"left" ,easy:true ,high:true },
{ key:"brand",title:this.l("brand") ,align:"left" ,easy:true ,high:true },
{ key:"specifications",title:this.l("specifications") ,align:"left" ,easy:true ,high:true },
{ key:"xhgg",title:this.l("xhgg") ,align:"left" ,easy:true ,high:true },
{ key:"texture",title:this.l("texture") ,align:"left" ,easy:true ,high:true },
{ key:"procurementStandards",title:this.l("procurementStandards") ,align:"left" ,easy:true ,high:true },
{ key:"qualityGrade",title:this.l("qualityGrade") ,align:"left" ,easy:true ,high:true },
{ key:"state",title:this.l("state") ,align:"left" ,high:true ,code:'Process.Status' },
{ key:"remark",title:this.l("remark") ,align:"left" ,easy:true ,high:true },
{ key:"drawNum",title:this.l("drawNum") ,align:"left" ,easy:true ,high:true },
{
title: '操作',
key: 'action',
width: 140,
align: 'center',
render: (h, params) => {
return h('div', { class: "action" }, [
h('op', { attrs: { oprate: 'detail' }, on: { click: () => this.view(params.row.id) } }, '查看'),
//h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
h('op', { attrs: { oprate: 'edit'}, on: { click: () => this.edit(params.row.id) } }, '编辑'),
h('op', { attrs: { oprate: 'delete' }, on: { click: () => this.remove(params.row.id) } }, '删除')
])
}
},
]
}
},
mounted(){
console.log(this);
},
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
},
methods:{
ok() {
this.$refs.grid.load()
this.modal = false
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch)
},
add() {
this.curId = 0;
this.title = "新增";
this.detail =()=> import('./add')
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () =>import('./add')
this.modal = true;
},
view(id) {
this.curId = id;
this.title = "详情";
this.detail = () =>import('./detail')
this.modal = true;
},
edit(id) {
this.curId = id;
this.title = "编辑";
this.detail = () => import('./edit')
this.modal = true;
},
remove(id) {
Api.delete(id).then((r) => {
if (r.success) {
this.$refs.grid.load();
this.$Message.success('删除成功')
}
})
},
cancel() {
this.curId = 0;
this.modal = false
},
l(key) {
let vkey = "routingsupporting" + "." + key;
return this.$t(vkey)||key
}
}
}
</script>
<style lang="less">
</style>
\ No newline at end of file
<template>
<Form ref="form" :model="condition" :label-width="90">
<Row>
<Col :span="12" v-if="condition.routingHeaderId.show">
<FormItem :label="l('routingHeaderId')" prop="routingHeaderId">
<Input v-model="condition.routingHeaderId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.routingDetailId.show">
<FormItem :label="l('routingDetailId')" prop="routingDetailId">
<Input v-model="condition.routingDetailId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.routingStepId.show">
<FormItem :label="l('routingStepId')" prop="routingStepId">
<Input v-model="condition.routingStepId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.materialId.show">
<FormItem :label="l('materialId')" prop="materialId">
<Input v-model="condition.materialId.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.materialType.show">
<FormItem :label="l('materialType')" prop="materialType">
<Dictionary
code="mes_xingchi_resource.material.materialReType"
v-model="condition.materialType.value"
></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.materialNumber.show">
<FormItem :label="l('materialNumber')" prop="materialNumber">
<Input v-model="condition.materialNumber.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.nameMaterial.show">
<FormItem :label="l('nameMaterial')" prop="nameMaterial">
<Input v-model="condition.nameMaterial.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.quantity.show">
<FormItem :label="l('quantity')" prop="quantity">
<Input v-model="condition.quantity.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.brand.show">
<FormItem :label="l('brand')" prop="brand">
<Input v-model="condition.brand.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.specifications.show">
<FormItem :label="l('specifications')" prop="specifications">
<Input v-model="condition.specifications.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.xhgg.show">
<FormItem :label="l('xhgg')" prop="xhgg">
<Input v-model="condition.xhgg.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.texture.show">
<FormItem :label="l('texture')" prop="texture">
<Input v-model="condition.texture.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.procurementStandards.show">
<FormItem :label="l('procurementStandards')" prop="procurementStandards">
<Input v-model="condition.procurementStandards.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.qualityGrade.show">
<FormItem :label="l('qualityGrade')" prop="qualityGrade">
<Input v-model="condition.qualityGrade.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.state.show">
<FormItem :label="l('state')" prop="state">
<Dictionary code="Process.state" v-model="condition.state.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" v-if="condition.remark.show">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="condition.remark.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.drawNum.show">
<FormItem :label="l('drawNum')" prop="drawNum">
<Input v-model="condition.drawNum.value"></Input>
</FormItem>
</Col>
</Row>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
condition: {
routingHeaderId: { op: "Equal", value: null, show: true },
routingDetailId: { op: "Equal", value: null, show: true },
routingStepId: { op: "Equal", value: null, show: false },
quantity: { op: "Equal", value: null, show: true },
materialId: { op: "Equal", value: null, show: false },
materialType: { op: "Equal", value: null, show: true },
materialNumber: { op: "Equal", value: null, show: true },
nameMaterial: { op: "Equal", value: null, show: true },
brand: { op: "Equal", value: null, show: true },
specifications: { op: "Equal", value: null, show: true },
xhgg: { op: "Equal", value: null, show: true },
texture: { op: "Equal", value: null, show: true },
procurementStandards: { op: "Equal", value: null, show: true },
qualityGrade: { op: "Equal", value: null, show: true },
state: { op: "Equal", value: null, show: true },
remark: { op: "Equal", value: null, show: false },
drawNum: { op: "Equal", value: null, show: true }
}
};
},
methods: {
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routingsupporting" + "." + key;
return this.$t(key);
}
}
};
</script>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<!-- <Col :span="12">
<FormItem :label="l('classId')" prop="classId">
<InputNumber v-model="entity.classId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('unicode')" prop="unicode">
<Input v-model="entity.unicode"></Input>
</FormItem>
</Col>-->
<Col :span="12">
<FormItem :label="l('name')" prop="name">
<Input v-model="entity.name"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('code')" prop="code">
<Input v-model="entity.code"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('routingType')" prop="routingType">
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productId')" prop="productId">
<ProductSelect v-model="entity.productId"></ProductSelect>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('version')" prop="version">
<Input v-model="entity.version"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('author')" prop="author">
<Input v-model="entity.author"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('departmentId')" prop="departmentId">
<departmentSelect v-model="entity.departmentId"></departmentSelect>
</FormItem>
</Col> <Col :span="12">
<FormItem :label="l('isMain')" prop="isMain">
<Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isSendPpm')" prop="isSendPpm">
<Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
</FormItem>
</Col>
<!--
<Col :span="12">
<FormItem :label="l('upId')" prop="upId">
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('upDetailId')" prop="upDetailId">
<InputNumber v-model="entity.upDetailId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('approvalStatus')" prop="approvalStatus">
<Dictionary code="process.RoutingStatus" v-model="entity.approvalStatus"></Dictionary>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('approvalStatusRemark')" prop="approvalStatusRemark">
<Input v-model="entity.approvalStatusRemark"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('auditUserId1')" prop="auditUserId1">
<Input v-model="entity.auditUserId1"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('auditUserId2')" prop="auditUserId2">
<Input v-model="entity.auditUserId2"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('platesnum')" prop="platesnum">
<InputNumber v-model="entity.platesnum"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('versionnotes')" prop="versionnotes">
<Input v-model="entity.versionnotes"></Input>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('phase')" prop="phase">
<InputNumber v-model="entity.phase"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<FormItem :label="l('versionid')" prop="versionid">
<InputNumber v-model="entity.versionid"></InputNumber>
</FormItem>
</Col>-->
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Edit",
data() {
return {
disabled: false,
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
});
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.update(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
};
</script>
\ No newline at end of file
This diff is collapsed.
<template>
<div>
<DataGrid :columns="columns" ref="grid" :action="action"><template slot="easySearch"><Form ref="formInline" :model="easySearch" inline><FormItem prop="keys"><Input placeholder="请输入关键字unicode/工艺名称/工艺编号" v-model="easySearch.keys.value" /> </FormItem>
<FormItem><Button type="primary" @click="search">查询</Button></FormItem>
</Form></template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button type="primary" @click="add">新增</Button>
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</template>
<script>
import Api from './api'
import Search from './search'
export default {
name: 'list',
components:{
Search
},
head: {
title: "工艺规程",
author: "henq",
description: "routing_header 4/26/2020 10:12:38 AM",
},
data() {
return {
action: Api.index,
easySearch: {
keys:{op:"unicode,name,code",value:null}
},
modal: false,
title:"新增",
detail:null,
curId: 0,
columns: [
{ key:"id",title:this.l("id") ,hide:true ,align:"left" },
{ key:"creationTime",title:this.l("creationTime") ,align:"left" ,high:true },
{ key:"creatorUserId",title:this.l("creatorUserId") ,align:"left" ,high:true },
{ key:"lastModificationTime",title:this.l("lastModificationTime") ,align:"left" ,high:true },
{ key:"lastModifierUserId",title:this.l("lastModifierUserId") ,align:"left" ,high:true },
{ key:"classId",title:this.l("classId") ,align:"left" ,high:true },
{ key:"unicode",title:this.l("unicode") ,align:"left" ,easy:true ,high:true },
{ key:"name",title:this.l("name") ,align:"left" ,easy:true ,high:true },
{ key:"code",title:this.l("code") ,align:"left" ,easy:true ,high:true },
{ key:"productId",title:this.l("productId") ,align:"left" ,high:true },
{ key:"version",title:this.l("version") ,align:"left" ,high:true },
{ key:"author",title:this.l("author") ,align:"left" ,high:true },
{ key:"departmentId",title:this.l("departmentId") ,align:"left" ,high:true },
{ key:"isMain",title:this.l("isMain") ,align:"left" ,high:true ,code:'Process.state' },
{ key:"upId",title:this.l("upId") ,align:"left" ,high:true },
{ key:"upDetailId",title:this.l("upDetailId") ,hide:true ,align:"left" ,high:true },
{ key:"routingType",title:this.l("routingType") ,align:"left" ,high:true ,code:'Process.Routing.routingType' },
{ key:"status",title:this.l("status") ,align:"left" ,high:true ,code:'Process.Status' },
{ key:"approvalStatus",title:this.l("approvalStatus") ,align:"left" ,high:true ,code:'process.RoutingStatus' },
{ key:"approvalStatusRemark",title:this.l("approvalStatusRemark") ,align:"left" ,high:true },
{ key:"auditUserId1",title:this.l("auditUserId1") ,align:"left" ,high:true },
{ key:"auditUserId2",title:this.l("auditUserId2") ,align:"left" ,high:true },
{ key:"platesnum",title:this.l("platesnum") ,align:"left" ,high:true },
{ key:"isEffect",title:this.l("isEffect") ,align:"left" ,high:true ,code:'Process.Status' },
{ key:"versionnotes",title:this.l("versionnotes") ,align:"left" ,high:true },
{ key:"phase",title:this.l("phase") ,align:"left" ,high:true ,code:'Process.Routing.phase' },
{ key:"versionid",title:this.l("versionid") ,align:"left" ,high:true ,code:'Process.Routing.version' },
{ key:"isSendPpm",title:this.l("isSendPpm") ,align:"left" ,high:true ,code:'Process.Status' },
{
title: '操作',
key: 'action',
width: 140,
align: 'center',
render: (h, params) => {
return h('div', { class: "action" }, [
h('op', { attrs: { oprate: 'detail' }, on: { click: () => this.view(params.row.id) } }, '查看'),
//h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
h('op', { attrs: { oprate: 'edit'}, on: { click: () => this.edit(params.row.id) } }, '编辑'),
h('op', { attrs: { oprate: 'delete' }, on: { click: () => this.remove(params.row.id) } }, '删除')
])
}
},
]
}
},
mounted(){
console.log(this);
},
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
},
methods:{
ok() {
this.$refs.grid.load()
this.modal = false
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch)
},
add() {
this.curId = 0;
this.title = "新增";
this.detail =()=> import('./add')
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () =>import('./add')
this.modal = true;
},
view(id) {
this.curId = id;
this.title = "详情";
this.detail = () =>import('./detail')
this.modal = true;
},
edit(id) {
this.curId = id;
this.title = "编辑";
this.detail = () => import('./edit')
this.modal = true;
},
remove(id) {
Api.delete(id).then((r) => {
if (r.success) {
this.$refs.grid.load();
this.$Message.success('删除成功')
}
})
},
cancel() {
this.curId = 0;
this.modal = false
},
l(key) {
/*
routing_header:{
id:'',
creationTime:'创建时间',
creatorUserId:'创建人',
lastModificationTime:'最近修改时间',
lastModifierUserId:'最近修改人',
deleterUserId:'上传人',
deletionTime:'删除时间',
classId:'类id',
unicode:'unicode',
name:'工艺名称',
code:'工艺编号',
productId:'产品id',
version:'版本',
author:'作者',
departmentId:'主制车间',
isMain:'主工艺',
upId:'父工艺',
upDetailId:'',
routingType:'工艺类型',
status:'状态',
approvalStatus:'审批状态',
remark:'备注',
approvalStatusRemark:'审批备注',
auditUserId1:'审批人',
auditUserId2:'审批人',
isDeleted:'是否删除',
platesnum:'板数',
isEffect:'是否有效',
versionnotes:'版本说明',
phase:'阶段',
versionid:'版本ID',
isSendPpm:'是否发送PPM',
}
*/
let vkey = "routing_header" + "." + key;
return this.$t(vkey)||key
}
}
}
</script>
<style lang="less">
</style>
\ No newline at end of file
......@@ -63,7 +63,30 @@
data() {
return {
disabled: false,
entity: {},
entity: {classId: null,
unicode: "",
name: "",
code: "",
productId: null,
version: "",
author: null,
departmentId: null,
isMain: null,
upId: null,
upDetailId: null,
routingType: null,
status: null,
approvalStatus: null,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
isEffect: "",
versionnotes: "",
phase: null,
versionid: null,
isSendPpm: null},
rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }]
}
......@@ -72,10 +95,14 @@
props: {
v: Object,
eid: Number
},
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
this.disabled = true;
......@@ -102,7 +129,7 @@
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.entity.id = 0;
})
});
},
l(key) {
key = "routing_header" + "." + key;
......@@ -115,7 +142,7 @@
},
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
......
......@@ -13,8 +13,10 @@ export default {
update(params){
return Api.post(`${technologyUrl}routingheader/update`,params);
},
//删除:
delete(params) {
delete(id) {
return Api.delete(`${technologyUrl}routingheader/delete`,{params:{id:id}});
},
deletes(params) {
return Api.post(`${technologyUrl}routingheader/batchdelete`,params);
}
}
\ No newline at end of file
......@@ -46,6 +46,11 @@
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
......@@ -63,7 +68,7 @@
},
watch: {
eid(v) {
if (v != 0) {
if (v > 0) {
this.load(v);
}
}
......
......@@ -73,11 +73,15 @@
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit('on-load')
})
},
handleSubmit() {
......
......@@ -10,9 +10,8 @@
<Button type="primary" @click="add">新增</Button>
</template>
</DataGrid>
<Modal v-model="modal" :title="title" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="addOk" />
<Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</template>
......@@ -25,9 +24,9 @@ export default {
Search
},
head: {
title: "&#x5DE5;&#x827A;&#x89C4;&#x7A0B;",
title: "工艺规程",
author: "henq",
description: "routing_header 2020/4/23 17:58:42",
description: "routing_header 2020/4/24 17:15:41",
},
data() {
return {
......@@ -40,13 +39,13 @@ keys:{op:"unicode,name,code",value:null}
detail:null,
curId: 0,
columns: [
{ key:"id",title:this.l("id") ,hide:true ,align:"left" },
{ key:"creationTime",title:this.l("creationTime") ,align:"left" ,high:true },
{ key:"creatorUserId",title:this.l("creatorUserId") ,align:"left" ,high:true },
{ key:"lastModificationTime",title:this.l("lastModificationTime") ,align:"left" ,high:true },
{ key:"lastModifierUserId",title:this.l("lastModifierUserId") ,align:"left" ,high:true },
{ key:"deleterUserId",title:this.l("deleterUserId") ,align:"left" ,high:true },
{ key:"deletionTime",title:this.l("deletionTime") ,align:"left" ,high:true },
{ key:"id",title:this.$t("id") ,hide:true ,align:"left" ,high:true },
{ key:"creationTime",title:this.$t("creationTime") ,hide:true ,align:"left" ,high:true },
{ key:"creatorUserId",title:this.$t("creatorUserId") ,hide:true ,align:"left" ,high:true },
{ key:"lastModificationTime",title:this.$t("lastModificationTime") ,hide:true ,align:"left" ,high:true },
{ key:"lastModifierUserId",title:this.$t("lastModifierUserId") ,hide:true ,align:"left" ,high:true },
{ key:"deleterUserId",title:this.$t("deleterUserId") ,hide:true ,align:"left" },
{ key:"deletionTime",title:this.$t("deletionTime") ,hide:true ,align:"left" },
{ key:"classId",title:this.l("classId") ,align:"left" ,high:true },
{ key:"unicode",title:this.l("unicode") ,align:"left" ,easy:true ,high:true },
{ key:"name",title:this.l("name") ,align:"left" ,easy:true ,high:true },
......@@ -65,7 +64,7 @@ keys:{op:"unicode,name,code",value:null}
{ key:"approvalStatusRemark",title:this.l("approvalStatusRemark") ,align:"left" ,high:true },
{ key:"auditUserId1",title:this.l("auditUserId1") ,align:"left" ,high:true },
{ key:"auditUserId2",title:this.l("auditUserId2") ,align:"left" ,high:true },
{ key:"isDeleted",title:this.l("isDeleted") ,align:"left" ,high:true },
{ key:"isDeleted",title:this.$t("isDeleted") ,hide:true ,align:"left" },
{ key:"platesnum",title:this.l("platesnum") ,align:"left" ,high:true },
{ key:"isEffect",title:this.l("isEffect") ,align:"left" ,high:true },
{ key:"versionnotes",title:this.l("versionnotes") ,align:"left" ,high:true },
......@@ -79,10 +78,10 @@ keys:{op:"unicode,name,code",value:null}
align: 'center',
render: (h, params) => {
return h('div', { class: "action" }, [
h('op', { attrs: { oprate: 'detail' }, on: { click: () => this.detail(params.row.id) } }, '查看'),
h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
h('op', { attrs: { oprate: 'detail' }, on: { click: () => this.view(params.row.id) } }, '查看'),
//h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
h('op', { attrs: { oprate: 'edit'}, on: { click: () => this.edit(params.row.id) } }, '编辑'),
h('op', { attrs: { oprate: 'remove' }, on: { click: () => this.remove(params.row.id) } }, '删除')
h('op', { attrs: { oprate: 'delete' }, on: { click: () => this.remove(params.row.id) } }, '删除')
])
}
},
......@@ -96,54 +95,46 @@ keys:{op:"unicode,name,code",value:null}
await store.dispatch('loadDictionary') // 加载数据字典
},
methods:{
addOk() {
ok() {
this.$refs.grid.load()
this.modal = false
this.modal = false
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch)
},
add(id) {
add() {
this.curId = 0;
this.title = "新增";
this.detail = import('./add')
this.detail =()=> import('./add')
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = import('./add')
this.detail = () =>import('./add')
this.modal = true;
},
detail(id) {
view(id) {
this.curId = id;
this.title = "详情";
this.detail = import('./detail')
this.modal = true;
this.detail = () =>import('./detail')
this.modal = true;
},
edit(id) {
this.curId = id;
this.title = "编辑";
this.detail = import('./edit')
this.modal = true;
this.detail = () => import('./edit')
this.modal = true;
},
remove(id) {
this.deletelModal = true;
this.curId = id;
},
removeOk() {
Api.delete([this.curId]).then((r) => {
Api.delete(id).then((r) => {
if (r.success) {
this.$refs.grid.load();
this.$Message.success('删除成功')
}
})
},
removeCancel() {
this.deletelModal = false;
},
cancel() {
this.curId = 0;
this.modal = false
......@@ -152,12 +143,6 @@ keys:{op:"unicode,name,code",value:null}
/*
routing_header:{
id:'',
creationTime:'创建时间',
creatorUserId:'创建人',
lastModificationTime:'最近修改时间',
lastModifierUserId:'最近修改人',
deleterUserId:'上传人',
deletionTime:'删除时间',
classId:'类id',
unicode:'unicode',
name:'工艺名称',
......@@ -176,7 +161,6 @@ keys:{op:"unicode,name,code",value:null}
approvalStatusRemark:'审批备注',
auditUserId1:'审批人',
auditUserId2:'审批人',
isDeleted:'是否删除',
platesnum:'板数',
isEffect:'是否有效',
versionnotes:'版本说明',
......
<template>
<Form ref="form" :model="condition" :label-width="90">
<Row>
<Col :span="12" :v-if="condition.id.show"><FormItem :label="l('id')" prop="id"> <Input v-model="condition.id.value"> </Input>
<Col :span="12" :v-if="condition.id.show"><FormItem :label="$t('id')" prop="id"> <Input v-model="condition.id.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.creationTime.show"><FormItem :label="l('creationTime')" prop="creationTime"> <DatePicker type="daterange" v-model="condition.creationTime.value"></DatePicker>
<Col :span="12" :v-if="condition.creationTime.show"><FormItem :label="$t('creationTime')" prop="creationTime"> <DatePicker type="daterange" v-model="condition.creationTime.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.creatorUserId.show"><FormItem :label="l('creatorUserId')" prop="creatorUserId"> <Input v-model="condition.creatorUserId.value"> </Input>
<Col :span="12" :v-if="condition.creatorUserId.show"><FormItem :label="$t('creatorUserId')" prop="creatorUserId"> <Input v-model="condition.creatorUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.lastModificationTime.show"><FormItem :label="l('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="daterange" v-model="condition.lastModificationTime.value"></DatePicker>
<Col :span="12" :v-if="condition.lastModificationTime.show"><FormItem :label="$t('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="daterange" v-model="condition.lastModificationTime.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.lastModifierUserId.show"><FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId"> <Input v-model="condition.lastModifierUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.deleterUserId.show"><FormItem :label="l('deleterUserId')" prop="deleterUserId"> <Input v-model="condition.deleterUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.deletionTime.show"><FormItem :label="l('deletionTime')" prop="deletionTime"> <DatePicker type="daterange" v-model="condition.deletionTime.value"></DatePicker>
<Col :span="12" :v-if="condition.lastModifierUserId.show"><FormItem :label="$t('lastModifierUserId')" prop="lastModifierUserId"> <Input v-model="condition.lastModifierUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.classId.show"><FormItem :label="l('classId')" prop="classId"> <Input v-model="condition.classId.value"> </Input>
</FormItem></Col>
......@@ -51,8 +47,6 @@
</FormItem></Col>
<Col :span="12" :v-if="condition.auditUserId2.show"><FormItem :label="l('auditUserId2')" prop="auditUserId2"> <Input v-model="condition.auditUserId2.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.isDeleted.show"><FormItem :label="l('isDeleted')" prop="isDeleted"> <Input v-model="condition.isDeleted.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.platesnum.show"><FormItem :label="l('platesnum')" prop="platesnum"> <Input v-model="condition.platesnum.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.isEffect.show"><FormItem :label="l('isEffect')" prop="isEffect"> <Input v-model="condition.isEffect.value"> </Input>
......@@ -75,13 +69,11 @@
data() {
return {
condition: {
id:{op:"Equal",value:null,show:false},
id:{op:"Equal",value:null,show:true},
creationTime:{op:"Range",value:null,show:true},
creatorUserId:{op:"Equal",value:null,show:true},
lastModificationTime:{op:"Range",value:null,show:true},
lastModifierUserId:{op:"Equal",value:null,show:true},
deleterUserId:{op:"Equal",value:null,show:true},
deletionTime:{op:"Range",value:null,show:true},
classId:{op:"Equal",value:null,show:true},
unicode:{op:"Equal",value:null,show:true},
name:{op:"Equal",value:null,show:true},
......@@ -100,7 +92,6 @@ remark:{op:"Equal",value:null,show:true},
approvalStatusRemark:{op:"Equal",value:null,show:true},
auditUserId1:{op:"Equal",value:null,show:true},
auditUserId2:{op:"Equal",value:null,show:true},
isDeleted:{op:"Equal",value:null,show:true},
platesnum:{op:"Equal",value:null,show:true},
isEffect:{op:"Equal",value:null,show:true},
versionnotes:{op:"Equal",value:null,show:true},
......
This diff is collapsed.
.menu_side{
width: 300px!important;
min-width: 300px!important;
max-width: 300px!important;
flex: 0 0 300px!important;
background: #fff;
margin: 5px 0 0 0;
border: 1px solid #dcdee2
}
.side_tree{
background: #ffffff;
......@@ -24,6 +21,12 @@
color: #646464;
}
}
.tree_left{
padding: 8px 15px;
.ivu-tree{
// height: ;
}
}
}
.show_menu{
width: 30px;
......@@ -31,6 +34,7 @@
position: fixed;
top: 100px;
left: 0;
z-index: 9;
.menu_play{
width: 30px;
height: 30px;
......@@ -43,6 +47,10 @@
background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px;
}
.menu_play:hover{
background-color: #2d8cf0;
color: white;
}
}
.tech_body{
margin: 5px 5px 5px 20px;
......@@ -106,7 +114,7 @@
}
}
.setdetail_body{
// padding: 0 20px;
// padding: 0 20px;
.ivu-layout-header{
height: 0;
}
......
......@@ -41,6 +41,7 @@ import Filed from '@/components/page/filed.vue'
import User from '@/components/page/user.vue'
import op from '@/components/page/opration.vue'
import ProductNumberSelect from '@/components/page/productNumberSelect.vue'
import ProductSelect from '@/components/page/productSelect.vue'
import DTSpan from '@/components/page/dtSpan.vue'
import DTSearch from '@/components/page/dtSearch.vue'
......@@ -90,6 +91,7 @@ Vue.component("User", User)
Vue.component("op", op) //DepartmentSelect
Vue.component("DepartmentSelect", DepartmentSelect)
Vue.component("ProductNumberSelect", ProductNumberSelect)
Vue.component("ProductSelect", ProductSelect)
Vue.component("DTSpan", DTSpan)
Vue.component("DTSearch", DTSearch)
......
......@@ -49,7 +49,7 @@ const systemApi = {
window.iconImg = `http://${hostAddress}:3006/imgicon/`; //待办任务图标路径
window.apsManualUrl = `http://${apsAdress}:10091/api/services/app`;//aps手工排产
window.apsUrl = `http://${apsAdress}:10110/api/services/app`;//aps排产
window.technologyUrl =`http://localhost:10031/api/services/app/`;
window.technologyUrl =`http://${address}:10031/api/services/app/`;
//oidc配置:
window.authConfig = {
authority: `http://${address}:10010`,
......
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