test 2 년 전
부모
커밋
cf01630747

+ 12 - 9
src/views/contracts/billDetail.vue

xqd xqd xqd xqd xqd
@@ -3,6 +3,7 @@
     <el-descriptions title="汇票详情">
       <el-descriptions-item label="汇票名">{{ list[0].name }}</el-descriptions-item>
       <el-descriptions-item label="汇票编号">{{ list[0].draftNo }}</el-descriptions-item>
+	  <el-descriptions-item label="汇票状态">{{ list[0].draftStatusText }}</el-descriptions-item>
       <el-descriptions-item label="承兑人">{{ list[0].acceptorName }}</el-descriptions-item>
       <el-descriptions-item label="出票人">{{ list[0].drawersName }}</el-descriptions-item>
       <el-descriptions-item label="金额">{{ list[0].money }}</el-descriptions-item>
@@ -14,23 +15,24 @@
       <el-descriptions-item label="承兑日期">{{ list[0].acceptDate }}</el-descriptions-item>
       <el-descriptions-item label="出票日期">{{ list[0].expireDate }}</el-descriptions-item>
       <el-descriptions-item label="预计贴现日">{{ list[0].expectDiscountDate }}</el-descriptions-item>
+	  <el-descriptions-item label="到期日期">{{ list[0].issueDate }}</el-descriptions-item>
       <el-descriptions-item label="附件">
         <el-image style="width: 100px; height: 100px" :src="list[0].picList" :preview-src-list="list[0].picList" />
       </el-descriptions-item>
       <el-descriptions-item label="审核状态">{{ list[0].statusText }}</el-descriptions-item>
-      <el-descriptions-item v-if="checked==1" label="审核反馈">{{ list[0].feedback }}</el-descriptions-item>
-      <el-descriptions-item v-if="checked==1" label="反馈截图">
-        <el-image style="width: 100px; height: 100px" :src="list[0].feedbackPicList" :preview-src-list="list[0].picList" />
+      <el-descriptions-item v-if="role===2" label="审核反馈">{{ list[0].feedback }}</el-descriptions-item>
+      <el-descriptions-item v-if="role===2" label="反馈截图">
+        <el-image  style="width: 100px; height: 100px" :src="list[0].feedbackPicList" :preview-src-list="list[0].picList" />
       </el-descriptions-item>
     </el-descriptions>
     <el-input
-      v-if="checked==0"
+      v-permission="['admin']"
       v-model="feed.feedback"
       type="textarea"
       placeholder="请输入审核反馈内容"
       style="width: 200px;"
     />
-    <el-row v-if="checked==0">
+    <el-row v-permission="['admin']">
       <el-col style="margin:0 auto;">
         <div class="titlesa">
           <span>上传反馈截图</span>
@@ -58,8 +60,8 @@
       </el-col>
     </el-row>
     <div class="btn">
-      <el-button v-if="checked==0" type="success" @click="success">审核成功</el-button>
-      <el-button v-if="checked==0" type="danger" @click="failed">审核失败</el-button>
+      <el-button v-permission="['admin']" type="success" @click="success">审核成功</el-button>
+      <el-button v-permission="['admin']" type="danger" @click="failed">审核失败</el-button>
       <el-button type="primary" @click="back">返回</el-button>
     </div>
   </div>
@@ -70,12 +72,13 @@
 export default {
   data() {
     return {
+	  role:'',
       list: [],
       checked: '',
       feed: {
         feedback: '',
         feedbackPicList: [
-          'https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg'
+          
         ],
         id: '',
         approveStatus: ''
@@ -84,8 +87,8 @@ export default {
     }
   },
   mounted() {
-    this.checked = this.$store.state.user.checked
     this.feed.id = this.$route.query.id
+	this.role = this.$store.state.user.userInfo.type
     this.getData()
   },
   methods: {

+ 104 - 52
src/views/contracts/detail.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -16,12 +16,8 @@
 						<span class="titlename">合同附件</span>
 						<div style="display: flex;">
 							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[0]"
-									:preview-src-list="picList[0]" />
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]" />
+								<el-image style="width: 100px; height: 100px" v-for="item in picList" :src="item"
+									/>
 							</div>
 						</div>
 					</div>
@@ -29,12 +25,8 @@
 						<span class="titlename">发票附件</span>
 						<div style="display: flex;">
 							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]" />
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]" />
+								<el-image style="width: 100px; height: 100px" v-for="item in invoicePicList" :src="item"
+									 />
 							</div>
 						</div>
 					</div>
@@ -47,25 +39,17 @@
 						<span class="titlename">贸易合同</span>
 						<div style="display: flex;">
 							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[0]"
-									:preview-src-list="picList[0]" />
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]" />
+								<el-image style="width: 100px; height: 100px" v-for="item in tradePicList" :src="item"
+									 />
 							</div>
 						</div>
 					</div>
 					<div class="yusa jas">
-						<!-- <el-tag type="warning" effect="dark">
-              <span>合同状态:</span>
-              <span style="color: #D05C39;">待审核</span>
-            </el-tag> -->
 						<div class="boxas">
 							<span style="color: #fff;">合同状态:</span>
-							<span style="color: #D05C39;">{{ contract.statusText }}</span>
+							<span style="color: #D05C39;">{{ contract.contractStatusText }}</span>
 						</div>
-						<span class="aoiisp">审核结果:<p style="color: #D8AB5A;">审核通过</p></span>
+						<span class="aoiisp">审核结果:<p style="color: #D8AB5A;">{{contract.statusText}}</p></span>
 					</div>
 					<div class="yusa">
 						<el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="10" class="jas">
@@ -81,22 +65,20 @@
 							<span class="sah">审核截图:</span>
 							<div style="display: flex;justify-content: flex-end;">
 								<div class="imgbox">
-									<el-image style="width: 100px; height: 100px" :src="url[0]"
-										:preview-src-list="picList" />
-								</div>
-								<div class="imgbox">
-									<el-image style="width: 100px; height: 100px" :src="url[1]"
-										:preview-src-list="picList" />
+									<el-image style="width: 100px; height: 100px" v-for="item in feed.feedbackPicList" :src="item"
+										 />
 								</div>
 							</div>
 						</el-col>
 					</div>
 					<div slot="" class="clearfix">
-						<el-button type="primary" style="float: right; margin-left: 10px;" @click="Exports">导出
+						<el-button type="primary" style="float: right; margin-left: 10px;" >导出
 						</el-button>
-						<el-button type="danger" style="float: right; " @click="deletedContract">删除</el-button>
+						<el-button type="danger" style="float: right; " @click="deletedContract"
+							v-if="contract.contractStatus===0">删除</el-button>
 
-						<el-button v-if="role===1" type="primary" style="float: right; " @click="recoverContract">恢复
+						<el-button type="primary" style="float: right; " @click="recoverContract"
+							v-if="contract.contractStatus===1">恢复
 						</el-button>
 						<el-button v-if="role===1" type="warning" style="float: right; " @click="failed">审核失败
 						</el-button>
@@ -143,8 +125,13 @@
 			</el-table>
 
 			<div class="pagesip">
-				<el-button v-if="role===2" type="primary" style="float: right;margin-right: 10px; " @click="addNewBill">
+				<el-button v-if="role===2" type="primary" @click="addNewBill">
 					新增汇票</el-button>
+				<el-button type="success" style="float: right; " @click="recoverContractDraft">恢复
+				</el-button>
+				<el-button type="danger" style="float: right; " @click="deletedContractDraft">删除</el-button>
+				<el-button type="primary" style="float: right; margin-left: 10px;" @click="ExportsContractDraft">导出
+				</el-button>
 				<el-button type="primary" size="small"
 					style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpFirstPage">首页
 				</el-button>
@@ -177,15 +164,15 @@
 				srcList: [],
 				temporaryList: [],
 				list: [],
+				listLoading:false,
 				contract: {},
 				currentPage: 1,
 				multipleSelection: [],
 				pagesize: 11,
-				listLoading: false,
-				checked: '',
 				form: '',
-				url: [],
+				invoicePicList: [],
 				picList: [],
+				tradePicList:[],
 				feed: {
 					id: '',
 					feedback: '',
@@ -194,7 +181,7 @@
 				}
 			}
 		},
-		created() {},
+		
 		mounted() {
 			this.role = this.$store.state.user.userInfo.type
 			console.log(this.$store.state.user.userInfo.type)
@@ -209,11 +196,14 @@
 					method: 'get'
 				}).then((res) => {
 					this.contract = res.data
-					this.url = this.contract.invoicePicList
+					console.log(res)
+					this.invoicePicList = this.contract.invoicePicList
 					this.picList = this.contract.picList
 					this.list = res.data.contractDraft.result
-					this.feed.feedbackPicList = this.picList
+					this.feed.feedbackPicList = this.contract.feedbackPics
+					this.tradePicList=this.contract.tradePicList
 					this.feed.id = this.$route.query.id
+					this.feed.feedback=this.contract.feedback
 					this.getPageData()
 				})
 			},
@@ -257,18 +247,26 @@
 				this.srcList = this.list.slice(start, end)
 				this.temporaryList = this.srcList
 			},
-			Exports() {
-				// var tableHeader = [
-				// 	['序号', '汇票名称', '汇票编号', '承兑人', '金额', '服务费','汇票状态','审核状态'],
-				// ]
-				// var dataList = []
-				// this.multipleSelection.forEach((item, index) => {
-				// 	dataList.push([index + 1, item.name, item.draftNo, item.acceptorName,item.money,item.serviceMoney, item.draftStatusText, item
-				// 		.statusText
-				// 	]);
-				// })
-				// dataConversionUtil.dataToExcel('出票人列表', tableHeader, dataList)
-				// this.$message.success('导出成功!');
+			ExportsContractDraft() {
+				if (this.multipleSelection == "") {
+					this.$message({
+						type: 'warning',
+						message: '请选择数据!'
+					})
+				} else {
+					var tableHeader = [
+						['序号', '汇票名称', '汇票编号', '承兑人', '金额', '服务费', '汇票状态', '审核状态'],
+					]
+					var dataList = []
+					this.multipleSelection.forEach((item, index) => {
+						dataList.push([index + 1, item.name, item.draftNo, item.acceptorName, item.money, item
+							.serviceMoney, item
+							.draftStatusText, item.statusText
+						]);
+					})
+					dataConversionUtil.dataToExcel('汇票列表', tableHeader, dataList)
+					this.$message.success('导出成功!');
+				}
 			},
 			success() {
 				// this.feed.feedbackPicList=this.picList
@@ -366,6 +364,60 @@
 					}
 				})
 			},
+			recoverContractDraft() {
+				let ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/contractDraft/manager',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 2
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.getData()
+					} else {
+						this.$message({
+							type: 'error',
+							message: '提交失败'
+						})
+						this.getData()
+					}
+				})
+			},
+			deletedContractDraft() {
+				let ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/contractDraft/manager',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 1
+					}
+				}).then((res) => {
+					if (res.code == 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.getData()
+					} else {
+						this.$message({
+							type: 'error',
+							message: '提交失败'
+						})
+						this.getData()
+					}
+				})
+			},
 			recover(id) {
 				this.$request({
 					url: '/api/Contract/contractDraft/manager',

+ 419 - 0
src/views/contracts/index.vue

xqd xqd xqd xqd
@@ -93,6 +93,57 @@
           />
         </div>
 
+<<<<<<< HEAD
+		<el-table v-loading="listLoading" :data="temporaryList" element-loading-text="Loading" border fit
+			highlight-current-row @select="handleSelectionChange" @select-all="handleAll">
+			<el-table-column align="center" label="" width="55" type="selection" />
+			<el-table-column label="合同名称" align="center" prop="name" />
+			<el-table-column label="合同编号" align="center" prop="contractNo" width="155" />
+			<el-table-column label="承兑人" align="center" prop="acceptorName" />
+			<el-table-column label="出票人" align="center" prop="drawersName" />
+			<el-table-column label="汇票状态" align="center" prop="draftStatusText" />
+			<el-table-column label="合同状态" align="center" prop="contractStatusText" />
+			<el-table-column class-name="status-col" label="审核状态" align="center" prop="statusText" />
+			<el-table-column align="center" label="时间" prop="createdAt" width="155" />
+			<el-table-column align="center" prop="created_at" label="操作" width="250">
+				<template slot-scope="scope">
+					<el-tag type="primary" style="cursor: pointer" @click="tapDetail(scope.row.id)">查看详情</el-tag>
+					<el-tag v-if="role === 1" type="success" style="cursor: pointer"
+						@click="Ssuccessed(scope.row.id)">
+						审核成功</el-tag>
+					<el-tag v-if="role === 1" type="danger" style="cursor: pointer" @click="Sfailed(scope.row.id)">
+						审核失败
+					</el-tag>
+					<el-tag v-if="role === 2" type="success" style="cursor: pointer">恢复
+					</el-tag>
+					<el-tag v-if="role === 2" type="danger" style="cursor: pointer">删除</el-tag>
+				</template>
+			</el-table-column>
+		</el-table>
+		<div style="display: flex;justify-content: space-between;">
+			<el-row type="flex" justify="space-between">
+				<div class="btn" style="display: flex; justify-content: flex-end">
+					<el-button v-permission="['salesman']" type="primary" @click="addNewContract">上传合同</el-button>
+					<el-button v-permission="['admin']" type="primary" @click="successed">审核成功</el-button>
+					<el-button v-permission="['admin']" type="danger" @click="failed">审核失败</el-button>
+					<el-button type="success" @click="recover">恢复</el-button>
+					<el-button type="danger" @click="deleted">删除</el-button>
+					<el-button type="primary" @click="Exports">批量导出</el-button>
+				</div>
+			</el-row>
+			<div class="pagesip">
+				<el-button type="primary" size="small"
+					style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpFirstPage">首页
+				</el-button>
+				<el-pagination ref="pagination" background layout="prev, pager, next" :total="list.length"
+					:page-size="10" prev-text="上一页" next-text="下一页" :hide-on-single-page="false"
+					@current-change="handleCurrentChange" />
+				<el-button type="primary" size="small"
+					style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpLastPage">尾页
+				</el-button>
+			</div>
+		</div>
+=======
       </div>
     </el-row>
 
@@ -115,6 +166,7 @@
         width="155"
       />
       <el-table-column label="供应商" align="center" prop="supplierName" />
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
 
       <el-table-column label="承兑人" align="center" prop="acceptorName" />
       <el-table-column label="出票人" align="center" prop="drawersName" />
@@ -233,6 +285,372 @@
 </template>
 
 <script>
+<<<<<<< HEAD
+	import {
+		dataConversionUtil
+	} from '../../utils/Excel.js'
+	import {
+		contractsPageApi
+	} from '@/api/contracts'
+	export default {
+		filters: {
+			statusFilter(status) {
+				const statusMap = {
+					published: 'success',
+					draft: 'gray',
+					deleted: 'danger'
+				}
+				return statusMap[status]
+			}
+		},
+		data() {
+			return {
+				role:'',
+				srcList: [],
+				list: [],
+				temporaryList: [],
+				listLoading: false,
+				status: '',
+				hpstatus: '',
+				Auditstatus: '',
+				search: '',
+				currentPage: 1,
+				pagesize: 10,
+				checked: '',
+				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])
+							}
+						}
+					]
+				},
+				value2: '',
+				filter: {
+					current: 1,
+					size: 10
+				},
+				pagination: {
+					current: 0,
+					total: 0,
+					pageSize: 10
+				}
+			}
+		},
+		mounted() {
+			this.role = this.$store.state.user.userInfo.type
+			console.log(this.$store.state.user.userInfo)
+			// this.checked = this.$store.state.user.checked
+			// this.$request({
+			//   url: '/api/Contract/search',
+			//   method: 'post',
+			//   data: {
+			//     pageIndex: 1,
+			//     pageSize: 100
+			//   }
+			// }).then((res) => {
+			//   console.log(res)
+			//   this.list = res.data.result
+			//   this.getPageData()
+			// })
+			this.loadData()
+		},
+		methods: {
+			loadData(filtter = {}) {
+				const params = {
+					...this.filter,
+					...filtter
+				}
+				contractsPageApi(params).then(res => {
+					const {
+						data
+					} = res
+					this.filter = params
+					this.temporaryList = data.result
+					this.srcList = data.result
+					this.pagination = {
+						...this.pagination,
+						current: params.current,
+						pageSize: params.size,
+						total: data.total
+					}
+				})
+			},
+			addNewContract() {
+				this.$router.push({
+					path: 'contracts/addcontract'
+				})
+			},
+			tapDetail(id) {
+				console.log(id)
+				this.$router.push({
+					path: '/detail',
+					query: {
+						id: id
+					}
+				})
+			},
+			successed() {
+				// let successed = this.list.filter(item => item.id === id)
+				const ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 3
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'error',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			Ssuccessed(id) {
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: [id],
+						operateType: 3
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'error',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			failed() {
+				// let failed = this.list.filter(item => item.id === id)
+				const ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 4
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'error',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			Sfailed(id) {
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: [id],
+						operateType: 4
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'danger',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			recover(id) {
+				const ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 2
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'danger',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			deleted() {
+				const ids = Array.from(this.multipleSelection, ({
+					id
+				}) => id)
+				this.$request({
+					url: '/api/Contract/manage',
+					method: 'post',
+					data: {
+						ids: ids,
+						operateType: 1
+					}
+				}).then((res) => {
+					if (res.code === 200) {
+						this.$message({
+							type: 'success',
+							message: res.msg
+						})
+						this.loadData()
+					} else {
+						this.$message({
+							type: 'danger',
+							message: res.msg
+						})
+						this.loadData()
+					}
+				})
+			},
+			handleCommand(command) {
+				this.status = command
+				if (this.status === '正常' || this.status === '删除') {
+					this.temporaryList = this.srcList.filter(item => item.contractStatusText === this.status)
+				} else {
+					this.temporaryList = this.srcList
+				}
+			},
+			handlehpCommand(command) {
+				this.hpstatus = command
+				if (this.hpstatus === '正常' || this.hpstatus === '删除') {
+					this.temporaryList = this.srcList.filter(item => item.draftStatusText === this.hpstatus)
+				} else {
+					this.temporaryList = this.srcList
+				}
+			},
+			handleCommandAuditstatus(command) {
+				this.Auditstatus = command
+				if (this.Auditstatus === '成功' || this.Auditstatus === '失败' || this.Auditstatus === '待审核') {
+					this.temporaryList = this.srcList.filter(item => item.statusText === this.Auditstatus)
+				} else {
+					this.temporaryList = this.srcList
+				}
+			},
+			handleSelectionChange(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
+			},
+			handleAll(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
+			},
+			handleCurrentChange(val) {
+				this.currentPage = val
+				this.getPageData()
+			},
+			jumpFirstPage() {
+				this.$refs.pagination.handleCurrentChange(1)
+				this.$emit('handleCurrentChange', 1)
+			},
+			jumpLastPage() {
+				const font = this.$refs.pagination
+				const cpage = Math.ceil(font.total / font.pageSize)
+				font.handleCurrentChange(cpage)
+			},
+			getPageData() {
+				const start = (this.currentPage - 1) * this.pagesize
+				const end = start + this.pagesize
+				this.srcList = this.list.slice(start, end)
+				this.temporaryList = this.srcList
+			},
+			Search() {
+				if (this.search === '') {
+					this.temporaryList = this.srcList
+				} else {
+					this.temporaryList = this.srcList.filter(item => item.name === this.search || item.contractNo === this
+						.search || item.acceptorName === this.search || item.drawersName === this.search)
+				}
+			},
+			Exports() {
+				if (this.multipleSelection == "") {
+					this.$message({
+						type: 'warning',
+						message: '请选择数据!'
+					})
+				} else {
+					var tableHeader = [
+						['序号', '合同名称', '合同编号', '承兑人', '出票人', '汇票状态', '合同状态', '审核状态', '时间']
+					]
+					var dataList = []
+					this.multipleSelection.forEach((item, index) => {
+						dataList.push([index + 1, item.name, item.contractNo, item.acceptorName, item.drawersName,
+							item
+							.draftStatusText, item.contractStatusText, item.statusText, item.createdAt
+						])
+					})
+					dataConversionUtil.dataToExcel('合同列表', tableHeader, dataList)
+					this.$message.success('导出成功!')
+				}
+			}
+=======
 import { dataConversionUtil } from "../../utils/Excel.js";
 import { contractsPageApi } from "@/api/contracts";
 export default {
@@ -623,6 +1041,7 @@ export default {
   },
 };
 
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
 
 </script>
 <style lang="scss">

+ 236 - 0
src/views/contracts/new_file.vue

xqd xqd xqd xqd xqd xqd xqd
@@ -56,6 +56,77 @@
             <i class="el-icon-plus"></i>
           </el-upload>
 
+<<<<<<< HEAD
+					</div>
+				</el-upload>
+				<el-dialog :visible.sync="dialogVisible">
+					<img width="100%" :src="form.pics" alt="">
+				</el-dialog>
+			</div>
+			<div class="titlesa">
+				<span>发票附件</span>
+				<span style="color: #d05c39">*支持上传pdf、jpg/jpeg、png格式</span>
+			</div>
+			<div>
+				<el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false"
+					:on-change="handleinvoicePics" :file-list="form.invoicePics">
+					<i slot="default" class="el-icon-plus" />
+					<div slot="file" slot-scope="{ file }">
+						<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+						<!-- <span class="el-upload-list__item-actions">
+							<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+								<i class="el-icon-zoom-in"></i>
+							</span>
+							<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
+								<i class="el-icon-download"></i>
+							</span>
+							<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+								<i class="el-icon-delete"></i>
+							</span>
+						</span> -->
+					</div>
+				</el-upload>
+				<el-dialog :visible.sync="dialogVisible">
+					<img width="100%" :src="form.invoicePics" alt="">
+				</el-dialog>
+			</div>
+			<div class="titlesa">
+				<span>贸易合同</span>
+				<span style="color: #d05c39">*支持上传pdf、jpg/jpeg、png格式</span>
+			</div>
+			<div>
+				<el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false"
+					:on-change="handletradePics" :file-list="form.tradePics">
+					<i slot="default" class="el-icon-plus" />
+					<div slot="file" slot-scope="{ file }">
+						<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+						<span class="el-upload-list__item-actions">
+							<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+								<i class="el-icon-zoom-in" />
+							</span>
+							<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
+								<i class="el-icon-download" />
+							</span>
+							<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+								<i class="el-icon-delete" />
+							</span>
+						</span>
+					</div>
+				</el-upload>
+				<el-dialog :visible.sync="dialogVisible">
+					<img width="100%" :src="form.tradePics" alt="">
+				</el-dialog>
+			</div>
+		</el-card>
+		<div>
+			
+		
+		<div v-for="(item, index) in form.contractDrafts" class="form" style="border: 1px solid #c0c0c0 ;margin: 10px;border-radius: 15px;padding: 10px;">
+			<el-form ref="form" :model="item" label-width="90px">
+				<el-form-item label="汇票名称">
+					<el-input v-model="item.name" class="ipwidth" placeholder="请填写汇票名称" style="width: 220px" />
+				</el-form-item>
+=======
           <el-dialog :visible.sync="dialogVisible">
             <img width="100%" :src="form.invoicePics" />
           </el-dialog>
@@ -93,6 +164,7 @@
             style="width: 220px"
           />
         </el-form-item>
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
 
         <el-form-item label="预计贴现日">
           <el-date-picker
@@ -102,6 +174,53 @@
             @change="
               changeE;
               xpectDiscountDate($event, index);
+<<<<<<< HEAD
+            " />
+				</el-form-item>
+				<el-form-item label="出票日期">
+					<el-date-picker v-model="item.acceptDate" type="date" placeholder="选择日期" class="ipwidth" />
+				</el-form-item>
+				<el-form-item label="承兑日期">
+					<el-date-picker v-model="item.issueDate" type="date" placeholder="选择日期"
+						@change="changeIssueDate($event, index)" />
+				</el-form-item>
+				<el-form-item label="到期日期">
+					<el-date-picker v-model="item.expireDate" type="date" placeholder="选择日期" />
+				</el-form-item>
+			</el-form>
+			<el-form ref="form" :model="form" label-width="100px">
+				<el-form-item label="汇票号码">
+					<el-input v-model="item.draftNo" class="ipwidth" placeholder="请填写汇票号码" style="width: 220px" />
+				</el-form-item>
+				<el-form-item label="金额">
+					<el-input v-model="item.money" class="ipwidth" placeholder="请填写金额" style="width: 220px"
+						@change="computed" />
+				</el-form-item>
+				<el-form-item label="服务费">
+					<el-input v-model="item.serviceMoney" class="ipwidth" placeholder="计算得出服务费" style="width: 220px" />
+				</el-form-item>
+				<el-form-item label="最高贷款额度">
+					<el-input v-model="item.loanLimit" class="ipwidth" placeholder="计算得出最高贷款额度" style="width: 220px" />
+				</el-form-item>
+				<el-form-item label="利息">
+					<el-input v-model="item.interest" class="ipwidth" placeholder="计算得出利息" style="width: 220px" />
+				</el-form-item>
+			</el-form>
+			<el-form ref="form" :model="form" label-width="90px">
+				<el-form-item label="出票人">
+					<el-select v-model="form.drawersName" placeholder="请选择出票人">
+						<el-option label="新增出票人" value="" style="color: darkorange" @click.native="addDrawer" />
+						<el-option
+              v-for="item in drawersName"
+              :label="item"
+              :value="item"
+            />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="承兑人">
+					<el-select v-model="form.acceptorName" placeholder="请选择承兑人">
+						<el-option
+=======
             "
           />
         </el-form-item>
@@ -191,10 +310,56 @@
         <el-form-item label="承兑人">
           <el-select v-model="form.acceptorName" placeholder="请选择承兑人">
             <!-- <el-option
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
               v-for="val in acceptorName"
               :label="val"
               :value="val"
               @click.native="getRate"
+<<<<<<< HEAD
+            />
+					</el-select>
+				</el-form-item>
+
+				<el-form-item label="服务费率">
+					<el-input v-model="item.serviceRate" class="ipwidth" placeholder="服务费率" style="width: 220px"
+						@input="inputServiceRate($event, index)" />
+				</el-form-item>
+				<el-form-item label="利率">
+					<el-input v-model="item.interestRate" class="ipwidth" placeholder="利率" style="width: 220px"
+						@input="inputInterestRate($event, index)" />
+				</el-form-item>
+			</el-form>
+			<div>
+				<el-row>
+					<el-col style="margin: 0 auto">
+						<div class="titlesa">
+							<span>附件</span>
+							<span style="color: #d05c39">*支持上传pdf、jpg/jpeg、png格式</span>
+						</div>
+						<div>
+							<!-- el-upload accept=".pdf, .jpg, .jpeg, .png" action="https://ht.9026.com/api/File"
+								list-type="picture-card" :show-file-list="true" :auto-upload="false"
+								:before-upload="beforeUpload" :on-change="handlepicUrls(file,fileList,index)"
+								:file-list="form.contractDrafts[index].picUrls"> -->
+							<el-upload action="https://ht.9026.com/api/File" list-type="picture-card"
+								:auto-upload="false" :on-change="handlepicUrls(file,fileList,index)"
+								:file-list="form.contractDrafts[index].picUrls">
+								<i class="el-icon-plus" />
+							</el-upload>
+							<el-dialog :visible.sync="dialogVisible">
+								<img width="100%" :src="form.contractDrafts[index].picUrls" alt="">
+							</el-dialog>
+						</div>
+					</el-col>
+				</el-row>
+				<el-button type="primary" @click="deletedraft(index)"
+					style="width: 100px;height: 50px;margin-top: 50px;">删除汇票</el-button>
+			</div>
+			
+		</div>
+		
+		</div>
+=======
             /> -->
           </el-select>
         </el-form-item>
@@ -247,6 +412,7 @@
             </div>
           </el-col>
         </el-row>
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
 
         <!-- 删除汇票 -->
         <el-button
@@ -276,6 +442,75 @@
 </template>
 
 <script>
+<<<<<<< HEAD
+	export default {
+		data() {
+			return {
+				dialogVisible: false,
+				disabled: false,
+				drawersList: [],
+				acceptorList: [],
+				contractList: [],
+				form: {
+					// 承兑人列表
+					acceptorName: [],
+					// 出票人列表
+					drawersName: [],
+					contractNo: '',
+					supplierId: 2,
+					name: '',
+					invoicePics: [],
+					pics: [],
+					tradePics: [],
+					contractDrafts: [{
+						name: '',
+						draftNo: '',
+						acceptorId: '',
+						drawersId: '',
+						money: '',
+						acceptDate: '',
+						loanLimit: '',
+						serviceRate: '',
+						serviceMoney: '',
+						interestRate: '',
+						interest: '',
+						picUrls: [],
+						expectDiscountDate: '',
+						issueDate: '',
+						expireDate: ''
+					}]
+				},
+				pickerOptions: {
+					disabledDate(time) {
+						return time.getTime() > Date.now()
+					},
+					shortcuts: [{
+							text: '今天',
+							onClick(picker) {
+								picker.$emit('pick', new Date())
+							}
+						},
+						{
+							text: '昨天',
+							onClick(picker) {
+								const date = new Date()
+								date.setTime(date.getTime() - 3600 * 1000 * 24)
+								picker.$emit('pick', date)
+							}
+						},
+						{
+							text: '一周前',
+							onClick(picker) {
+								const date = new Date()
+								date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+								picker.$emit('pick', date)
+							}
+						}
+					]
+				}
+			}
+		},
+=======
 export default {
   data() {
     return {
@@ -453,6 +688,7 @@ export default {
       this.filesArray.push(file);
       this.form.contractDrafts[0].picUrls = this.filesArray;
     },
+>>>>>>> a1c2ac8b58c433385ebdfcc2370495ca1407e386
 
     getContractNo() {
       const temporaryList = this.contractList.filter(

+ 3 - 7
src/views/delivery/edit.vue

xqd
@@ -11,17 +11,13 @@
 			<el-descriptions-item label="电话">{{list.contactsMobile}}</el-descriptions-item>
 			<el-descriptions-item label="审核状态">{{list.statusText}}</el-descriptions-item>
 			<el-descriptions-item label="认证照片">
-				<el-image style="width: 100px; height: 100px" :src="list.proxyFileList[0]">
-				</el-image>
-				<el-image style="width: 100px; height: 100px" :src="list.proxyFileList[1]">
+				<el-image style="width: 100px; height: 100px" v-for="item in list.proxyFileList" :src="item">
 				</el-image>
 			</el-descriptions-item>
 			<el-descriptions-item label="授权委托书">
-				<el-image style="width: 100px; height: 100px" :src="list.identifyPicList[0]">
+				<el-image style="width: 100px; height: 100px" v-for="item in list.identifyPicList" :src="item">
 				</el-image>
-			<el-image style="width: 100px; height: 100px" :src="list.identifyPicList[1]">
-			</el-image>
-			</el-descriptions-item>
+				</el-descriptions-item>
 		</el-descriptions>
 		<div style="display: flex;justify-content: center;">
 			<el-button type="primary" style="width: 100px; " @click="update">修改信息</el-button>

+ 3 - 3
src/views/mine/index.vue

xqd xqd
@@ -70,13 +70,13 @@
 							</span>
 						</el-form-item>
 						<el-form-item label="姓名" :rules="[{  message: '姓名不能为空不能为空'}]">
-							<el-input v-model="form.name" class="ipwidth" />
+							<el-input v-model="form.realName" class="ipwidth" />
 						</el-form-item>
 						<el-form-item label="账号" :rules="[{ message: '账号不能为空'}]">
 							<el-input v-model="form.account" class="ipwidth" />
 						</el-form-item>
 						<el-form-item label="联系电话" :rules="[{  message: '联系电话不能为空'}]">
-							<el-input v-model="form.contactsMobile" class="ipwidth" />
+							<el-input v-model="form.mobile" class="ipwidth" />
 						</el-form-item>
 					</el-form>
 					<el-collapse v-model="activeNames" @change="handleChange" style="width: 90%;float: right;">
@@ -128,7 +128,7 @@
 					method: 'get'
 				}).then((res) => {
 					console.log(res)
-					// this.form = res.data
+					this.form = res.data
 				})
 			}
 		},

+ 27 - 6
src/views/shipments/index.vue

xqd xqd xqd xqd xqd
@@ -48,7 +48,7 @@
 
 		</el-row>
 		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit
-			@select="handleSelectionChange" highlight-current-row>
+			@select="handleSelectionChange" highlight-current-row @select-all="handleAll">
 			<el-table-column align="center" label="" width="55" type="selection">
 
 			</el-table-column>
@@ -98,7 +98,9 @@
 	import {
 		getList
 	} from '@/api/table'
-
+	import {
+		dataConversionUtil
+	} from '../../utils/Excel.js'
 	export default {
 		filters: {
 			statusFilter(status) {
@@ -153,9 +155,6 @@
 				value2: ''
 			}
 		},
-		created() {
-			// this.fetchData()
-		},
 		mounted() {
 			this.$request({
 				url: '/api/Report/acceptorClassification?frequency=1&startDate=2020-10-12&endDate=2023-12-23',
@@ -170,6 +169,10 @@
 			  this.multipleSelection = data;
 			  console.log(this.multipleSelection);
 			},
+			handleAll(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
+			},
 			handleCommand(command) {
 				this.status = command
 
@@ -194,7 +197,25 @@
 				})
 			},
 			Export() {
-				window.open('https://ht.9026.com/api/Report/export/acceptorClassification?frequency=1&startDate=&endDate=')
+				// window.open('https://ht.9026.com/api/Report/export/acceptorClassification?frequency=1&startDate=&endDate=')
+				if(this.multipleSelection==""){
+					this.$message({
+						type:'warning',
+						message:'请选择数据!'
+					})
+				}else{
+					var tableHeader = [
+						['序号', '承兑人姓名', '统计周期(按照承兑日)', '汇票笔数', '汇票金额', '服务费','利息'],
+					]
+					var dataList = []
+					this.multipleSelection.forEach((item, index) => {
+						dataList.push([index + 1, item.acceptorName, item.period, item.count, item.money, item
+							.serviceMoney,item.interest
+						]);
+					})
+					dataConversionUtil.dataToExcel('承兑人分类报表', tableHeader, dataList)
+					this.$message.success('导出成功!');
+			}
 			},
 			handleCurrentChange(val) {
 				this.currentPage = val;

+ 36 - 9
src/views/shipments/shipments1.vue

xqd xqd xqd xqd xqd
@@ -53,11 +53,9 @@
 
 		</el-row>
 		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit
-			highlight-current-row id="download">
-			<el-table-column align="center" label="" width="55">
-				<template slot-scope="scope">
-					<el-checkbox v-model="checked"></el-checkbox>
-				</template>
+			highlight-current-row id="download" @select="handleSelectionChange" @select-all="handleAll">
+			<el-table-column align="center" label="" width="55" type="selection">
+				
 			</el-table-column>
 			<el-table-column label="出票人" align="center" prop="drawerName">
 
@@ -91,6 +89,9 @@
 </template>
 
 <script>
+		import {
+	dataConversionUtil
+	} from '../../utils/Excel.js'
 	export default {
 		filters: {
 			statusFilter(status) {
@@ -112,7 +113,7 @@
 				srcList: [],
 				currentPage: 1,
 				pagesize: 11,
-				checked: false,
+				
 				pickerOptions: {
 					shortcuts: [{
 						text: '最近一周',
@@ -164,6 +165,14 @@
 				this.hpstatus = command
 
 			},
+			handleSelectionChange(data) {
+			  this.multipleSelection = data;
+			  console.log(this.multipleSelection);
+			},
+			handleAll(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
+			},
 			index() {
 				this.$router.push({
 					path: '/shipments/index'
@@ -180,9 +189,27 @@
 				})
 			},
 			Export() {
-				window.open(
-					'http://123.207.180.167:8700/api/Report/export/drawerClassification?frequency=1&startDate=&endDate='
-					)
+				// window.open(
+				// 	'http://123.207.180.167:8700/api/Report/export/drawerClassification?frequency=1&startDate=&endDate='
+				// 	)
+				if(this.multipleSelection==""){
+						this.$message({
+							type:'warning',
+							message:'请选择数据!'
+						})
+					}else{
+						var tableHeader = [
+							['序号', '出票人', '统计周期(按照出票日)', '汇票笔数', '汇票金额', '服务费','利息'],
+						]
+						var dataList = []
+						this.multipleSelection.forEach((item, index) => {
+							dataList.push([index + 1, item.drawerName, item.period, item.count, item.money, item
+								.serviceMoney,item.interest
+							]);
+						})
+						dataConversionUtil.dataToExcel('出票人分类报表', tableHeader, dataList)
+						this.$message.success('导出成功!');
+				}
 			},
 			jumpFirstPage() {
 				this.$refs.pagination.handleCurrentChange(1);

+ 235 - 221
src/views/shipments/shipments2.vue

xqd
@@ -1,246 +1,260 @@
 <template>
-  <div class="app-container">
-   <el-row  type="flex" justify="space-between" style="margin-bottom:20px">
-       <div class="grid-content bg-purple">
-         <el-dropdown @command="handleCommand">
-           <div class="pulldown">
-             <span class="el-dropdown-link" v-if="!status">
-              月
-             </span>
-             <span class="el-dropdown-link" v-if="status">
-               {{status}}
-             </span>
-             <i class="el-icon-arrow-down el-icon--right"></i>
-           </div>
-           <el-dropdown-menu slot="dropdown">
-             <el-dropdown-item command="1">1月</el-dropdown-item>
-           </el-dropdown-menu>
-         </el-dropdown>
-       </div>
-
-
-       <div class="grid-content bg-purple">
-         <div class="block">
-           <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
-             start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
-           </el-date-picker>
-         </div>
-
-       </div>
-  <!-- <el-col :xs="24" :sm="10" :md="8" :lg="5" :xl="5">
+	<div class="app-container">
+		<el-row type="flex" justify="space-between" style="margin-bottom:20px">
+
+			<div class="grid-content bg-purple" >
+			  <el-input
+			      placeholder="请输入查询内容"
+			      v-model="search" style="width: 100%;">
+			      <i slot="prefix" class="el-input__icon el-icon-search"></i>
+			    </el-input>
+			</div>
+
+			<div class="grid-content bg-purple">
+				<div class="block">
+					<el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+						start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+					</el-date-picker>
+				</div>
+
+			</div>
+			<!-- <el-col :xs="24" :sm="10" :md="8" :lg="5" :xl="5">
      <div class="grid-content bg-purple">
-       <div class="grid-content bg-purple" style="margin-left: 30px;">
-         <el-input
-             placeholder="请输入查询内容"
-             v-model="input4" style="width: 80%;">
-             <i slot="prefix" class="el-input__icon el-icon-search"></i>
-           </el-input>
-       </div>
+       
      </div>
      </el-col> -->
-    <!-- <el-col :span="1">
+			<!-- <el-col :span="1">
        <div class="grid-content bg-purple"></div>
      </el-col> -->
-       <div class="grid-content bg-purple" style="display: flex;justify-content: flex-end;">
-        <el-button type="primary" @click="index">承兑人分类报表</el-button>
-        <el-button type="primary" @click="shipments1">出票人分类报表</el-button>
-        <el-button type="primary" disabled>合同统计列表</el-button>
-        <el-button type="primary" @click="shipments3">供应商统计列表</el-button>
-         <el-button type="primary" @click="Export">导出</el-button>
-
-       </div>
-
-   </el-row>
-    <el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit highlight-current-row>
-      <el-table-column align="center" label="" width="55">
-        <template slot-scope="scope">
-         <el-checkbox v-model="checked"></el-checkbox>
-        </template>
-      </el-table-column>
-      <el-table-column label="合同名称"  align="center" prop="contractName">
+			<div class="grid-content bg-purple" style="display: flex;justify-content: flex-end;">
+				<el-button type="primary" @click="index">承兑人分类报表</el-button>
+				<el-button type="primary" @click="shipments1">出票人分类报表</el-button>
+				<el-button type="primary" disabled>合同统计列表</el-button>
+				<el-button type="primary" @click="shipments3">供应商统计列表</el-button>
+				<el-button type="primary" @click="Export">导出</el-button>
+
+			</div>
+
+		</el-row>
+		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit
+			highlight-current-row @select="handleSelectionChange" @select-all="handleAll">
+			<el-table-column align="center" label="" width="55" type="selection">
+				
+			</el-table-column>
+			<el-table-column label="合同名称" align="center" prop="contractName">
 
-      </el-table-column>
-      <el-table-column label="汇票承兑日"  align="center" prop="acceptDate">
+			</el-table-column>
+			<el-table-column label="汇票承兑日" align="center" prop="acceptDate">
 
-      </el-table-column>
-      <el-table-column label="汇票贴现日"  align="center" prop="expectDiscountDate">
+			</el-table-column>
+			<el-table-column label="汇票贴现日" align="center" prop="expectDiscountDate">
 
-      </el-table-column>
-     <el-table-column label="汇票笔数"  align="center" prop="count">
+			</el-table-column>
+			<el-table-column label="汇票笔数" align="center" prop="count">
 
-     </el-table-column>
-     <el-table-column label="汇票金额" align="center" prop="money">
+			</el-table-column>
+			<el-table-column label="汇票金额" align="center" prop="money">
 
-     </el-table-column>
-     <el-table-column label="服务费"  align="center" prop="serviceMoney">
+			</el-table-column>
+			<el-table-column label="服务费" align="center" prop="serviceMoney">
 
-     </el-table-column>
-     <el-table-column label="利息"  align="center">
-       <template slot-scope="scope">
-         xxxx
-       </template>
-     </el-table-column>
+			</el-table-column>
+			<el-table-column label="利息" align="center" prop="interest">
+				
+			</el-table-column>
 
-     <!-- <el-table-column align="center" prop="created_at" label="操作" width="250">
+			<!-- <el-table-column align="center" prop="created_at" label="操作" width="250">
         <template slot-scope="scope">
           <el-tag type="success" style="cursor: pointer;margin-right: 15px;">恢复</el-tag>
          <el-tag type="warning" style="margin-right: 15px;cursor: pointer;">下载</el-tag>
           <el-tag type="danger" style="cursor: pointer;">删除</el-tag>
         </template>
       </el-table-column> -->
-    </el-table>
-   <div class="pagesip">
-   	<el-button type="primary" size="small"
-   		style="background-color:#D8AB5A ;border-color:#D8AB5A ; margin: 0 20px;" @click="jumpFirstPage">首页
-   	</el-button>
-   	<el-pagination background @current-change="handleCurrentChange" layout="prev, pager, next"
-   		:total="list.length" :page-size="1" prev-text="上一页" next-text="下一页" :hide-on-single-page="false"
-   		ref="pagination">
-   	</el-pagination>
-   	<el-button type="primary" size="small"
-   		style="background-color:#D8AB5A ;border-color:#D8AB5A ;margin: 0 20px;" @click="jumpLastPage">尾页
-   	</el-button>
-   </div>
-  </div>
+		</el-table>
+		<div class="pagesip">
+			<el-button type="primary" size="small"
+				style="background-color:#D8AB5A ;border-color:#D8AB5A ; margin: 0 20px;" @click="jumpFirstPage">首页
+			</el-button>
+			<el-pagination background @current-change="handleCurrentChange" layout="prev, pager, next"
+				:total="list.length" :page-size="1" prev-text="上一页" next-text="下一页" :hide-on-single-page="false"
+				ref="pagination">
+			</el-pagination>
+			<el-button type="primary" size="small"
+				style="background-color:#D8AB5A ;border-color:#D8AB5A ;margin: 0 20px;" @click="jumpLastPage">尾页
+			</el-button>
+		</div>
+	</div>
 </template>
 
 <script>
-  import {
-    getList
-  } from '@/api/table'
-
-  export default {
-    filters: {
-      statusFilter(status) {
-        const statusMap = {
-          published: 'success',
-          draft: 'gray',
-          deleted: 'danger'
-        }
-        return statusMap[status]
-      }
-    },
-    data() {
-      return {
-		srcList:[],
-		currentPage: 1,
-		pagesize: 11,
-        list: [],
-        listLoading: false,
-        status: '',
-        hpstatus:'',
-        input4:'',
-        checked:false,
-        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]);
-            }
-          }]
-        },
-        value1: '',
-        value2: ''
-      }
-    },
-    created() {
-      // this.fetchData()
-    },
-    mounted(){
-      this.$request({
-        url:'/api/Report/contractReport?contractName=&startDate=&endDate=',
-        method:'get',
-      }).then((res)=>{
-        this.list=res.data
-		this.getPageData()
-      })
-    },
-    methods: {
-      handleCommand(command) {
-        this.status = command
-
-      },
-      handlehpCommand(command) {
-        this.hpstatus = command
-
-      },
-      index(){
-        this.$router.push({path:'/shipments/index'})
-      },
-      shipments1(){
-        this.$router.push({path:"/shipments1"})
-      },
-      shipments3(){
-        this.$router.push({path:"/shipments3"})
-      },
-      Export(){
-
-		window.open('http://123.207.180.167:8700/api/Report/export/contractReport?contractName=&startDate=&endDate=')
-      },
-	  jumpFirstPage(){
-		this.$refs.pagination.handleCurrentChange(1);
-		this.$emit('handleCurrentChange', 1);
-	  },
-	  jumpLastPage(){
-		let font = this.$refs.pagination
-		let cpage = Math.ceil(font.total / font.pageSize);
-		font.handleCurrentChange(cpage);
-	  },
-	  handleCurrentChange(val) {
-		this.currentPage = val;
-		this.getPageData();
-	  },
-	  getPageData() {
-		let start = (this.currentPage - 1) * this.pagesize;
-		let end = start + this.pagesize;
-		this.srcList = this.list.slice(start, end);
-	  },
-    }
-  }
+	import {
+		getList
+	} from '@/api/table'
+		import {
+	dataConversionUtil
+	} from '../../utils/Excel.js'
+	export default {
+		filters: {
+			statusFilter(status) {
+				const statusMap = {
+					published: 'success',
+					draft: 'gray',
+					deleted: 'danger'
+				}
+				return statusMap[status]
+			}
+		},
+		data() {
+			return {
+				srcList: [],
+				currentPage: 1,
+				pagesize: 11,
+				list: [],
+				status: '',
+				hpstatus: '',
+				search: '',
+				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]);
+						}
+					}]
+				},
+				value1: '',
+				value2: ''
+			}
+		},
+
+		mounted() {
+			this.$request({
+				url: '/api/Report/contractReport?contractName=&startDate=&endDate=',
+				method: 'get',
+			}).then((res) => {
+				this.list = res.data
+				this.getPageData()
+			})
+		},
+		methods: {
+			handleCommand(command) {
+				this.status = command
+
+			},
+			handlehpCommand(command) {
+				this.hpstatus = command
+
+			},
+			handleSelectionChange(data) {
+			  this.multipleSelection = data;
+			  console.log(this.multipleSelection);
+			},
+			handleAll(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
+			},
+			index() {
+				this.$router.push({
+					path: '/shipments/index'
+				})
+			},
+			shipments1() {
+				this.$router.push({
+					path: "/shipments1"
+				})
+			},
+			shipments3() {
+				this.$router.push({
+					path: "/shipments3"
+				})
+			},
+			Export() {
+				// window.open('http://123.207.180.167:8700/api/Report/export/contractReport?contractName=&startDate=&endDate=')
+				if(this.multipleSelection==""){
+						this.$message({
+							type:'warning',
+							message:'请选择数据!'
+						})
+					}else{
+						var tableHeader = [
+							['序号', '合同名称', '汇票承兑日', '汇票贴现日','汇票笔数', '汇票金额', '服务费','利息'],
+						]
+						var dataList = []
+						this.multipleSelection.forEach((item, index) => {
+							dataList.push([index + 1, item.contractName, item.acceptDate,item.expectDiscountDate, item.count, item.money, item
+								.serviceMoney,item.interest
+							]);
+						})
+						dataConversionUtil.dataToExcel('合同统计列表', tableHeader, dataList)
+						this.$message.success('导出成功!');
+				}
+			},
+			jumpFirstPage() {
+				this.$refs.pagination.handleCurrentChange(1);
+				this.$emit('handleCurrentChange', 1);
+			},
+			jumpLastPage() {
+				let font = this.$refs.pagination
+				let cpage = Math.ceil(font.total / font.pageSize);
+				font.handleCurrentChange(cpage);
+			},
+			handleCurrentChange(val) {
+				this.currentPage = val;
+				this.getPageData();
+			},
+			getPageData() {
+				let start = (this.currentPage - 1) * this.pagesize;
+				let end = start + this.pagesize;
+				this.srcList = this.list.slice(start, end);
+			},
+		}
+	}
 </script>
 <style lang="scss">
-  .pulldown {
-    width: 185px;
-    height: 40px;
-    border: 1px solid #E8E8E8;
-    border-radius: 10px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    justify-content: space-between;
-    padding: 0 20px;
-    color: #999999;
-  }
-  .pagesip{
-    width: 100%;
-    margin: 20px auto;
-    display: flex;
-    // align-items: center;
-    justify-content: flex-end;
-  }
-  .el-pagination.is-background .el-pager li:not(.disabled).active{
-    background-color:#D8AB5A;
-  }
-  .el-col{
-    margin-bottom: 20px;
-  }
+	.pulldown {
+		width: 185px;
+		height: 40px;
+		border: 1px solid #E8E8E8;
+		border-radius: 10px;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		justify-content: space-between;
+		padding: 0 20px;
+		color: #999999;
+	}
+
+	.pagesip {
+		width: 100%;
+		margin: 20px auto;
+		display: flex;
+		// align-items: center;
+		justify-content: flex-end;
+	}
+
+	.el-pagination.is-background .el-pager li:not(.disabled).active {
+		background-color: #D8AB5A;
+	}
+
+	.el-col {
+		margin-bottom: 20px;
+	}
 </style>

+ 40 - 29
src/views/shipments/shipments3.vue

xqd xqd xqd xqd xqd
@@ -1,24 +1,17 @@
 <template>
 	<div class="app-container">
 		<el-row  type="flex" justify="space-between" style="margin-bottom:20px">
+				
 				<div class="grid-content bg-purple">
-					<el-dropdown @command="handleCommand">
-						<div class="pulldown">
-							<span class="el-dropdown-link" v-if="!status">
-								月
-							</span>
-							<span class="el-dropdown-link" v-if="status">
-								{{status}}
-							</span>
-							<i class="el-icon-arrow-down el-icon--right"></i>
-						</div>
-						<el-dropdown-menu slot="dropdown">
-							<el-dropdown-item command="1">1月</el-dropdown-item>
-						</el-dropdown-menu>
-					</el-dropdown>
+				  <div class="grid-content bg-purple" >
+				    <el-input
+				        placeholder="请输入查询内容"
+				        v-model="input4" style="width: 100%;">
+				        <i slot="prefix" class="el-input__icon el-icon-search"></i>
+				      </el-input>
+				  </div>
 				</div>
 
-
 				<div class="grid-content bg-purple">
 					<div class="block">
 						<el-date-picker v-model="value2" type="daterange" align="right" unlink-panels
@@ -58,11 +51,8 @@
      </el-col> -->
 
 		</el-row>
-		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit highlight-current-row>
-			<el-table-column align="center" label="" width="55">
-				<template slot-scope="scope">
-					<el-checkbox v-model="checked"></el-checkbox>
-				</template>
+		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit highlight-current-row @select="handleSelectionChange" @select-all="handleAll">
+			<el-table-column align="center" label="" width="55" type="selection">
 			</el-table-column>
 			<el-table-column label="供应商名称" align="center" prop="supplierName">
 
@@ -105,7 +95,9 @@
 	import {
 		getList
 	} from '@/api/table'
-
+	import {
+	dataConversionUtil
+	} from '../../utils/Excel.js'
 	export default {
 		filters: {
 			statusFilter(status) {
@@ -172,13 +164,16 @@
 		methods: {
 			handleCommand(command) {
 				this.status = command
-
+				console.log(this.status)
 			},
-			handlehpCommand(command) {
-				this.hpstatus = command
-
+			handleSelectionChange(data) {
+			  this.multipleSelection = data;
+			  console.log(this.multipleSelection);
+			},
+			handleAll(data) {
+				this.multipleSelection = data
+				console.log(this.multipleSelection)
 			},
-			
 			index() {
 				this.$router.push({
 					path: '/shipments/index'
@@ -195,9 +190,25 @@
 				})
 			},
 			Export() {
-				
-				window.open(
-					'http://123.207.180.167:8700/api/Report/export/supplierReport?supplierName=&startDate=&endDate=')
+				// window.open('http://123.207.180.167:8700/api/Report/export/supplierReport?supplierName=&startDate=&endDate=')
+				if(this.multipleSelection==""){
+						this.$message({
+							type:'warning',
+							message:'请选择数据!'
+						})
+					}else{
+						var tableHeader = [
+							['序号', '供应商名称', '汇票承兑日', '汇票贴现日','汇票笔数', '汇票金额', '服务费','利息'],
+						]
+						var dataList = []
+						this.multipleSelection.forEach((item, index) => {
+							dataList.push([index + 1, item.supplierName, item.acceptDate,item.expectDiscountDate, item.count, item.money, item
+								.serviceMoney,item.interest
+							]);
+						})
+						dataConversionUtil.dataToExcel('供应商统计列表', tableHeader, dataList)
+						this.$message.success('导出成功!');
+						}
 			},
 			jumpFirstPage() {
 				this.$refs.pagination.handleCurrentChange(1);