Commit d6a1ad70 authored by 李苏's avatar 李苏 💬

STO销售交货单

parent 8a6a8ed6
...@@ -370,6 +370,20 @@ export const powerRoutes = [ ...@@ -370,6 +370,20 @@ export const powerRoutes = [
}, },
name: 'xsjhd', name: 'xsjhd',
path: "xsjhd", path: "xsjhd",
},
{
erpComponent: false,
component: 'ccgl/jcsj/stoxsjhd/index',
hidden: false,
meta: {
"title": "STO销售交货单",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920040510',
},
name: 'stoxsjhd',
path: "stoxsjhd",
} }
], ],
}, },
......
<template>
<DefaultDialog v-loading='isLoading' :element-loading-text="text" :app='app'>
<div slot="form" style="">
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<el-row :gutter="20" :app="this" class="editRow">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
v-if="(item.show==false)?false:true" :prop='item.prop' :key="item.prop" :type="item.type"
:typeConfig='item.typeConfig' :rule="item.rule" />
<!-- 额外数据 -->
</el-row>
</el-form>
</div>
<div slot="reFooter" class="refooter">
<span slot="footer" class="dialog-footer">
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">确 定</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
import {
editMixin,
editMixin_expand
} from 'common'
export default {
mixins: [editMixin, editMixin_expand],
props: {
app: {
type: Object,
default: () => {
return {}
}
}
},
async mounted() {
/* 初始化数据 */
this.form.id = this.app.singleItem.id
},
data() {
return {
isLoading: false,
text: '加载中',
readonly: false,
editColItemList: [{
"label": "仓库",
"prop": "ckid",
"span": 24,
"type": "RelSelect",
"value": "",
"required": true,
"typeConfig": {
"src": "lxyl/common/queryCk",
"match": {
"value": "id",
"label": "name"
},
params: {
ckfl: 'X'
}
}
}
]
}
},
methods: {
save() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.isLoading = true
this.$post('lxyl/ckgl/usofh/sync/ckToSap', this.form).then(res => {
if (res.success) {
this.isLoading = false
this.$success('操作成功')
this.app.showDialog = false
this.app.$refs.TablePager.refresh()
}
}).finally(res => {
this.isLoading = false
})
}
})
}
}
}
</script>
<style scoped>
</style>
<template>
<DefaultDialog :app='app'>
<div slot="form" style="display: flex;height: 70vh;">
DialogTitle:'新增',
showDialog:false,
</div>
<div slot="reFooter" class="refooter" >
<span slot="footer" class="dialog-footer" >
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">保 存</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
export default {
props: {
app: {
type: Object,
default: ()=>{
return {}
}
}
},
async mounted() {
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped>
</style>
<template>
<RelDialog width="50%" :type='type' :editApp='editApp' :app='app' :buttonApp='buttonApp'>
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<el-row :gutter="20" :app="this">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
</el-row>
</el-form>
</RelDialog>
</template>
<script>
import {
editMixin
} from 'common'
export default {
mixins: [editMixin],
data() {
return {
editColItemList: [
{
"label": "仓库",
"prop": "ckid",
"span": 8,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "jcsj/common/ck/queryCkid",
"match": {
"value": "id",
"label": "name"
}
}
},
{
label: '备注',
prop: 'bz',
span: 16,
type: 'input'
},
]
}
}
}
</script>
<template>
<BasePage :power='power' class="min_full" :config="config">
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.pagePage来操作默认页面 -->
<Tbjhd :app='ctx.basePage' v-if="ctx.basePage.showDialog&&ctx.basePage.DialogTitle=='同步交货单'" />
<Ckbg :app='ctx.basePage' v-if="ctx.basePage.showDialog&&ctx.basePage.DialogTitle=='仓库变更'" />
</template>
<template #toolbar="ctx">
<!-- 嵌入默认页面工具栏的插槽 ctx.pagePage来操作默认页面 -->
<el-button @click="tbjhd(ctx.basePage)" size='mini' type="primary">同步交货单</el-button>
<el-button @click="qr(ctx.basePage)" size='mini' type="primary">确认</el-button>
<el-button @click="qxqr(ctx.basePage)" size='mini' type="primary">取消确认</el-button>
<el-button @click="sapgz(ctx.basePage)" size='mini' type="primary">SAP过账</el-button>
<el-button @click="gb(ctx.basePage)" size='mini' type="primary">关闭</el-button>
<el-button @click="sfsap(ctx.basePage)" size='mini' type="primary">释放SAP修改权限</el-button>
<el-button @click="ckbg(ctx.basePage)" size='mini' type="primary">仓库变更</el-button>
</template>
</BasePage>
</template>
<script>
import Edit from './edit.vue'
import Tbjhd from './tbjhd.vue'
import Ckbg from './ckbg.vue'
export default {
data() {
return {
power: {
add: false,
copy: false,
/* 手动控制删除 */
delButton: true,
/* 手动控制编辑按钮权限 */
editButton: true,
/* 是否渲染右侧操作按钮 */
operateButtons: true,
/* 是否开启工作流按钮 */
workFlow: false,
/* 表格开启选择,以及记住选择 */
showSelection: true,
saveSelected: true
},
config: {
/* 基本配置*/
url: 'lxyl/ckgl/sto/usofh',
tableTitle: [{
title: "工厂编码",
field: "hzCode",
fieldType: "upper",
width: 140
},
{
title: "工厂",
field: "hzName",
width: 140
},
{
title: "仓库编码",
field: "ckCode",
fieldType: "upper",
width: 140
},
{
title: "仓库",
field: "ckName",
width: 140
},
{
title: "销售交货单",
field: "vbeln",
width: 140
},
{
title: "行项目",
field: "posnr",
width: 140
},
{
title: "物料编码",
field: "wlCode",
width: 140
},
{
title: "物料名称",
field: "wlName",
width: 140
},
{
title: "交货数量",
field: "lfimg",
width: 140
},
{
title: "交货数量",
field: "sfsl",
width: 140
},
{
title: "已开出库单",
field: "ckdbz",
width: 100,
formatter(a, b, v) {
let map = {
Y: '是',
N: '否'
}
return map[v]
}
},
{
title: "状态",
field: "zt",
"transform": {
"url": "lxyl/ckgl/usofh/init/zt",
"label": "name",
"value": "id"
},
width: 100
},
{
title: "销售订单号",
field: "kdauf",
width: 140
},
{
title: "销售行项目",
field: "kdpos",
width: 140
},
{
title: "特殊库存",
field: "sobkz",
width: 140
},
{
title: "客户编码",
field: "khCode",
width: 140
},
{
title: "客户",
field: "khName",
width: 140
},
{
title: "旺店通",
field: 'zwdt',
width: 140
},
{
title: "货单类型",
field: "vbtyp",
width: 140,
"transform": {
"url": "lxyl/ckgl/usofh/init/jhdType",
"label": "name",
"value": "id"
},
},
{
title: "过账状态",
field: "gzzt",
width: 140,
formatter(a, b, v) {
let map = {
Y: '是',
N: '否'
}
return map[v]
}
},
{
title: "关闭人",
field: "gbrName",
width: 140
},
{
title: "关闭时间",
field: "gbsj",
fieldType: "ftDateTime"
},
{
title: "备注",
field: "bz",
width: 140
},
{
title: "创建时间",
field: "cjsj",
fieldType: 'ftDateTime'
}
],
queryParams: [
[{
"label": "客户",
"prop": "khid",
"span": 5,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "jcsj/kh/query",
"match": {
"value": "id",
"label": "name"
}
}
},
{
"label": "仓库",
"prop": "ckid",
"span": 5,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "jcsj/common/ck/queryCkid",
"match": {
"value": "id",
"label": "name"
}
}
},
{
"label": "工厂",
"prop": "hzid",
"span": 5,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "wms/jcsj/hz/query",
"match": {
"value": "id",
"label": "name"
}
}
},
{
label: '物料信息',
prop: 'wlxxInfo',
span: 4,
type: 'input',
value: ''
},
{
label: '销售订单',
prop: 'soInfo',
span: 4,
type: 'input',
value: ''
}
]
],
/* 默认启停用 */
showqt: false,
}
}
},
methods: {
ckbg(ctx) {
if (ctx.singleItem && ctx.singleItem.id) {
ctx.DialogTitle = '仓库变更'
ctx.DialogWidth = '30vw'
ctx.showDialog = true
} else {
this.$warning('请选中一条数据')
}
},
sfsap(ctx) {
let list = ctx.$refs.TablePager.selectedList || []
if (list.length > 0) {
this.$confirm('是否继续操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('/lxyl/ckgl/usofh/ReleaseSapModifyPermission', {
ids: list.map(item => item.id)
}).then(res => {
if (res.success) {
this.$success('操作成功')
ctx.refresh()
}
})
})
} else {
this.$warning('请至少勾选一条数据')
}
},
gb(ctx) {
if (ctx.singleItem && ctx.singleItem.id) {
this.$prompt('请输入原因', '', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({
value
}) => {
if (value) {
this.$post('lxyl/ckgl/usofh/close', {
id: ctx.singleItem.id,
gbyy: value
}).then(res => {
if (res.success) {
this.$success('操作成功')
ctx.refresh()
}
})
} else {
this.$warning('请输入原因')
}
})
} else {
this.$warning('请选中一条数据')
}
},
tbjhd(ctx) {
ctx.DialogTitle = '同步交货单'
ctx.DialogWidth = '30vw'
ctx.showDialog = true
// this.$confirm('是否继续操作, 是否继续?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(res => {
// this.$post('lxyl/ckgl/usofh/sync/xsjhd', {
// }).then(res => {
// if (res.success) {
// this.$success('操作成功')
// ctx.refresh()
// }
// })
// })
},
qr(ctx) {
let list = ctx.$refs.TablePager.selectedList || []
if (list.length > 0) {
this.$confirm('是否继续操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('lxyl/ckgl/usofh/confirm', {
ids: list.map(item => item.id)
}).then(res => {
if (res.success) {
this.$success('操作成功')
ctx.refresh()
}
})
})
} else {
this.$warning('请至少勾选一条数据')
}
},
qxqr(ctx) {
let list = ctx.$refs.TablePager.selectedList || []
if (list.length > 0) {
this.$confirm('是否继续操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('lxyl/ckgl/usofh/unconfirm', {
ids: list.map(item => item.id)
}).then(res => {
if (res.success) {
this.$success('操作成功')
ctx.refresh()
}
})
})
} else {
this.$warning('请至少勾选一条数据')
}
},
sapgz(ctx) {
let list = ctx.$refs.TablePager.selectedList || []
if (list.length > 0) {
this.$confirm('是否继续操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('lxyl/ckgl/sto/usofh/sap/gz', {
ids: list.map(item => item.id)
}).then(res => {
if (res.success) {
this.$success('操作成功')
ctx.refresh()
}
})
})
} else {
this.$warning('请至少勾选一条数据')
}
}
/* 示例*/
// demo(basePage){
// }
},
components: {
Edit,
Tbjhd,
Ckbg
}
}
</script>
<style>
</style>
<template>
<DefaultDialog v-loading='isLoading' :element-loading-text="text" :app='app'>
<div slot="form" style="">
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<el-row v-if="loading" :gutter="20" :app="this" class="editRow">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label" v-if="(item.show==false)?false:true"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
<!-- 额外数据 -->
</el-row>
</el-form>
</div>
<div slot="reFooter" class="refooter" >
<span slot="footer" class="dialog-footer" >
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">确 定</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
import {
editMixin,
editMixin_expand
} from 'common'
export default {
mixins: [editMixin, editMixin_expand],
props: {
app: {
type: Object,
default: ()=>{
return {}
}
}
},
async mounted() {
/* 初始化数据 */
this.$post('common/datetime',{}).then(res=>{
let nowTime=res.data.data||new Date().getTime()
/* 初始赋值*/
this.nowTime=nowTime
// this.editColItemList[0].value=nowTime-24*60*60*1000
this.editColItemList[0].value=nowTime
this.loading=true
})
},
data() {
return {
isLoading:false,
text:'正在请求中...',
readonly:false,
loading:false,
editColItemList:[
{
label: '时间',
prop: 'time',
span: 24,
type: 'datetime',
value: '',
"required": true,
},
{
label: '单号',
prop: 'ddh',
span: 24,
type: 'input',
value: '',
}
]
}
},
methods: {
save(){
this.$refs['form'].validate((valid) => {
if(valid){
this.isLoading=true
this.$post('lxyl/ckgl/usofh/sync/xsjhd',this.form).then(res=>{
if(res.success){
this.isLoading=false
this.$success('操作成功')
this.app.showDialog=false
this.app.$refs.TablePager.refresh()
}
}).finally(res=>{
this.isLoading=false
})
}
})
}
}
}
</script>
<style scoped>
</style>
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