2 changed files with 501 additions and 0 deletions
@ -0,0 +1,11 @@ |
|||
import {createAPI} from "../../utils/httpRequest"; |
|||
|
|||
export const getDataList = (data) => createAPI(`/shop/order/list`,'post',data) |
|||
export const getDataPageList = (data) => createAPI(`/shop/order/page/${data.no}/${data.size}`,'post',data) |
|||
|
|||
export const saveData = (data) => createAPI(`/shop/order/add`,'post',data) |
|||
|
|||
export const editData = (data) => createAPI(`/shop/order/edit`,'post',data) |
|||
|
|||
export const deleteData = (data) => createAPI(`/shop/order/remove`,'post',data) |
|||
export const getPartDataList = (data) => createAPI(`/shop/order/part`,'post',data) |
|||
@ -0,0 +1,490 @@ |
|||
<script> |
|||
import { |
|||
deleteData, |
|||
editData, |
|||
getDataList, |
|||
getDataPageList, |
|||
getPartDataList, |
|||
saveData |
|||
} from "../../../api/production/shopOrder"; |
|||
import dayjs from "dayjs"; |
|||
|
|||
export default { |
|||
name: 'order', |
|||
props:{ |
|||
height:{ |
|||
type:Number, |
|||
default:500 |
|||
} |
|||
}, |
|||
data(){ |
|||
return{ |
|||
open:false, |
|||
loading:true, |
|||
queryForm:{ |
|||
orderNo: '', |
|||
partNo: '', |
|||
startDate:'', |
|||
endDate:'' |
|||
}, |
|||
no:1, |
|||
size:50, |
|||
total:0, |
|||
form:{}, |
|||
rules:{ |
|||
orderNo: [{ required: true, message: '请输入订单号', trigger: 'blur' }], |
|||
partNo: [{ required: true, message: '请输入产品编码', trigger: 'blur' }], |
|||
partDesc: [{ required: true, message: '请输入产品描述', trigger: 'blur' }], |
|||
lotSize: [{ required: true, message: '请输入订单数量', trigger: 'blur' }], |
|||
planStartDate: [{ required: true, message: '请选择订单日期', trigger: 'blur' }], |
|||
}, |
|||
dataList:[], |
|||
|
|||
columnList:[ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TableOrderNo', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "orderNo", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "订单号", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 80 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TablePlanStartDate', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "planStartDate", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "订单日期", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 80 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TablePartNo', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "partNo", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "产品编码", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TablePartDesc', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "partDesc", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "产品描述", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TableLotSize', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "lotSize", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "订单数量", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TableStatus', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "status", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "状态", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TableUserName', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "username", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "录入人", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 80 |
|||
},{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 300001, |
|||
serialNumber: '300001TableEnterDate', |
|||
tableId: "300001Table", |
|||
tableName: "ShopOrder", |
|||
columnProp: "enterDate", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "录入时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
], |
|||
partOpen:false, |
|||
partForm: { |
|||
partNo: '', |
|||
partDesc: '', |
|||
}, |
|||
partDataList:[], |
|||
} |
|||
}, |
|||
methods:{ |
|||
getList(){ |
|||
let params = { |
|||
...this.queryForm, |
|||
site:this.$store.state.user.site, |
|||
no:this.no, |
|||
size:this.size |
|||
} |
|||
this.loading = true |
|||
getDataPageList(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.dataList = data.rows.records |
|||
this.total = data.rows.total |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
this.loading = false |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
}, |
|||
handleSizeChange(val){ |
|||
this.size = val |
|||
this.getList() |
|||
}, |
|||
handleCurrentChange(val){ |
|||
this.no = val |
|||
this.getList() |
|||
}, |
|||
handleQuery(){ |
|||
this.no = 1; |
|||
this.getList() |
|||
}, |
|||
handleAdd(){ |
|||
this.form={ |
|||
orderNo:'', |
|||
partNo:'', |
|||
partDesc:'', |
|||
lotSize:'', |
|||
planStartDate:'', |
|||
status:'', |
|||
remark:'', |
|||
} |
|||
this.open = true; |
|||
}, |
|||
handleEdit(row){ |
|||
this.form={...row} |
|||
this.open = true; |
|||
}, |
|||
handleDelete(row){ |
|||
this.$confirm('确定要删除这条数据?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteData(row).then(({data}) => { |
|||
if (data && data.code === 0){ |
|||
this.handleQuery(); |
|||
this.$message.success(data.msg) |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
handleSave(){ |
|||
this.$refs.form.validate((valid,obj) => { |
|||
if (valid){ |
|||
if (!this.form.site){ |
|||
// 新增 |
|||
let params = { |
|||
...this.form, |
|||
site:this.$store.state.user.site, |
|||
username:this.$store.state.user.name, |
|||
enterDate:dayjs().format('YYYY-MM-DD HH:mm:ss') |
|||
} |
|||
saveData(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.getList(); |
|||
this.open = false; |
|||
this.$message.success(data.msg) |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
}else { |
|||
// 修改 |
|||
editData(this.form).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.getList(); |
|||
this.open = false; |
|||
this.$message.success(data.msg) |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
} |
|||
}else { |
|||
let i = 0; |
|||
Object.keys(obj).forEach(key => { |
|||
if (i === 0){ |
|||
this.$message.warning(obj[key][0].message) |
|||
return |
|||
} |
|||
i++; |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
handleQueryPart(){ |
|||
this.partOpen = true; |
|||
let params = { |
|||
...this.partForm, |
|||
site:this.$store.state.user.site, |
|||
} |
|||
this.partDataList = [] |
|||
getPartDataList(params).then(({data})=>{ |
|||
if (data && data.code === 0){ |
|||
this.partDataList = data.rows |
|||
}else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}).catch((error)=>{ |
|||
this.$message.error(error) |
|||
}) |
|||
}, |
|||
partRowClick(row){ |
|||
this.form.partNo = row.partNo |
|||
this.form.partDesc = row.partDesc |
|||
this.partOpen = false |
|||
} |
|||
}, |
|||
created() { |
|||
this.getList(); |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<div> |
|||
<div style="width: 1100px"> |
|||
<el-form label-position="top" :model="queryForm" ref="queryForm"> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="3"> |
|||
<el-form-item label="订单号"> |
|||
<el-input v-model="queryForm.orderNo"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="物料编码"> |
|||
<el-input v-model="queryForm.partNo"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="7"> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="11"> |
|||
<el-form-item label="订单日期"> |
|||
<el-date-picker |
|||
style="width: 100%" |
|||
v-model="queryForm.startDate" |
|||
type="date" |
|||
value-format="yyyy-MM-dd" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="2"> |
|||
<el-form-item label=" "> |
|||
<label style="margin-left: 0px;font-size: 19px">➞</label> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="11"> |
|||
<el-form-item label=" "> |
|||
<el-date-picker |
|||
style="width: 100%" |
|||
v-model="queryForm.endDate" |
|||
type="date" |
|||
value-format="yyyy-MM-dd" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label=" "> |
|||
<el-button type="primary" @click="handleQuery">查询</el-button> |
|||
<el-button type="primary" @click="handleAdd">新增</el-button> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
</div> |
|||
<el-table :data="dataList" border :height="height" v-loading="loading"> |
|||
<el-table-column label="操作" align="center" width="80"> |
|||
<template slot-scope="{row,$index}"> |
|||
<el-link @click="handleEdit(row)">编辑</el-link> |
|||
<el-link @click="handleDelete(row)">删除</el-link> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|||
style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:current-page="no" |
|||
:page-sizes="[20, 50, 100, 1000]" |
|||
:page-size="size" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
|
|||
<el-dialog title="订单详情" :close-on-click-modal="false" v-drag :visible.sync="open" width="500px"> |
|||
<el-form :model="form" ref="form" label-position="top" :rules="rules"> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="6"> |
|||
<el-form-item label="订单号" prop="orderNo" :show-message="false"> |
|||
<el-input v-model="form.orderNo" :disabled="form.site"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="4"> |
|||
<el-form-item label=" " > |
|||
<el-button type="primary">从IFS导入</el-button> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row :gutter="10"> |
|||
<el-col :span="10"> |
|||
<el-form-item label="产品编码" prop="partNo" :show-message="false"> |
|||
<span slot="label" style="" @click="handleQueryPart" ><a herf="#">产品编码</a></span> |
|||
<el-input v-model="form.partNo"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="14"> |
|||
<el-form-item label="产品名称" prop="partDesc" :show-message="false"> |
|||
<el-input v-model="form.partDesc" disabled></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8" > |
|||
<el-form-item label="订单日期" prop="planStartDate" :show-message="false"> |
|||
<el-date-picker |
|||
style="width: 100%" |
|||
v-model="form.planStartDate" |
|||
type="date" |
|||
value-format="yyyy-MM-dd" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="14" :offset="2"> |
|||
<el-form-item label="订单数量" prop="lotSize" :show-message="false"> |
|||
<el-input-number :min="0" :controls="false" :step="0" v-model="form.lotSize"></el-input-number> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-form-item label="备注" prop="remark" :show-message="false"> |
|||
<el-input v-model="form.remark"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
<el-footer style="height:30px;text-align:center"> |
|||
<el-button type="primary" @click="handleSave">保存</el-button> |
|||
<el-button type="primary" @click="open = false">取 消</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<el-dialog :title="`产品信息`" :visible.sync="partOpen" width="500px"> |
|||
<el-table :data="partDataList" border height="300" @row-dblclick="partRowClick"> |
|||
<el-table-column label="产品编码" prop="partNo"></el-table-column> |
|||
<el-table-column label="产品名称" prop="partDesc"></el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue