import Vue from 'vue'
|
import {getAction } from '@/api/manage'
|
import { FormTypes } from '@/utils/JEditableTableUtil'
|
import {findBillDetailByNumber, findBySelectSup, findBySelectCus, findBySelectRetail, getUserList, getAccount, waitBillCount,
|
getCurrentSystemConfig, getPlatformConfigByKey} from '@/api/api'
|
import { getCheckFlag, getFormatDate, getPrevMonthFormatDate } from '@/utils/util'
|
import moment from 'moment'
|
|
export const BillListMixin = {
|
data () {
|
return {
|
/* 原始审核是否开启 */
|
checkFlag: true,
|
/* 单据Excel是否开启 */
|
isShowExcel: false,
|
//以销定购的场景开关
|
purchaseBySaleFlag: false,
|
waitTotal: 0,
|
dateFormat: 'YYYY-MM-DD',
|
billExcelUrl: '',
|
supList: [],
|
cusList: [],
|
retailList: [],
|
userList: [],
|
accountList: [],
|
// 实际索引
|
settingDataIndex:[],
|
// 实际列
|
columns:[],
|
queryParam: {
|
beginTime: getPrevMonthFormatDate(3),
|
endTime: getFormatDate(),
|
createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())]
|
}
|
}
|
},
|
computed: {
|
importExcelUrl: function(){
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
|
},
|
|
isBatchDelEnabled: function () {
|
for (let i = 0; i < this.selectedRowKeys.length; i++) {
|
if (!this.selectionRows[i].actionsEnabled.delete) {
|
return false;
|
}
|
}
|
return true;
|
}
|
},
|
created() {
|
this.initColumnsSetting()
|
this.isShowExcel = Vue.ls.get('isShowExcel');
|
},
|
methods: {
|
myHandleAdd() {
|
this.$refs.modalForm.action = "add";
|
if(this.btnEnableList.indexOf(2)===-1) {
|
this.$refs.modalForm.isCanCheck = false
|
}
|
this.handleAdd();
|
},
|
myHandleCopyAdd(record) {
|
this.$refs.modalForm.action = "copyAdd";
|
if(this.btnEnableList.indexOf(2)===-1) {
|
this.$refs.modalForm.isCanCheck = false
|
}
|
//复制单据的时候需要移除关联单据的相关信息
|
record.linkNumber = ''
|
record.billType = ''
|
record.deposit = ''
|
this.$refs.modalForm.edit(record);
|
this.$refs.modalForm.title = "复制新增";
|
this.$refs.modalForm.disableSubmit = false;
|
//开启明细的编辑模式
|
this.$refs.modalForm.rowCanEdit = true
|
let columnIndex = record.subType === '组装单' || record.subType === '拆卸单'?2:1
|
this.$refs.modalForm.materialTable.columns[columnIndex].type = FormTypes.popupJsh
|
},
|
myHandleEdit(record) {
|
if(record.status === '0') {
|
this.$refs.modalForm.action = "edit";
|
if(this.btnEnableList.indexOf(2)===-1) {
|
this.$refs.modalForm.isCanCheck = false
|
}
|
//查询单条单据信息
|
findBillDetailByNumber({ number: record.number }).then((res) => {
|
if (res && res.code === 200) {
|
let item = res.data
|
this.handleEdit(item)
|
}
|
})
|
} else {
|
this.$message.warning("抱歉,只有未审核的单据才能编辑,请先进行反审核!")
|
}
|
},
|
myHandleDelete(record) {
|
if(record.status === '0') {
|
this.handleDelete(record.id)
|
} else {
|
this.$message.warning("抱歉,只有未审核的单据才能删除,请先进行反审核!")
|
}
|
},
|
myHandleDetail(record, type, prefixNo) {
|
if(this.btnEnableList.indexOf(7)===-1) {
|
this.$refs.modalDetail.isCanBackCheck = false
|
}
|
this.handleDetail(record, type, prefixNo);
|
},
|
handleApprove(record) {
|
this.$refs.modalForm.action = "approve";
|
this.$refs.modalForm.edit(record);
|
this.$refs.modalForm.title = "审核";
|
},
|
searchReset() {
|
this.queryParam = {
|
type: this.queryParam.type,
|
subType: this.queryParam.subType,
|
beginTime: getPrevMonthFormatDate(3),
|
endTime: getFormatDate(),
|
createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())]
|
}
|
this.loadData(1);
|
},
|
onDateChange: function (value, dateString) {
|
this.queryParam.beginTime=dateString[0]
|
this.queryParam.endTime=dateString[1]
|
if(dateString[0] && dateString[1]) {
|
this.queryParam.createTimeRange = [moment(dateString[0]), moment(dateString[1])]
|
}
|
},
|
onDateOk(value) {
|
console.log(value);
|
},
|
initSystemConfig() {
|
getCurrentSystemConfig().then((res) => {
|
if(res.code === 200 && res.data){
|
let multiBillType = res.data.multiBillType
|
let multiLevelApprovalFlag = res.data.multiLevelApprovalFlag
|
this.checkFlag = getCheckFlag(multiBillType, multiLevelApprovalFlag, this.prefixNo)
|
this.purchaseBySaleFlag = res.data.purchaseBySaleFlag==='1'?true:false
|
this.inOutManageFlag = res.data.inOutManageFlag==='1'?true:false
|
}
|
})
|
getPlatformConfigByKey({ "platformKey": "bill_excel_url" }).then((res) => {
|
if (res && res.code === 200) {
|
if(res.data.platformValue) {
|
this.billExcelUrl = res.data.platformValue
|
}
|
}
|
})
|
},
|
initSupplier() {
|
let that = this;
|
findBySelectSup({}).then((res)=>{
|
if(res) {
|
that.supList = res;
|
}
|
});
|
},
|
initCustomer() {
|
let that = this;
|
findBySelectCus({}).then((res)=>{
|
if(res) {
|
that.cusList = res;
|
}
|
});
|
},
|
initRetail() {
|
let that = this;
|
findBySelectRetail({}).then((res)=>{
|
if(res) {
|
that.retailList = res;
|
}
|
});
|
},
|
getDepotData() {
|
getAction('/depot/findDepotByCurrentUser').then((res)=>{
|
if(res.code === 200){
|
this.depotList = res.data;
|
}else{
|
this.$message.info(res.data);
|
}
|
})
|
},
|
initUser() {
|
getUserList({}).then((res)=>{
|
if(res) {
|
this.userList = res;
|
}
|
});
|
},
|
initAccount() {
|
getAccount({}).then((res)=>{
|
if(res && res.code === 200) {
|
this.accountList = res.data.accountList
|
}
|
})
|
},
|
initWaitBillCount(type, subType, status) {
|
waitBillCount({search: {
|
type: type, subType: subType, status: status
|
}}).then((res)=>{
|
if(res && res.code === 200) {
|
this.waitTotal = res.data.total
|
}
|
})
|
},
|
//加载初始化列
|
initColumnsSetting(){
|
let columnsStr = Vue.ls.get(this.prefixNo)
|
if(columnsStr && columnsStr.indexOf(',')>-1) {
|
this.settingDataIndex = columnsStr.split(',')
|
} else {
|
this.settingDataIndex = this.defDataIndex
|
}
|
this.columns = this.defColumns.filter(item => {
|
if(this.purchaseBySaleFlag) {
|
//以销定购-开启
|
return this.settingDataIndex.includes(item.dataIndex)
|
} else {
|
//以销定购-关闭
|
if(this.prefixNo === 'CGDD') {
|
//采购订单只显示除了关联订单之外的列
|
if(item.dataIndex!=='linkNumber') {
|
return this.settingDataIndex.includes(item.dataIndex)
|
}
|
} else {
|
return this.settingDataIndex.includes(item.dataIndex)
|
}
|
}
|
})
|
},
|
//列设置更改事件
|
onColChange (checkedValues) {
|
this.columns = this.defColumns.filter(item => {
|
return checkedValues.includes(item.dataIndex)
|
})
|
let columnsStr = checkedValues.join()
|
Vue.ls.set(this.prefixNo, columnsStr)
|
},
|
//恢复默认
|
handleRestDefault() {
|
Vue.ls.remove(this.prefixNo)
|
this.initColumnsSetting()
|
},
|
//导出单据
|
handleExport() {
|
let search = this.getQueryParams().search
|
this.$refs.billExcelIframe.show(this.model, this.billExcelUrl + '?search=' + search + '&type=1', 150)
|
this.$refs.billExcelIframe.title = "确认导出"
|
}
|
}
|
}
|