Bläddra i källkod

会计发票导入

sangwenwei 1 månad sedan
förälder
incheckning
4c01a86444

+ 14 - 0
src/api/cw/invoice/CwFinanceInvoiceService.js

@@ -93,6 +93,20 @@ export default {
 			responseType: "blob",
 		});
 	},
+	exportFinanceTemplate: function () {
+		return request({
+			url: prefix + "/cw_finance/invoice/importFinance/template",
+			method: "get",
+			responseType: "blob",
+		});
+	},
+	importFinance: function (data) {
+		return request({
+			url: prefix + "/cw_finance/invoice/importFinance",
+			method: "post",
+			data: data,
+		});
+	},
 	getByIds: function (projectId, invoiceForm) {
 		return request({
 			url: prefix + "/cw_finance/invoice/getByIds",

+ 123 - 0
src/views/cw/invoice/CwFinanceImport.vue

@@ -0,0 +1,123 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+	<div>
+		<el-dialog
+			:title="title"
+			:close-on-click-modal="false"
+			draggable
+			width="1000px"
+			height="500px"
+			@close="close"
+			append-to-body
+			v-model="visible">
+
+				<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'"
+						 label-width="135px" @submit.native.prevent>
+					<el-row  :gutter="0">
+					</el-row>
+					<el-row :gutter="0">
+						<el-col :span="12">
+							<el-form-item label="附件">
+							<el-upload
+								ref="upload"
+								action=""
+								:limit="1"
+								:auto-upload="false"
+								:on-change="beforeUploadDetail"
+								:show-file-list="true">
+								<el-button type="primary">导入全部</el-button>
+							</el-upload>
+							</el-form-item>
+						</el-col>
+					</el-row>
+
+				</el-form>
+
+
+			<template #footer>
+						<span class="dialog-footer">
+					  		<el-button  type="warning" @click="downloadTpl()" plain>下载模板</el-button>
+					  		<el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+					  		<el-button  v-if="method !== 'view'" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
+					 	</span>
+				</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import financeInvoiceService from '@/api/cw/invoice/CwFinanceInvoiceService'
+	export default {
+    	data(){
+    		return {
+				visible: false,
+				title: '',
+				inputForm:{
+					file:[]
+				}
+			}
+		},
+		created () {
+		},
+		components: {
+		},
+		methods: {
+			init(){
+				this.visible = true
+				this.title = '发票导入'
+				this.inputForm={
+					file:[]
+				}
+				this.$forceUpdate()
+			},
+
+			beforeUploadDetail(file){
+				this.inputForm.file.push(file)
+			},
+			// 下载模板
+			downloadTpl () {
+				this.loading = true
+				financeInvoiceService.exportFinanceTemplate().then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, '发票导入模板' + ".xlsx")
+					this.loading = false
+				}).catch(function (err) {
+					this.loading = false
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			doSubmit(){
+
+				const formBody = new FormData()
+				formBody.append('file', this.inputForm.file[0].raw)
+				financeInvoiceService.importFinance(formBody).then((data) =>{
+					if (data){
+						this.$message.success('导入成功')
+						this.close()
+						this.$emit("refreshDataList");
+					}
+				})
+			},
+			close(){
+				this.visible = false
+				this.$refs.inputForm.resetFields()
+				this.$refs.upload.clearFiles();
+				this.inputForm = {
+					file:[]
+				}
+			}
+
+		}
+    }
+</script>
+
+<style scoped>
+	/deep/ .el-input-number .el-input__inner {
+		text-align: left;
+	}
+	.el-row {
+		display: flex;
+		align-items: center; /* 垂直居中 */
+	}
+</style>

+ 8 - 2
src/views/cw/invoice/InvoiceList.vue

@@ -211,7 +211,8 @@
         <template #buttons>
           <el-button v-if="hasPermission('cw_finance:invoice:add')" type="primary" icon="el-icon-plus" @click="start()">新建</el-button>
 <!--          <el-button v-if="hasPermission('cw_finance:invoice:del')" type="danger"   icon="el-icon-delete" @click="del()" :disabled="$refs.invoiceTable && $refs.invoiceTable.getCheckboxRecords().length === 0" plain>删除</el-button>-->
-        </template>
+			<el-button type="primary" @click="importFinance()" plain>导入</el-button>
+		</template>
 		  <template #tools>
 			  <vxe-button
 				  text
@@ -351,6 +352,7 @@
 	  <ReportManagementForm ref="reportManagementForm"></ReportManagementForm>
 	  <user-select1 ref="userSelect1" @doSubmit="selectUser1"></user-select1>
 	  <user-select2 ref="userSelect2" @doSubmit="selectUser2"></user-select2>
+	  <CwFinanceImport ref="cwFinanceImport" @refreshDataList="refreshList"></CwFinanceImport>
   </div>
 
 	<el-dialog title="详情信息" v-model="dialogFormVisible">
@@ -387,6 +389,7 @@
   import ReportManagementForm from '@/views/cw/reportManagement/ReportManagementForm'
   import UserSelect1 from '@/views/utils/UserTreeSelect'
   import UserSelect2 from '@/views/utils/UserTreeSelect'
+  import CwFinanceImport from "./CwFinanceImport";
   export default {
     data () {
       return {
@@ -456,6 +459,7 @@
 		ReportManagementForm,
 		UserSelect1,
 		UserSelect2,
+		CwFinanceImport
     },
     mounted () {
 		this.$nextTick(() => {
@@ -1085,7 +1089,9 @@
 			console.log(user[0].name)
 			this.searchForm.operator=user[0].name
 		},
-
+		importFinance(){
+			this.$refs.cwFinanceImport.init()
+		}
 
 
     }