import { CtableClass, WtableClass } from '@/utils/CtableClass' import { clone, Vuehttp } from '@/utils/tools' import {formatDate} from "@/utils/date" export const AddressMode = { data() { return { IslookOrUpdate: 'update', chooseItem: {}, // 当前已选择的对象 currentPage: 1, swtichType: '公司地址'// 当前是公司地址还是收货地址 } }, computed: { headArr() { return ['联系人', '联系地址', '联系电话', '操作', ''] }, StyleWidth() { return [180, 524, 170, 164, 124] }, controlArray() { return [['编辑', 'updateItem'],['删除', 'deteleItem']] }, swtichText() { return ['公司地址', '仓储地址'] }, getServerOrclient() { //当前是客户中心还是服务商中心 return this.$route.path.indexOf('clientPage') > -1 ? 'client' : 'server' }, getHttpResource() { // 后台取回来的数据源 return this.$store.state.address.Addresslist.data.content.content }, totalElements() { return this.$store.state.address.Addresslist.data.content.totalElements }, tableData() { return CtableClass(this.getHttpResource, ['name', ['地址','detailAddress','area'], 'telephone', '操作', ['设为默认', 'num']] ) }, getAddressType() { return this.getServerOrclient === 'client' ? (this.swtichType === '公司地址' ? 101 : 104) : (this.swtichType === '公司地址' ? 100 : 104) }, AlertTitle() { return this.IslookOrUpdate === 'add' ? '新增公司地址' : (this.IslookOrUpdate === 'update' ? '修改公司地址' : '查看公司地址') } }, methods: { deteleItem(index) { // 删除事件需要重新走 刷新数据的方法 let item = clone(this.getHttpResource[index]) this.$confirm('此操作将永久删除该条信息, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$http.delete(`/common/address/id?id=${item.id}`).then(res => { if (res.data.code !== 1) { this.$message.error(res.data.message) } else { this.$message({ message: '删除成功', type: 'success' }) this.handleCurrentChange(1) } }) }).catch(() => { }); }, updateItem(index) { this.IslookOrUpdate = 'update' this.chooseItem = clone(this.getHttpResource[index]) this.$refs.addressAlert.show(this.chooseItem) }, setAutoFn(index) { // 设置事件需要重新走 刷新数据的方法 let id = this.getHttpResource[index].id Vuehttp({ id: id }, '/common/address/default').then(res => { if (res.data.code !== 1) { this.$message.error(res.data.message) } else { this.$message({ message: '设置成功', type: 'success' }) this.handleCurrentChange(1) } }) }, // 切换视图 swtichClick(index) { this.swtichType = this.swtichText[index] this.handleCurrentChange(1) }, addAddress() { this.IslookOrUpdate = 'add' this.chooseItem = { name: '', telephone: '', detailAddress: '', araa: '', num: 0 } this.$refs.addressAlert.show(this.chooseItem) }, clickTwo(index) { this.IslookOrUpdate = 'look' this.chooseItem = clone(this.getHttpResource[index]) this.$refs.addressAlert.show(this.chooseItem) }, handleCurrentChange(page) { this.currentPage = page this.$store.dispatch('address/getAddressList', {page: this.currentPage, count: 10, type: this.getAddressType}) }, // 关闭编辑查看弹窗 closeAlert(_tp, item) { if (_tp === 'save') { let params let url = this.IslookOrUpdate === 'add' ? '/common/address/persist' : '/common/address/update' if (this.IslookOrUpdate === 'add') { params = { params: { area: item.area, telephone: item.telephone, name: item.name, detailAddress: item.detailAddress, }, type: this.getAddressType, isDefault: item.num === 1 } } else { params = { json: JSON.stringify(item), isDefault: item.num === 1 } } Vuehttp(params,url).then(res => { if (res.data.code !== 1) { this.$message.error(res.data.message) } else { this.$refs.addressAlert.hide() this.handleCurrentChange(1) } }) } else { this.$refs.addressAlert.hide() } } } } export const DocumentsMode = { layout: 'default', middleware: 'authenticated', data () { return { clickData: '', hasMultiple: true, selectData: [], isDialogTitle: false, dialogInfo: '', isDialog: false, pageParams: { page: 1, count: 10, }, pickerOptions: { shortcuts: [{ text: '最近一周', onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); picker.$emit('pick', [start, end]); } }, { text: '最近一个月', onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); picker.$emit('pick', [start, end]); } }, { text: '最近三个月', onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); picker.$emit('pick', [start, end]); } }], disabledDate (time) { // 大于等于今天 return time.getTime() >= Date.now() } }, searchKey: '', dataTime: [], files: {}, selectedArr: [] // 选中的数据 } }, computed: { thead () { return this.urlLink.route === 'clientPage' ? [ {id: 'checkbox', name: '全选', width:60, type: 'string'}, {id: 'csid', name: '系统编号', width:120, type: 'string'}, {id: 'applyTime', name: '报关日期', width:165, type: 'date'}, {id: 'commissionCompany', name: '委托公司', width:142, type: 'string'}, {id: 'status', name: '状态', width:80, type: 'string'}, {id: 'csid1', name: '进出口岸', width:95, type: 'string'}, {id: 'totalAmount', name: '总件数', width:105, type: 'string'}, {id: 'totalGrossWeight', name: '总毛重', width:98, type: 'string'}, {id: 'currency', name: '币种', width:70, type: 'string'}, {id: 'totalPrice', name: '总金额', width:106, type: 'string'}, {id: 'csid2', name: '对账', width:115, type: 'string'}] : [ {id: 'checkbox', name: '全选', width:60, type: 'string'}, {id: 'csid', name: '系统编号', width:120, type: 'string'}, {id: 'applyTime', name: '报关日期', width:165, type: 'date'}, {id: 'commissionCompanySimplify', name: '委托公司', width:142, type: 'string'}, {id: 'status', name: '状态', width:80, type: 'string'}, {id: 'csid1', name: '进出口岸', width:95, type: 'string'}, {id: 'totalAmount', name: '总件数', width:105, type: 'string'}, {id: 'totalGrossWeight', name: '总毛重', width:98, type: 'string'}, {id: 'currency', name: '币种', width:70, type: 'string'}, {id: 'totalPrice', name: '总金额', width:106, type: 'string'}, {id: 'csid2', name: '对账', width:115, type: 'string'}] }, sheetList () { return this.urlLink.route === 'clientPage' ? this.$store.state.clientSheet.list.data.content : this.$store.state.severSheet.list.data.content }, data () { return WtableClass(JSON.parse(JSON.stringify(this.sheetList.content)), this.thead) }, urlLink () { if (this.$route.path.indexOf('clientPage') > -1) { return {getData: 'loadClientSheetInfo', route: 'clientPage'} } else { return {getData: 'loadSeverSheetInfo', route: 'severPage'} } }, selectId () { let ids = [] this.selectData.forEach((value) => { ids.push(value.id) }) return ids ? ids.join('-') : '' } }, methods: { // 时间格式化 formatDate (type) { return formatDate(new Date(type), 'yyyy-MM-dd hh:mm:ss') }, // 添加文件 upload (e, type) { this.files[type] = e }, // 删除选择文件 closeFile (e, type) { delete this.files[type] }, // 分页调整数据 pageEvent (type) { this.pageParams.page = type let params = {} params.page = type params.count = this.pageParams.count if (this.searchKey) { params.keyword = this.searchKey } if (this.dataTime) { params.startTime = this.dataTime[0] params.endTime = this.dataTime[1] } this.$store.dispatch(this.urlLink.getData, params) }, // 搜索 searchClick () { this.pageEvent(1) }, // 表格选中数据 clickEvent (type) { this.clickData = type }, // 表格选中是否有多选 multipleEvent (type, list) { this.hasMultiple = type this.selectData = list if (this.urlLink.route !== 'clientPage') { this.selectedArr = list } }, // 新增 addEvent () { this.$router.push('/' + this.urlLink.route +'/entrustApply') }, // 编辑 editEvent () { if (this.hasMultiple) { this.$message({ message: '请选择一条信息!', type: 'error' }) } else { this.$router.push('/' + this.urlLink.route +'/entrustApply?id=' + this.clickData.id) } }, //导入事件 importClick () { this.isDialog = true this.dialogInfo = '导入' }, // 供应商导入事件 materialImportClick () { if (this.selectData.length === 0) { this.$message({ message: '至少选择一条信息!', type: 'error' }) } else { this.isDialog = true this.dialogInfo = '供应商导入' } }, // 导入文件保存 saveEvent () { if (this.dialogInfo === '导入') { this.bomSave() } if (this.dialogInfo === '供应商导入') { this.materialImport() } }, // 确认弹窗的关闭 closeTitle () { this.isDialogTitle = false this.dialogInfo = '' }, // 确认弹窗确认操作 enterInfo () { if (this.dialogInfo === '删除') { this.deleteEvent() } else if (this.dialogInfo === '作废') { this.cancellationEvent() } }, // 删除点击弹窗 deleteClick () { if (this.selectData.length === 0) { this.$message({ message: '至少选择一条信息!', type: 'error' }) } else { this.isDialogTitle = true this.dialogInfo = '删除' } }, // 删除处理事件 deleteEvent () { let params = new FormData() params.append('ids', this.selectId) let config = { headers: {'Content-Type': 'multipart/form-data'} } this.$http.post('/CommissionSheet/delete', params, config) .then(res => { this.closeTitle() if (res.data.success) { this.$message({ message: res.data.message, type: 'success' }) this.searchClick() } else { this.$message({ message: res.data.message, type: 'error' }) } }) }, // 查看 lookEvent () { if (this.hasMultiple) { this.$message({ message: '请选择一条信息!', type: 'error' }) } else { this.lookEventDbl(this.clickData) } }, // 作废点击弹窗 cancellationClick () { if (this.selectData.length === 0) { this.$message({ message: '至少选择一条信息!', type: 'error' }) } else { this.isDialogTitle = true this.dialogInfo = '作废' } }, // 作废 cancellationEvent () { let params = new FormData() params.append('ids', this.selectId) let config = { headers: {'Content-Type': 'multipart/form-data'} } this.$http.post('/CommissionSheet/abandoned', params, config) .then(res => { this.closeTitle() if (res.data.success) { this.$message({ message: res.data.message, type: 'success' }) this.searchClick() } else { this.$message({ message: res.data.message, type: 'error' }) } }) }, // 导出委托单 exportEntrust () { if (this.selectData.length === 0) { this.$message({ message: '至少选择一条信息!', type: 'error' }) } else { window.location.href = '/CommissionSheet/batchDown?ids=' + this.selectId } }, // 复制 copyEvent () { if (this.selectData.length === 0) { this.$message({ message: '至少选择一条信息!', type: 'error' }) } else { let params = new FormData() params.append('ids', this.selectId) let config = { headers: {'Content-Type': 'multipart/form-data'} } this.$http.post('/CommissionSheet/copy', params, config) .then(res => { if (res.data.success) { this.$message({ message: '复制信息成功!', type: 'success' }) this.searchClick() } else { this.$message({ message: res.data.message, type: 'error' }) } }) } }, // 供应商资料导入 materialImport () { let params = new FormData() params.append('ids', this.selectId) for (let i in this.files) { if (i !== 'sheet') { params.append(i, this.files[i]) } } let config = { headers: {'Content-Type': 'multipart/form-data'} } this.$http.post('/CommissionSheet/facilitator/upload', params, config) .then(res => { if (res.data.success) { this.isDialog = false this.$message({ message: '供应商资料导入成功!', type: 'success' }) this.searchClick() } else { this.$message({ message: res.data.message, type: 'error' }) } }) .catch(()=> { this.$message({ message: '请检查网络是否正常!', type: 'error' }) }) }, // 表格双击事件 lookEventDbl (type) { this.$router.push('/' + this.urlLink.route +'/' + type.id) }, // 下载模板信息 downBom () { window.location.href = '/CommissionSheet/template' }, // 清除选中文件 closeFile (e, type) { delete this.files[type] }, // bom取消 closebom () { this.isDialog = false this.dialogInfo = '' if (this.$refs.sheetUpload) { this.$refs.sheetUpload.closeClick() } this.$refs.contactUpload.closeClick() this.$refs.billUpload.closeClick() this.$refs.packagelistUpload.closeClick() }, // bom表单文件导入 bomSave () { if (!this.files.sheet) { this.$message({ message: '委托报关单为必选择项,请选择文件!', type: 'error' }) } else { let params = new FormData() for (let i in this.files) { params.append(i, this.files[i]) } let config = { headers: {'Content-Type': 'multipart/form-data'} } let _this = this this.$http.post('/CommissionSheet/upload', params, config) .then(res => { if (res.data.code === 1) { this.isDialog = false this.$message({ message: '信息保存成功!', type: 'success' }) this.$store.dispatch(this.urlLink.getData, {count: 10, page: 1}) } else if (res.data.code === 4) { this.$message({ message: '信息保存成功,但信息不符合逻辑,需要再次修改!', type: 'error' }) setTimeout(() => { _this.$router.push('/' + this.urlLink.route + '/entrustApply?id=' + res.data.content.id) }, 300) } else { this.$message({ message: res.data.message, type: 'error' }) } }) .catch(() => { this.$message({ message: '请检查网络是否正常!', type: 'error' }) }) } } } }