Browse Source

发运单管理

pull/132/head
wangxy 3 years ago
parent
commit
aafe7f16a1
5 changed files with 455 additions and 0 deletions
  1. +55
    -0
      src/api/productexe/shipment.js
  2. +83
    -0
      src/views/productexe/basic/component/artComponent.vue
  3. +62
    -0
      src/views/productexe/basic/component/pkgComponent.vue
  4. +248
    -0
      src/views/productexe/basic/dispatchOrder.vue
  5. +7
    -0
      src/views/quality/component/shipmentSearch.vue

+ 55
- 0
src/api/productexe/shipment.js View File

@ -0,0 +1,55 @@
import request from '@/utils/request'
// 查询发运单数据
export function getShiporderList (query) {
return request({
url: '/admin/jit/shiporder/query',
method: 'get',
params: query
})
}
// 删除发运单
export function delShiporder (id) {
return request({
url: '/admin/jit/shiporder/deleteone/' + id,
method: 'delete'
})
}
// 查询发运单下零件数据
export function getShiporderitemlst (query) {
return request({
url: '/admin/jit/shiporderitemlst/selectlist',
method: 'get',
params: query
})
}
// 查询发运单下包装单数据
export function getShiporderdatalst (query) {
return request({
url: '/admin/jit/shiporderdatalst/selectlist',
method: 'get',
params: query
})
}
// 上传文件
export function uploadmustpic (param) {
return request({
url: '/admin/common/uploadpic/uploadmustpic',
method: 'post',
headers: { 'Content-Type': 'multipart/form-data' },
data: param
})
}
// 导入发货订单
export function importShiporder (data) {
return request({
url: '/admin/jit/shiporder/insertone',
method: 'post',
data: data
})
}

+ 83
- 0
src/views/productexe/basic/component/artComponent.vue View File

@ -0,0 +1,83 @@
<template>
<el-dialog title="零件明细" width="80%" :visible.sync="currentVisible" :close-on-click-modal="false" :before-close="cancel">
<el-table v-loading="loading" :data="dataList" border height="500px">
<el-table-column v-for="(item, index) in headers" :key="index" width="120" :label="getColumnName(item)" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="item === 'JIT_ShipOrderItemlst-PlantNr'">{{ getValue(scope.row['JIT_ShipOrderItemlst-PlantNr']) }}</span>
<span v-else-if="item === 'JIT_ShipOrderItemlst-ShortTime'"> {{ parseTime(scope.row[item]) }} </span>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {
getShiporderitemlst
} from '@/api/productexe/shipment';
export default {
props: {
isVisible: {
default: false,
},
item: {
default: {},
}
},
data() {
return {
currentVisible: this.isVisible,
loading: false,
headers: [
"JIT_ShipOrderItemlst-PlantNr",
"JIT_ShipOrderItemlst-ShipOrderId",
"JIT_ShipOrderItemlst-ItemId",
"JIT_ShipOrderItemlst-ItemType",
"JIT_ShipOrderItemlst-Pos",
"JIT_ShipOrderItemlst-ShipValidateToggle",
"JIT_ShipOrderItemlst-Descr",
"JIT_ShipOrderItemlst-ProjectId",
"JIT_ShipOrderItemlst-ArtCode",
"JIT_ShipOrderItemlst-Spec",
"JIT_ShipOrderItemlst-Status",
"JIT_ShipOrderItemlst-Sequence",
"JIT_ShipOrderItemlst-SlotId",
"JIT_ShipOrderItemlst-Carset",
"JIT_ShipOrderItemlst-PlanQty",
"JIT_ShipOrderItemlst-ActualQty",
"JIT_ShipOrderItemlst-OrderQty",
"JIT_ShipOrderItemlst-GoodQty",
"JIT_ShipOrderItemlst-ScrapQty",
"JIT_ShipOrderItemlst-RecievedQty",
"JIT_ShipOrderItemlst-SupplierPartId",
"JIT_ShipOrderItemlst-CustomerPartId",
"JIT_ShipOrderItemlst-PartId",
"JIT_ShipOrderItemlst-PartName",
"JIT_ShipOrderItemlst-FillQty",
"JIT_ShipOrderItemlst-ShortShipToggle",
"JIT_ShipOrderItemlst-ShortShipQty",
"JIT_ShipOrderItemlst-ShortBy",
"JIT_ShipOrderItemlst-ShortTime",
],
dataList: [],
}
},
methods: {
cancel() {
this.$emit('completeCallBack', false)
},
},
mounted() {
this.dataList = []
getShiporderitemlst(this.item['JIT_ShipOrder-ShipOrderId']).then(({code, data =[]}) => {
if (code === 200) {
this.dataList = data
}
})
},
}
</script>

+ 62
- 0
src/views/productexe/basic/component/pkgComponent.vue View File

@ -0,0 +1,62 @@
<template>
<el-dialog title="包装单明细" width="80%" :visible.sync="currentVisible" :close-on-click-modal="false" :before-close="cancel">
<el-table v-loading="loading" :data="dataList" border height="500px">
<el-table-column v-for="(item, index) in headers" :key="index" :label="getColumnName(item)" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="item === 'JIT_ShipOrderDatalst-PlantNr'">{{ getValue(scope.row['JIT_ShipOrderDatalst-PlantNr']) }}</span>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {
getShiporderdatalst
} from '@/api/productexe/shipment';
export default {
props: {
isPkgVisible: {
default: false,
},
item: {
default: {},
}
},
data() {
return {
currentVisible: this.isPkgVisible,
loading: false,
headers: [
"JIT_ShipOrderDatalst-PlantNr",
"JIT_ShipOrderDatalst-ShipOrderId",
"JIT_ShipOrderDatalst-Pos",
"JIT_ShipOrderDatalst-ShipObjId",
"JIT_ShipOrderDatalst-ShipObjBarcode",
"JIT_ShipOrderDatalst-ItemId",
"JIT_ShipOrderDatalst-Status",
"JIT_ShipOrderDatalst-PlanQty",
"JIT_ShipOrderDatalst-ActualQty",
],
dataList: [],
}
},
methods: {
cancel() {
this.$emit('completeCallBack', false)
},
},
mounted() {
this.dataList = []
getShiporderdatalst(this.item['JIT_ShipOrder-ShipOrderId']).then(({code, data=[]}) => {
if (code === 200) {
this.dataList = data
}
})
},
}
</script>

+ 248
- 0
src/views/productexe/basic/dispatchOrder.vue View File

@ -0,0 +1,248 @@
<template>
<div class="app-container">
<el-form ref="queryForm" :model="queryParams" :inline="true">
<el-form-item :label="getColumnName('JIT_ShipOrder-ShipOrderId')">
<el-input
v-model.trim="queryParams.ShipOrderId"
placeholder="请输入查询内容"
clearable
size="small"
style="width: 200px"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
</el-form-item>
<el-form-item style="margin-left: 20px;">
<input
type="file"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, xls, xlsx"
@change="previewUpload"
>
<el-button
type="primary"
:loading="uploadLoading"
icon="el-icon-upload"
size="mini"
@click="uploadEvent"
>上传</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList" border>
<el-table-column v-for="(item, index) in headers" :key="index" width="150" :label="getColumnName(item)" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="item === 'JIT_ShipOrder-PlantNr'">{{ getValue(scope.row['JIT_ShipOrder-PlantNr']) }}</span>
<span v-else-if="item === 'JIT_ShipOrder-LastModify'"> {{ parseTime(scope.row[item]) }} </span>
<span v-else-if="item === 'JIT_ShipOrder-CreateTime'"> {{ parseTime(scope.row[item]) }} </span>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="220" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleOrderArt(scope.row)"
>零件明细</el-button>
<el-button
size="mini"
type="text"
@click="handleOrderPkg(scope.row)"
>包装单明细</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNumber"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<artComponent
v-if="isVisible"
:isVisible="isVisible"
:item="item"
@completeCallBack="completeCallBackArt"/>
<pkgComponent
v-if="isPkgVisible"
:isPkgVisible="isPkgVisible"
:item="item"
@completeCallBack="completeCallBackPkg"/>
</div>
</template>
<script>
import {
getShiporderList,
delShiporder,
uploadmustpic,
importShiporder
} from '@/api/productexe/shipment';
import artComponent from './component/artComponent.vue'
import pkgComponent from './component/pkgComponent.vue'
export default {
name: 'dispatchOrder',
components: {
artComponent,
pkgComponent
},
data() {
return {
//
dataList: [],
//
headers: [
"JIT_ShipOrder-PlantNr",
"JIT_ShipOrder-ShipOrderId",
"JIT_ShipOrder-Descr",
"JIT_ShipOrder-ShipTemplateId",
"JIT_ShipOrder-ProjectId",
"JIT_ShipOrder-StartSequence",
"JIT_ShipOrder-EndSequence",
"JIT_ShipOrder-Status",
"JIT_ShipOrder-ShipType",
"JIT_ShipOrder-OrderInfo",
"JIT_ShipOrder-PrinterId",
"JIT_ShipOrder-TemplateFile",
"JIT_ShipOrder-PlanQty",
"JIT_ShipOrder-ActualQty",
"JIT_ShipOrder-OpenTime",
"JIT_ShipOrder-CloseTime",
"JIT_ShipOrder-Operator",
"JIT_ShipOrder-SupplierCode",
"JIT_ShipOrder-PurchaseOrderId",
"JIT_ShipOrder-DeliverDate",
"JIT_ShipOrder-ShipDate",
"JIT_ShipOrder-LastModify",
"JIT_ShipOrder-LastUser",
"JIT_ShipOrder-CreateTime",
],
//
loading: true,
//
total: 0,
//
queryParams: {
pageNumber: 1,
pageSize: 10,
ShipOrderId: undefined
},
isVisible: false,
isPkgVisible: false,
item: {},
uploadLoading: false,
excel: '',
uploadmustpic: '',
}
},
created() {
this.getList()
},
methods: {
/** 查询列表 */
getList() {
this.loading = true
getShiporderList(this.queryParams).then(
response => {
this.dataList = response.data.records
this.total = response.data.count
this.loading = false
}
)
},
//
previewUpload(file) {
this.excle = file.target.files[0]
const uploadData = new FormData()
uploadData.append('upload', this.excle)
uploadmustpic(uploadData).then(res => {
if (res.code === 200) {
this.uploadmustpic = res.data
}
})
},
//
uploadEvent() {
this.uploadLoading = true
if (!this.excle) {
this.$message({
showClose: true,
duration: 2000,
message: '请选择文件',
type: 'error'
})
this.uploadLoading = false
return
}
let params = {
"JIT_ShipOrder-TemplateFile": this.uploadmustpic
}
importShiporder(params).then(({code, data}) => {
this.uploadLoading = false
if (code === 200) {
this.$message({
showClose: true,
duration: 2000,
message: 'submit success',
type: 'success'
})
this.getList()
} else {
this.$message({
showClose: true,
duration: 2000,
message: 'submit failed',
type: 'error'
})
}
})
},
//
completeCallBackArt(value) {
this.isVisible = value
},
//
completeCallBackPkg(value) {
this.isPkgVisible = value
},
/** 搜索按钮操作 */
handleQuery() {
if (this.queryParams.ShipOrderId === '') this.queryParams.ShipOrderId = undefined
this.queryParams.pageNumber = 1
this.getList()
},
//
handleOrderArt(row) {
this.isVisible = true
this.item = row
},
//
handleOrderPkg(row) {
this.isPkgVisible = true
this.item = row
},
/** 删除按钮操作 */
handleDelete(row) {
this.$confirm('是否确认删除"' + row['JIT_ShipOrder-ShipOrderId'] + '"的数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
return delShiporder(row['JIT_ShipOrder-ShipOrderId'])
}).then(() => {
this.msgSuccess('删除成功')
const totalPage = Math.ceil((this.total -1) / this.queryParams.pageSize)
this.queryParams.pageNumber = this.queryParams.pageNumber > totalPage ? totalPage : this.queryParams.pageNumber
this.queryParams.pageNumber = this.queryParams.pageNumber < 1 ? 1 : this.queryParams.pageNumber
this.getList()
}).catch(function() {})
}
}
}
</script>

+ 7
- 0
src/views/quality/component/shipmentSearch.vue View File

@ -8,6 +8,7 @@
class="fl select-date"
placeholder="选择日期"
format="yyyy-MM-dd"
@change="currentDayHandle"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-button class="before-after-day fr" @click="afterDayHandle">后一天</el-button>
@ -52,10 +53,16 @@ export default {
handleCurrentChange(val) {
console.log(val)
},
//
beforeDayHandle() {
let afterDay = moment(this.dateValue).subtract(1,"days").format("YYYY-MM-DD")
this.dateValue = afterDay
},
//
currentDayHandle(value) {
console.log(value)
},
//
afterDayHandle() {
let afterDay = moment(this.dateValue).add(1,"days").format("YYYY-MM-DD")
this.dateValue = afterDay


Loading…
Cancel
Save