Commit e9846913 authored by hiyonx's avatar hiyonx

订单模块

parent faa6b469
import request from '@/utils/request'
// 查询客户采购订单列表
export function listOrder(query) {
return request({
url: '/od/purchaseOrder/list',
method: 'get',
params: query
})
}
// 查询客户采购订单详细
export function getOrder(id) {
return request({
url: '/od/purchaseOrder/' + id,
method: 'get'
})
}
export function getSalesOrder(purchaseId) {
return request({
url: '/od/purchaseOrder/getSalesOrder?id=' + purchaseId,
method: 'get'
})
}
// 新增客户采购订单
export function addOrder(data) {
return request({
url: '/od/purchaseOrder',
method: 'post',
data: data
})
}
// 修改客户采购订单
export function updateOrder(data) {
return request({
url: '/od/purchaseOrder',
method: 'put',
data: data
})
}
// 删除客户采购订单
export function delOrder(id) {
return request({
url: '/od/purchaseOrder/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询客户采购订单列表
export function listDetail(query) {
return request({
url: '/md/purchaseOrderDetail/list',
method: 'get',
params: query
})
}
// 查询客户采购订单详细
export function getDetail(id) {
return request({
url: '/md/purchaseOrderDetail/' + id,
method: 'get'
})
}
// 新增客户采购订单
export function addDetail(data) {
return request({
url: '/md/purchaseOrderDetail',
method: 'post',
data: data
})
}
// 修改客户采购订单
export function updateDetail(data) {
return request({
url: '/md/purchaseOrderDetail',
method: 'put',
data: data
})
}
// 删除客户采购订单
export function delDetail(id) {
return request({
url: '/md/purchaseOrderDetail/' + id,
method: 'delete'
})
}
...@@ -17,6 +17,15 @@ export function getOrder(id) { ...@@ -17,6 +17,15 @@ export function getOrder(id) {
}) })
} }
// 查询销售订单详细
export function getOrderDetail(params) {
return request({
url: '/od/salesOrder/detail',
method: 'get',
params
})
}
// 新增销售订单 // 新增销售订单
export function addOrder(data) { export function addOrder(data) {
return request({ return request({
...@@ -35,6 +44,14 @@ export function updateOrder(data) { ...@@ -35,6 +44,14 @@ export function updateOrder(data) {
}) })
} }
// 同步销售订单
export function syncOrder(id) {
return request({
url: '/od/salesOrder/sync/' + id,
method: 'get'
})
}
// 删除销售订单 // 删除销售订单
export function delOrder(id) { export function delOrder(id) {
return request({ return request({
......
...@@ -21,6 +21,7 @@ export default { ...@@ -21,6 +21,7 @@ export default {
value: {type: String|Number, required: true}, value: {type: String|Number, required: true},
// 单位: 1元, 0.1角, 0.01分 // 单位: 1元, 0.1角, 0.01分
unit: {type: String|Number, default: 1}, unit: {type: String|Number, default: 1},
prefix: {type: String, default: '¥ '},
placeholder: {type: String}, placeholder: {type: String},
clearable: {type: Boolean, default: false}, clearable: {type: Boolean, default: false},
readonly: {type: Boolean, default: false}, readonly: {type: Boolean, default: false},
......
...@@ -159,6 +159,7 @@ export default { ...@@ -159,6 +159,7 @@ export default {
} }
.footer { .footer {
margin: 10px;
text-align: right; text-align: right;
} }
......
...@@ -3,6 +3,7 @@ import Vuex from 'vuex' ...@@ -3,6 +3,7 @@ import Vuex from 'vuex'
import app from './modules/app' import app from './modules/app'
import user from './modules/user' import user from './modules/user'
import tagsView from './modules/tagsView' import tagsView from './modules/tagsView'
import order from './modules/order'
import permission from './modules/permission' import permission from './modules/permission'
import settings from './modules/settings' import settings from './modules/settings'
import getters from './getters' import getters from './getters'
...@@ -14,6 +15,7 @@ const store = new Vuex.Store({ ...@@ -14,6 +15,7 @@ const store = new Vuex.Store({
app, app,
user, user,
tagsView, tagsView,
order,
permission, permission,
settings settings
}, },
......
import {listChannel} from '@/api/mes/md/saleOrder/channel'
import {listGroup} from '@/api/mes/md/saleOrder/group'
import {listOffice} from '@/api/mes/md/saleOrder/office'
import {listOrg} from '@/api/mes/md/saleOrder/org'
import {listType} from '@/api/mes/md/saleOrder/type'
import {listUnit} from '@/api/mes/md/unit'
import {listClause} from '@/api/mes/md/clause'
import {listCurrency} from '@/api/mes/md/currency'
import {listReason} from '@/api/mes/md/reason'
import {listPoint} from '@/api/mes/md/point'
import {listClause as listPaymentClause } from '@/api/mes/md/paymentClause'
const order = {
namespaced: true,
state: {
saleChannel: [],
saleGroup: [],
saleOffice: [],
saleOrg: [],
saleType: [],
saleUnit: [],
saleClause: [],
saleCurrency: [],
salePaymentClause: [],
saleReason: [],
saleShipmentPoint: [],
},
mutations: {
SET_SALE_CHANNEL(state, data) {
state.saleChannel = data
},
SET_SALE_GROUP(state, data) {
state.saleGroup = data
},
SET_SALE_OFFICE(state, data) {
state.saleOffice = data
},
SET_SALE_ORG(state, data) {
state.saleOrg = data
},
SET_SALE_TYPE(state, data) {
state.saleType = data
},
SET_SALE_UNIT(state, data) {
state.saleUnit = data
},
SET_SALE_CLAUSE(state, data) {
state.saleClause = data
},
SET_SALE_CURRENCY(state, data) {
state.saleCurrency = data
},
SET_SALE_PAYMENT_CLAUSE(state, data) {
state.salePaymentClause = data
},
SET_SALE_REASON(state, data) {
state.saleReason = data
},
SET_SALE_SHIPMENT_POINT(state, data) {
state.saleShipmentPoint = data
},
},
actions: {
getSaleChannel({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleChannel && state.saleChannel.length) return resolve(state.saleChannel)
listChannel().then(res => {
commit('SET_SALE_CHANNEL', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleGroup({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleGroup && state.saleGroup.length) return resolve(state.saleGroup)
listGroup().then(res => {
commit('SET_SALE_GROUP', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleOffice({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleOffice && state.saleOffice.length) return resolve(state.saleOffice)
listOffice().then(res => {
commit('SET_SALE_OFFICE', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleOrg({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleOrg && state.saleOrg.length) return resolve(state.saleOrg)
listOrg().then(res => {
commit('SET_SALE_ORG', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleType({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleType && state.saleType.length) return resolve(state.saleType)
listType().then(res => {
commit('SET_SALE_TYPE', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleUnit({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleUnit && state.saleUnit.length) return resolve(state.saleUnit)
listUnit().then(res => {
commit('SET_SALE_UNIT', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleClause({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleClause && state.saleClause.length) return resolve(state.saleClause)
listClause().then(res => {
commit('SET_SALE_CLAUSE', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleCurrency({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleCurrency && state.saleCurrency.length) return resolve(state.saleCurrency)
listCurrency().then(res => {
commit('SET_SALE_CURRENCY', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSalePaymentClause({commit, state}) {
return new Promise((resolve, reject) => {
if (state.salePaymentClause && state.salePaymentClause.length) return resolve(state.salePaymentClause)
listReason().then(res => {
commit('SET_SALE_PAYMENT_CLAUSE', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleReason({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleReason && state.saleReason.length) return resolve(state.saleReason)
listPoint().then(res => {
commit('SET_SALE_REASON', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
getSaleShipmentPoint({commit, state}) {
return new Promise((resolve, reject) => {
if (state.saleShipmentPoint && state.saleShipmentPoint.length) return resolve(state.saleShipmentPoint)
listPaymentClause().then(res => {
commit('SET_SALE_SHIPMENT_POINT', res.rows)
resolve(res.rows)
}).catch(() => reject())
})
},
}
}
export default order
This diff is collapsed.
<template> <template>
<div class="index"> <div class="app-container">
purchase order <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="订单编号" prop="orderNo">
<el-input
v-model="queryParams.orderNo"
placeholder="请输入订单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="客户" prop="clientId">
<el-select v-model="queryParams.clientId" placeholder="请选择客户" clearable filterable remote :remote-method="getClientList">
<el-option v-for="item in clientList" :key="item.clientId" :value="item.clientId" :label="item.clientName"/>
</el-select>
</el-form-item>
<el-form-item label="交货日期" prop="deliveryDate">
<el-date-picker clearable
v-model="queryParams.deliveryDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择交货日期">
</el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="来源文件" prop="source">
<el-input
v-model="queryParams.source"
placeholder="请输入来源文件"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['md:purchaseOrder:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="订单编号" prop="orderNo" />
<el-table-column label="客户编号" prop="clientNo" />
<el-table-column label="客户名称" prop="clientName" />
<el-table-column label="交货日期" prop="deliveryDate" width="180">
<template slot-scope="{row}">
<span>{{ parseTime(row.deliveryDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" />
<el-table-column label="订单状态" prop="state">
<template slot-scope="{row}">
{{ dict.type.sales_order_state.find(item => item.value == row.state).label }}
</template>
</el-table-column>
<el-table-column label="来源文件" prop="source" />
<el-table-column label="操作" class-name="small-padding fixed-width" width="200">
<template slot-scope="{row}">
<el-button
size="mini"
type="text"
icon="el-icon-search"
@click="onShowDetail(row)"
v-hasPermi="['md:order:query']"
>查看</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="toSalesEdit(row)"
v-hasPermi="['md:order:edit']"
>生成订单</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(row)"
v-hasPermi="['md:order:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import { delOrder, listOrder } from '@/api/mes/od/purchaseOrder'
import { listClient } from '@/api/mes/md/client'
export default { export default {
name: "PurchaseOrder",
dicts: ['mes_client_type','sys_yes_no', 'sales_order_state'],
data() { data() {
return {} return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 客户采购订单表格数据
orderList: [],
clientList: [],
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
orderNo: null, clientId: null, deliveryDate: null, state: null, source: null
},
};
}, },
methods: {},
created() { created() {
this.getList();
this.getClientList()
},
methods: {
/** 查询客户采购订单列表 */
getList() {
this.loading = true;
listOrder(this.queryParams).then(response => {
this.orderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getClientList(key) {
listClient({ clientName: key, pageNum: 1, pageSize: 100 }).then(res => this.clientList = res.rows)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
toSalesEdit(row) {
let id = row ? row.id : this.ids[0]
this.$router.push('/order/sales/detail?purchaseId=' + id)
},
onShowDetail(row) {
let id = row ? row.id : this.ids[0]
this.$router.push('/order/purchaseEdit?id=' + id)
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除客户采购订单编号为"' + ids + '"的数据项?').then(function() {
return delOrder(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('md/order/export', {
...this.queryParams
}, `order_${new Date().getTime()}.xlsx`)
}
} }
} };
</script> </script>
<style scoped>
</style>
This diff is collapsed.
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"/> <el-table-column type="selection" width="55"/>
<el-table-column label="订单编号" prop="orderNo"/> <el-table-column label="订单编号" prop="orderNo"/>
<el-table-column label="客户编号" prop="mdClient.clientCode"/> <el-table-column label="客户编号" prop="clientNo"/>
<el-table-column label="交货期" prop="deliveryDate" width="180"/> <el-table-column label="交货期" prop="deliveryDate" width="180"/>
<el-table-column label="总金额" prop="amount" :formatter="r => this.formatMoney(r.amount)"/> <el-table-column label="总金额" prop="amount" :formatter="r => this.formatMoney(r.amount)"/>
<el-table-column label="跟单人" prop="merchandiser" <el-table-column label="跟单人" prop="merchandiser"
...@@ -125,6 +125,14 @@ ...@@ -125,6 +125,14 @@
v-hasPermi="['od:salesOrder:remove']" v-hasPermi="['od:salesOrder:remove']"
>删除 >删除
</el-button> </el-button>
<el-button
size="mini"
type="text"
icon="el-icon-refresh"
@click="onSync(scope.row)"
v-hasPermi="['od:salesOrder:edit']"
>同步
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -212,6 +220,16 @@ export default { ...@@ -212,6 +220,16 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.$router.push('/order/sales/detail?id=' + row.id) this.$router.push('/order/sales/detail?id=' + row.id)
}, },
/** 同步数据 */
onSync(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认同步销售订单编号为"' + ids + '"的数据项?').then(() => {
syncOrder(ids).then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
})
})
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids const ids = row.id || this.ids
......
This diff is collapsed.
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