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 = "确认导出" } } }