Browse Source

2024/06/04 订单导入

LIrui
zelian_wu 2 years ago
parent
commit
b3a9194718
  1. 11
      src/api/production/shopOrder.js
  2. 490
      src/views/modules/production/order.vue

11
src/api/production/shopOrder.js

@ -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)

490
src/views/modules/production/order.vue

@ -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">&#10142</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>
Loading…
Cancel
Save