Commit 47976738 authored by hiyon's avatar hiyon

销售订单详情调整用户选择样式

parent 8216ffcc
<template>
<el-dialog title="客户选择" :visible.sync="showFlag" modal width="80%" center>
<el-form :model="queryParams" ref="queryForm" size="small" inline label-width="68px">
<el-form-item label="客户编码" prop="clientCode">
<el-input v-model="queryParams.clientCode" placeholder="请输入客户编码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="客户名称" prop="clientName">
<el-input v-model="queryParams.clientName" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="客户简称" prop="clientNick">
<el-input v-model="queryParams.clientNick" placeholder="请输入客户简称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="英文名称" prop="clientEn">
<el-input v-model="queryParams.clientEn" placeholder="请输入客户英文名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label-width="0">
<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-table v-loading="loading" :data="list" ref="multipleTable" @select-all="onSelectAll" @select="onSelect" @row-dblclick="handleRowDbClick">
<el-table-column type="selection"/>
<el-table-column label="客户编码" prop="clientCode"/>
<el-table-column label="客户名称" width="150px" prop="clientName" :show-overflow-tooltip="true"/>
<el-table-column label="客户简称" prop="clientNick"/>
<el-table-column label="客户类型" prop="clientType">
<dict-tag slot-scope="{row}" :options="dict.type['mes_client_type']" :value="row.clientType"/>
</el-table-column>
<el-table-column label="客户电话" prop="tel"/>
<el-table-column label="联系人" prop="contact1"/>
<el-table-column label="联系人-电话" prop="contact1Tel"/>
<el-table-column label="是否启用" prop="enableFlag">
<dict-tag slot-scope="{row}" :options="dict.type['sys_yes_no']" :value="row.enableFlag"/>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
<div slot="footer">
<el-button type="primary" @click="confirmSelect">确 定</el-button>
<el-button @click="showFlag = false">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { listClient } from '@/api/mes/md/client'
export default {
name: 'ClientSelector',
dicts: ['sys_yes_no', 'mes_client_type'],
data() {
return {
showFlag: false,
loading: false,
queryParams: { pageNum: 1, pageSize: 10 },
total: 0,
list: [],
selectedRows: null
}
},
created() {
this.getList()
},
methods: {
/** 查询物料编码列表 */
getList() {
this.loading = true
listClient(this.queryParams).then(response => {
this.list = response.rows
this.total = response.total
}).finally(() => this.loading = false)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
onSelect(rows, row) {
this.$refs.multipleTable.clearSelection()
this.$refs.multipleTable.toggleRowSelection(row)
this.selectedRows = row
},
onSelectAll() {
this.$refs.multipleTable.clearSelection()
this.selectedRows = null
},
handleRowDbClick(row) {
if (row) {
this.selectedRows = row
this.$emit('onSelected', this.selectedRows)
this.showFlag = false
}
},
//确定选中
confirmSelect() {
if (!this.selectedRows) {
return this.$notify({title: '提示',type: 'warning',message: '请至少选择一条数据!'})
}
this.$emit('onSelected', this.selectedRows)
this.showFlag = false
}
}
}
</script>
...@@ -34,27 +34,11 @@ export default { ...@@ -34,27 +34,11 @@ export default {
this.$confirm("确定同步该条数据记录").then(() => { this.$confirm("确定同步该条数据记录").then(() => {
if (this.loading) return if (this.loading) return
this.loading = true this.loading = true
this.sapInfo.ITEM.forEach(item => { let sapForm = this.$refs.sapForm.sapForm
if (!item.MATNR) this.$message.error("物料编号不能为空") syncSapData(sapForm).then(() => {
if (!item.WERKS) this.$message.error("工厂不能为空 不能为空")
if (!item.VSTEL) this.$message.error("装运点/收货点 不能为空")
if (!item.EDATU) this.$message.error("计划行日期 不能为空")
if (!item.ZINCSUM) this.$message.error("指令数(客户)汇总 不能为空")
if (!item.SIZE[0].ZSIZE_NUM) this.$message.error("SIZE 序号 不能为空")
if (!item.SIZE[0].ZSIZE) this.$message.error("SIZE 序号 尺码")
if (!item.SIZE[0].ZINSNUM) this.$message.error("指令数(客户) 尺码")
})
this.$refs.sapInfo.validate(valid => {
if (valid) {
syncSapData(this.sapInfo).then(() => {
this.onGoBack() this.onGoBack()
this.$message.success("操作成功") this.$message.success("操作成功")
}).finally(() => this.loading = false) }).finally(() => this.loading = false)
} else {
this.loading = false
this.$message.error("请检查表单")
}
})
}) })
}, },
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
<el-button type="primary" size="mini" :loading="loading" @click="onEdit">提交</el-button> <el-button type="primary" size="mini" :loading="loading" @click="onEdit">提交</el-button>
</div> </div>
</div> </div>
<div class="page-body"> <div class="page-body clearfix">
<el-form :model="form" ref="form" :rules="rules" label-width="120px" size="mini"> <el-form :model="form" ref="form" :rules="rules" label-width="120px" size="mini">
<el-row :gutter="10"> <el-row class="form-row" :gutter="10">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="订单编号" prop="orderNo"> <el-form-item label="订单编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入 订单编号" clearable style="width: calc(100% - 90px);"/> <el-input v-model="form.orderNo" placeholder="请输入 订单编号" clearable style="width: calc(100% - 90px);"/>
...@@ -59,17 +59,11 @@ ...@@ -59,17 +59,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="客户编号" prop="clientNo"> <el-form-item label="客户名称" prop="clientNo">
<el-select v-model="form.clientId" class="form-item" placeholder="请选择 客户" clearable filterable remote :remote-method="getClientList"> <el-input v-model="form.clientName" readonly placeholder="请选择客户">
<el-option v-for="item in clientList" :key="item.clientId" :value="item.clientId" :label="item.clientCode"/> <el-button slot="append" icon="el-icon-search" @click="$refs['ClientSelector'].showFlag = true"/>
</el-select> </el-input>
</el-form-item> <ClientSelector ref="ClientSelector" @onSelected="onSelectClient"/>
</el-col>
<el-col :span="6">
<el-form-item label="客户名称" prop="clientId">
<el-select v-model="form.clientId" class="form-item" 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>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
...@@ -200,7 +194,7 @@ ...@@ -200,7 +194,7 @@
<el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/> <el-table-column label="产品编码" prop="itemNo" show-overflow-tooltip/>
<el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/> <el-table-column label="产品名称" prop="itemName" show-overflow-tooltip/>
<el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/> <el-table-column label="总数量" prop="totalNum" show-overflow-tooltip/>
<el-table-column label="loss数量" prop="lossNum" show-overflow-tooltip/> <el-table-column label="loss%" prop="lossNum"/>
<el-table-column label="数量" prop="num" show-overflow-tooltip/> <el-table-column label="数量" prop="num" show-overflow-tooltip/>
<el-table-column label="单价" :formatter="r => this.formatMoney(r.price)" show-overflow-tooltip/> <el-table-column label="单价" :formatter="r => this.formatMoney(r.price)" show-overflow-tooltip/>
<!-- <el-table-column label="装运点" prop="shipmentPointNo" show-overflow-tooltip/> <!-- <el-table-column label="装运点" prop="shipmentPointNo" show-overflow-tooltip/>
...@@ -281,7 +275,7 @@ ...@@ -281,7 +275,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="" label="loss数量"> <el-form-item prop="" label="loss%">
<el-input v-model="itemForm.lossNum" placeholder="" clearable/> <el-input v-model="itemForm.lossNum" placeholder="" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -558,15 +552,18 @@ ...@@ -558,15 +552,18 @@
<script> <script>
import { addOrder, getOrder, updateOrder } from '@/api/mes/od/salesOrder' import { addOrder, getOrder, updateOrder } from '@/api/mes/od/salesOrder'
import { getFactoryQuote } from '@/api/mes/od/factoryQuote'
import { getSalesOrder } from '@/api/mes/od/purchaseOrder' import { getSalesOrder } from '@/api/mes/od/purchaseOrder'
import { listUser } from '@/api/system/user' import { listUser } from '@/api/system/user'
import { listClient } from '@/api/mes/md/client' import { listClient } from '@/api/mes/md/client'
import ItemSelect from '@/components/itemSelect/single.vue' import ItemSelect from '@/components/itemSelect/single.vue'
import ClientSelector from '@/components/ClientSelector'
import { genCode } from '@/api/system/autocode/rule' import { genCode } from '@/api/system/autocode/rule'
export default { export default {
components: { components: {
ItemSelect ItemSelect,
ClientSelector,
}, },
dicts: ['sales_order_state'], dicts: ['sales_order_state'],
computed: { computed: {
...@@ -774,14 +771,28 @@ export default { ...@@ -774,14 +771,28 @@ export default {
this.showEditDetail = true this.showEditDetail = true
this.$refs.itemForm && this.$refs.itemForm.resetFields() this.$refs.itemForm && this.$refs.itemForm.resetFields()
this.itemForm = item || { itemName: null, itemNo: null, num: null, amount: null, state: null, specList: [] } this.itemForm = item || { itemName: null, itemNo: null, num: null, amount: null, state: null, specList: [] }
this.itemForm.lossPercent = (item.lossNum / item.totalNum * 100).toFixed(2)
this.itemForm.index = $index this.itemForm.index = $index
}, },
onSelectClient(row) {
if (row != undefined) {
this.form.clientId = row.clientId;
this.form.clientCode = row.clientCode;
this.form.clientName = row.clientName;
this.form.sapClientCode = row.sapClientCode;
}
},
onItemSelect(row) { onItemSelect(row) {
if (row != undefined) { if (row != undefined) {
this.itemForm.itemId = row.itemId; this.itemForm.itemId = row.itemId;
this.itemForm.itemNo = row.itemCode; this.itemForm.itemNo = row.itemCode;
this.itemForm.itemName = row.itemName; this.itemForm.itemName = row.itemName;
let params = {clientId: row.clientId, itemId: row.itemId, validFrom: new Date()}
getFactoryQuote(params).then(res => {
this.itemForm.price = res.data.price
})
} }
}, },
...@@ -966,4 +977,8 @@ export default { ...@@ -966,4 +977,8 @@ export default {
width: 100%; width: 100%;
} }
.form-row > div {
min-height: 47px;
}
</style> </style>
...@@ -197,7 +197,7 @@ import { ...@@ -197,7 +197,7 @@ import {
getFactoryQuote, getFactoryQuote,
listFactoryQuote, listFactoryQuote,
updateFactoryQuote updateFactoryQuote
} from '@/api/mes/qt/factoryQuote' } from '@/api/mes/od/factoryQuote'
import { listClient } from '@/api/mes/md/client' import { listClient } from '@/api/mes/md/client'
import { listMdItem } from '@/api/mes/md/mdItem' import { listMdItem } from '@/api/mes/md/mdItem'
import ItemSelect from '@/components/itemSelect/single.vue' import ItemSelect from '@/components/itemSelect/single.vue'
......
...@@ -35,7 +35,7 @@ module.exports = { ...@@ -35,7 +35,7 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: `http://192.168.66.110:8080`, target: `http://localhost:8080`,
// target: `http://192.168.4.122:8080`, // target: `http://192.168.4.122:8080`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
......
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