You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

384 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<div class="button-wrap">
<Button type="primary" @click="editorChuku('','add','领用出库')"></Button>
<Button type="primary" @click="editorChuku('','add','处置出库')"></Button>
<Button type="primary" @click="editorChuku('','add','调令出库')"></Button>
</div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<el-input v-model="select.keyword" style="width: 200px;margin-right: 10px;" placeholder="经办人搜索" />
<el-select v-model="select.chukuleixing" style="width: 200px;margin-right: 10px;" placeholder="出库类型" clearable>
<el-option v-for="item in chukuTypeList" :key="item.id" :value="item.id" :label="item.value"></el-option>
</el-select>
<el-select v-model="select.zhuangtai" style="width: 200px;margin-right: 10px;" placeholder="状态" clearable>
<el-option v-for="item in statusList" :key="item.id" :value="item.id" :label="item.value"></el-option>
</el-select>
<el-date-picker type="date" placeholder="发起日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="select.created_at" style="width: 200px;margin-right: 10px;" />
<el-date-picker type="date" placeholder="出库日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="select.chukushijian" style="width: 200px;margin-right: 10px;" />
<Button type="primary" @click="getindex">查询</Button>
</div>
</slot>
</lx-header>
</div>
<xy-table
v-loading="loading"
:list="list"
:total="total"
:table-item="table"
@pageSizeChange="e => select.pageSize = e"
@pageIndexChange="pageChange"
>
<template v-slot:zhuangtai>
<el-table-column label="状态" width="120" align="center" header-align="center">
<template slot-scope="scope">
<div v-for="item in statusList">
<el-tag :type="item.type" v-if="scope.row.zhuangtai==item.id">
{{ item.value }}
</el-tag>
</div>
</template>
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column fixed="right" label="操作" width="300" header-align="center">
<template slot-scope="scope">
<template v-if="scope.row.jilurenyuan==authName||isCkName=='仓库管理员'||roleName=='系统管理员'">
<!-- <Button v-if="scope.row.zhuangtai==='已办结'" type="primary" size="small" style="margin-left: 10px;" @click="printChuku(scope.row.id,scope.row.chukuleixing)">出库</Button>
<Button type="primary" size="small" style="margin-left: 10px;" @click="editorChuku(scope.row.id,'editor',scope.row.chukuleixing)">编辑</Button>
<Button v-if="scope.row.zhuangtai==='待处理'" type="primary" size="small" style="margin-left: 10px;" @click="toOaFollow(scope.row.id,scope.row.chukuleixing)">请示流程</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteChuku(scope.row)">
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip> -->
<template v-if="scope.row.zhuangtai==3 || scope.row.zhuangtai==1">
<Button style="margin-right: 10px;" type="primary" size="small"
@click="showChukuDetail(scope.row.id)">查看</Button>
</template>
<template v-else>
<Button v-if="scope.row.zhuangtai==0 || scope.row.zhuangtai==4" style="margin-right: 10px;" type="primary" size="small"
@click="editorChuku(scope.row.id,'editor',scope.row.chukuleixing)">编辑</Button>
<Button v-if="scope.row.zhuangtai==0 || scope.row.zhuangtai==4" style="margin-right: 10px;" type="primary" size="small"
@click="toOaFollow(scope.row,scope.row.chukuleixing)">发起流程</Button>
<!-- v-if="scope.row.zhuangtai==2 &&(isCkName=='仓库管理员'||roleName=='系统管理员')" -->
<Button style="margin-right: 10px;" type="primary" size="small"
@click="printChuku(scope.row.id)">确认出库</Button>
<Poptip v-if="scope.row.zhuangtai==0" transfer confirm title="确认要删除该出库记录?"
@on-ok="deleteChuku(scope.row)">
<Button type="error" size="small" ghost>删除</Button>
</Poptip>
</template>
</template>
</template>
</el-table-column>
</template>
</xy-table>
<addoutbounds ref="addoutbounds" @refresh="getindex" />
<printoutbounds ref="printoutbounds" @refresh="getindex" />
<imports ref="imports" :table-name="customForm.tableName" :form-info="form" @refresh="getindex" />
<showChuku ref="showChuku" @refresh="getindex"></showChuku>
</div>
</template>
<script>
import {
index,
destroy
} from '@/api/system/baseForm.js'
import {
delOutbounds
} from '@/api/outbounds.js'
import {
getInfo
} from '@/api/user.js'
import {
getOutboundsStatus,
getOatoken
} from '@/api/contract.js'
import addoutbounds from './component/addoutbounds.vue'
import showChuku from './component/showChuku.vue'
import printoutbounds from './component/printoutbounds.vue'
import {
Message
} from 'element-ui'
import imports from '@/views/component/imports.vue'
import {
index as fieldIndex
} from '@/api/system/customFormField'
import {
getparameter
} from '@/api/system/dictionary'
export default {
components: {
addoutbounds,
showChuku,
imports,
printoutbounds
},
data() {
return {
loading: false,
userName: '',
authName: '',
roleName: '',
isCkName: '',
select: {
pageSize: 10,
pageIndex: 1,
keyword: '',
chukuleixing: '',
zhuangtai:'',
created_at:'',
chukushijian:''
},
chukuTypeList: [{
id: '领用出库',
value: '领用出库'
}, {
id: '处置出库',
value: '处置出库'
}, {
id: '调令出库',
value: '调令出库'
}],
statusList:[{
id:0,
value:'待处理',
type:'info'
},{
id:1,
value:'待办结',
type:'warning'
},{
id:2,
value:'待出库',
type:''
},{
id:3,
value:'已出库',
type:'success'
},{
id:4,
value:'退回',
type:'danger'
}],
customForm: {
customFormId: '',
tableName: ''
},
wuziguanli_oatoken: '',
form: [],
total: 0,
list: [],
table: [{
label: '序号',
type: 'index',
fixed: 'left',
width: 80
}, {
label: '出库日期',
width: 180,
prop: 'chukushijian',
align: 'center',
fixed: 'left'
},
{
label: '出库类型',
width: 180,
prop: 'chukuleixing',
align: 'center'
},
{
label: '状态',
width: 180,
prop: 'zhuangtai',
align: 'center'
},
// {
// label: '借用仓库',
// width: 180,
// prop: 'jieyongcangku',
// align: 'center'
// },
{
label: '借用部门',
width: 180,
prop: 'jieyongbumen',
align: 'center'
},
{
label: '经办人',
width: 180,
prop: 'jilurenyuan',
align: 'center'
},
{
label: '出库详情',
width: 300,
prop: 'id_outbounds_items_outbounds_id_relation',
align: 'left',
customFn: (row) => {
if (row.id_outbounds_items_outbounds_id_relation.length > 0) {
return row.id_outbounds_items_outbounds_id_relation.map(item => {
return (<p> {item.wuzibianma}-{item.zichanmingcheng}
{item.guigexinghao ? '(' + item.guigexinghao + ')' : ''}
{item.jieyongshuliang}{item.jiliangdanwei}
</p>)
})
} else {
return
}
}
},
{
label: '备注',
prop: 'beizhu',
align: 'left'
},
{
label: '发起时间',
prop: 'created_at',
align: 'center',
width:180
}
]
}
},
mounted() {
// if (this.$route.path) {
// const path = this.$route.path.split('_')[1]
// const tableName = path == 'receive' ? 'lingyongchuku' : (path == 'disposition' ? 'baofeichuzhi' : 'yingjichuku')
// getOutboundsStatus({
// table: tableName
// })
// }
if(this.$route.query.oaType==='wuzi'){
this.editorChuku('','add',this.$route.query.chukuType)
}
this.getUserName()
this.getindex()
getOatoken().then(res => {
this.wuziguanli_oatoken = res.oatoken
})
},
methods: {
showChukuDetail(id){
this.$refs['showChuku'].id = id
this.$refs['showChuku'].isShow = true
},
async getUserName() {
getInfo().then(res => {
console.log('res', res)
this.userName = res.username
this.authName = res.name
for (var k of res.role) {
if (k.name == '系统管理员') {
this.roleName = k.name
}
if (k.name == '仓库管理员') {
this.isCkName = '仓库管理员'
}
}
}).catch(error => {})
},
async getindex() {
this.loading = true
const res = await index({
page_size: this.select.pageSize,
page: this.select.pageIndex,
table_name: 'outbounds',
filter: [{ 'key': 'jilurenyuan', 'op': 'like', 'value': this.select.keyword },
{ 'key': 'chukuleixing', 'op': 'like', 'value': this.select.chukuleixing ? this.select.chukuleixing : '' },
{ 'key': 'created_at', 'op': 'like', 'value': this.select.created_at ? this.select.created_at : '' },
{ 'key': 'chukushijian', 'op': 'like', 'value': this.select.chukushijian ? this.select.chukushijian : '' },
{
'key': 'zhuangtai',
'op': 'like',
'value': this.select.zhuangtai ? this.select.zhuangtai : (this.select.zhuangtai===0?0:'')
}]
})
this.list = res.data
this.total = res.total
this.loading = false
},
pageChange(e) {
this.select.pageIndex = e
this.getindex()
},
editorChuku(id, type, leixing) {
if (id) {
this.$refs['addoutbounds'].id = id
}
this.$refs['addoutbounds'].authName = this.authName
this.$refs['addoutbounds'].isShow = true
this.$refs['addoutbounds'].type = type
this.$refs['addoutbounds'].chukuType = leixing
},
// 打印
printChuku(id, leixing) {
this.$refs['printoutbounds'].id = id
this.$refs['printoutbounds'].chukuType = leixing
this.$refs['printoutbounds'].isShow = true
},
async toOaFollow(res, type) {
let typeid = ''
const typeObj = JSON.parse(process.env.VUE_APP_OA_URL_TYPE)
console.log("typeObj",typeObj,type)
for (var k in typeObj) {
if (k == type) {
typeid = parseInt(typeObj[k])
}
}
let default_json = {
outbounds_id:res.id,
chukuriqi:res.chukushijian,
jieyongbumen:res.jieyongbumen,
jingbanren:res.jilurenyuan,
beizhu:res.beizhu,
wuzixinxidan:res.zuozhengwenjian.join(',')
// jieyongcangku:''
}
const url =
`${process.env.VUE_APP_OA_URL}/admin/flow/create/${typeid}?wuziguanli_oatoken=${this.wuziguanli_oatoken}&&outbounds_id=${res.id}&default_json=${JSON.stringify(default_json)}`
const seeBuy = window.open(url, '_blank')
if(this.$route.query.oaType==='wuzi'){
window.history.back()
}
},
deleteChuku(row) {
// return
delOutbounds({
id: row.id,
// table_name: 'outbounds',
// destroy_relation: ['id_outbounds_items_outbounds_id_relation']
}).then(res => {
Message({
type: 'success',
message: '删除成功'
})
this.getindex()
})
}
}
}
</script>
<style scoped lang="scss">
.button-wrap{
button{
margin-right:10px;
}
}
</style>