Files
jshERP/jshERP-web/src/views/bill/OtherOutList.vue
2023-12-10 23:31:55 +08:00

338 lines
15 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<a-row :gutter="24">
<a-col :md="24">
<a-card :style="cardStyle" :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<!-- 搜索区域 -->
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="24">
<a-form-item label="单据编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入单据编号" v-model="queryParam.number"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="商品信息" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入条码名称规格型号颜色扩展信息" v-model="queryParam.materialParam"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="单据日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
style="width:100%"
v-model="queryParam.createTimeRange"
format="YYYY-MM-DD"
:placeholder="['开始时间', '结束时间']"
@change="onDateChange"
@ok="onDateOk"
/>
</a-form-item>
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button type="primary" @click="searchQuery">查询</a-button>
<a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</a-col>
</span>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="24">
<a-form-item label="客户" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select placeholder="选择客户" showSearch optionFilterProp="children" v-model="queryParam.organId">
<a-select-option v-for="(item,index) in cusList" :key="index" :value="item.id">
{{ item.supplier }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="仓库名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select placeholder="请选择仓库" showSearch optionFilterProp="children" v-model="queryParam.depotId">
<a-select-option v-for="(depot,index) in depotList" :key="index" :value="depot.id">
{{ depot.depotName }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="操作员" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select placeholder="选择操作员" showSearch optionFilterProp="children" v-model="queryParam.creator">
<a-select-option v-for="(item,index) in userList" :key="index" :value="item.id">
{{ item.userName }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="关联单据" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入关联单据" v-model="queryParam.linkNumber"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="单据状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select placeholder="选择单据状态" v-model="queryParam.status">
<a-select-option value="0">未审核</a-select-option>
<a-select-option value="1">已审核</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="单据备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入单据备注" v-model="queryParam.remark"></a-input>
</a-form-item>
</a-col>
</template>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<div class="table-operator" style="margin-top: 5px">
<a-button v-if="btnEnableList.indexOf(1)>-1" @click="myHandleAdd" type="primary" icon="plus">新增</a-button>
<a-button v-if="inOutManageFlag && btnEnableList.indexOf(1)>-1" @click="handleWaitBill" icon="link">待出库({{waitTotal}})</a-button>
<a-button v-if="btnEnableList.indexOf(1)>-1" icon="delete" @click="batchDel">删除</a-button>
<a-button v-if="checkFlag && btnEnableList.indexOf(2)>-1" icon="check" @click="batchSetStatus(1)">审核</a-button>
<a-button v-if="checkFlag && btnEnableList.indexOf(7)>-1" icon="stop" @click="batchSetStatus(0)">反审核</a-button>
<a-button v-if="isShowExcel && btnEnableList.indexOf(3)>-1" icon="download" @click="handleExport">导出</a-button>
<a-popover trigger="click" placement="right">
<template slot="content">
<a-checkbox-group @change="onColChange" v-model="settingDataIndex" :defaultValue="settingDataIndex">
<a-row style="width: 500px">
<template v-for="(item,index) in defColumns">
<template>
<a-col :span="8">
<a-checkbox :value="item.dataIndex">
<j-ellipsis :value="item.title" :length="10"></j-ellipsis>
</a-checkbox>
</a-col>
</template>
</template>
</a-row>
<a-row style="padding-top: 10px;">
<a-col>
恢复默认列配置:<a-button @click="handleRestDefault" type="link" size="small">恢复默认</a-button>
</a-col>
</a-row>
</a-checkbox-group>
</template>
<a-button icon="setting">列设置</a-button>
</a-popover>
<a-tooltip placement="left" title="可以进行库存初始化生产管理模块的领料出库" slot="action">
<a-icon v-if="btnEnableList.indexOf(1)>-1" type="question-circle" style="font-size:20px;float:right;" />
</a-tooltip>
</div>
<!-- table区域-begin -->
<div>
<a-table
ref="table"
size="middle"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:components="handleDrag(columns)"
:pagination="ipagination"
:scroll="scroll"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<span slot="action" slot-scope="text, record">
<a @click="myHandleDetail(record, '其它出库', prefixNo)">查看</a>
<a-divider v-if="btnEnableList.indexOf(1)>-1" type="vertical" />
<a v-if="btnEnableList.indexOf(1)>-1" @click="myHandleEdit(record)">编辑</a>
<a-divider v-if="btnEnableList.indexOf(1)>-1" type="vertical" />
<a v-if="btnEnableList.indexOf(1)>-1" @click="myHandleCopyAdd(record)">复制</a>
<a-divider v-if="btnEnableList.indexOf(1)>-1" type="vertical" />
<a-popconfirm v-if="btnEnableList.indexOf(1)>-1" title="确定删除吗?" @confirm="() => myHandleDelete(record)">
<a>删除</a>
</a-popconfirm>
</span>
<template slot="customRenderStatus" slot-scope="status">
<a-tag v-if="status == '0'" color="red">未审核</a-tag>
<a-tag v-if="status == '1'" color="green">已审核</a-tag>
<a-tag v-if="status == '9'" color="orange">审核中</a-tag>
</template>
</a-table>
</div>
<!-- table区域-end -->
<!-- 表单区域 -->
<other-out-modal ref="modalForm" @ok="modalFormOk" @close="modalFormClose"></other-out-modal>
<bill-detail ref="modalDetail" @ok="modalFormOk" @close="modalFormClose"></bill-detail>
<bill-excel-iframe ref="billExcelIframe" @ok="modalFormOk" @close="modalFormClose"></bill-excel-iframe>
<batch-wait-bill-list ref="batchWaitBill" @ok="modalFormOk" @close="waitModalFormClose"></batch-wait-bill-list>
</a-card>
</a-col>
</a-row>
</template>
<!--power by j i s h e n g h u a-->
<script>
import OtherOutModal from './modules/OtherOutModal'
import BillDetail from './dialog/BillDetail'
import BillExcelIframe from '@/components/tools/BillExcelIframe'
import BatchWaitBillList from './dialog/BatchWaitBillList'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { BillListMixin } from './mixins/BillListMixin'
import JEllipsis from '@/components/jeecg/JEllipsis'
import JDate from '@/components/jeecg/JDate'
import { deleteAction } from '@/api/manage'
export default {
name: "OtherOutList",
mixins:[JeecgListMixin,BillListMixin],
components: {
OtherOutModal,
BillDetail,
BillExcelIframe,
BatchWaitBillList,
JEllipsis,
JDate
},
data () {
return {
// 查询条件
queryParam: {
number: "",
materialParam: "",
type: "出库",
subType: "其它",
organId: "",
depotId: "",
creator: "",
linkNumber: "",
status: "",
remark: ""
},
prefixNo: 'QTCK',
//出入库管理开关,适合独立仓管场景
inOutManageFlag: false,
labelCol: {
span: 5
},
wrapperCol: {
span: 18,
offset: 1
},
// 默认索引
defDataIndex:['action','organName','number','materialsList','operTimeStr','userName','materialCount','totalPrice','status'],
// 默认列
defColumns: [
{
title: '操作',
dataIndex: 'action',
align:"center", width: 160,
scopedSlots: { customRender: 'action' },
},
{ title: '客户', dataIndex: 'organName',width:120, ellipsis:true},
{ title: '单据编号', dataIndex: 'number',width:160,
customRender:function (text,record,index) {
text = record.linkNumber?text+"[]":text
return text
}
},
{ title: '关联单据', dataIndex: 'linkNumber',width:140},
{ title: '商品信息', dataIndex: 'materialsList',width:220, ellipsis:true},
{ title: '单据日期', dataIndex: 'operTimeStr',width:145},
{ title: '操作员', dataIndex: 'userName',width:80, ellipsis:true},
{ title: '数量', dataIndex: 'materialCount',width:60},
{ title: '金额合计', dataIndex: 'totalPrice',width:80},
{ title: '备注', dataIndex: 'remark',width:200},
{ title: '状态', dataIndex: 'status', width: 80, align: "center",
scopedSlots: { customRender: 'customRenderStatus' }
}
],
url: {
list: "/depotHead/list",
delete: "/depotHead/delete",
deleteBatch: "/depotHead/deleteBatch",
batchSetStatusUrl: "/depotHead/batchSetStatus"
}
}
},
computed: {
},
created() {
this.initSystemConfig()
this.initCustomer()
this.getDepotData()
this.initUser()
this.initWaitBillCount('出库', '销售,采购退货', '1,3')
},
methods: {
searchQuery() {
this.loadData(1)
if(this.inOutManageFlag) {
this.initWaitBillCount('出库', '销售,采购退货', '1,3')
}
},
searchReset() {
this.queryParam = {}
this.loadData(1)
if(this.inOutManageFlag) {
this.initWaitBillCount('出库', '销售,采购退货', '1,3')
}
},
myHandleDelete(record) {
let that = this
if(record.status === '0') {
deleteAction(that.url.delete, {id: record.id}).then((res) => {
if(res.code === 200){
that.loadData(1)
if(that.inOutManageFlag) {
that.initWaitBillCount('出库', '销售,采购退货', '1,3')
}
} else {
that.$message.warning(res.data.message);
}
})
} else {
this.$message.warning("抱歉只有未审核的单据才能删除请先进行反审核")
}
},
batchDel: function () {
if (this.selectedRowKeys.length <= 0) {
this.$message.warning('请选择一条记录!')
} else {
let ids = ""
for (let i = 0; i < this.selectedRowKeys.length; i++) {
ids += this.selectedRowKeys[i] + ","
}
let that = this
this.$confirm({
title: "确认删除",
content: "是否删除选中数据?",
onOk: function () {
that.loading = true
deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => {
if(res.code === 200){
that.loadData()
that.onClearSelected()
if(that.inOutManageFlag) {
that.initWaitBillCount('出库', '销售,采购退货', '1,3')
}
} else {
that.$message.warning(res.data.message)
}
}).finally(() => {
that.loading = false
})
}
})
}
},
//待出库
handleWaitBill() {
this.$refs.batchWaitBill.show('出库', '销售,采购退货', "1,3")
this.$refs.batchWaitBill.title = "批量选择销售出库或采购退货"
},
waitModalFormClose() {
this.loadData()
this.initWaitBillCount('出库', '销售,采购退货', '1,3')
},
}
}
</script>
<style scoped>
@import '~@assets/less/common.less'
</style>