From 7e460156de73171f9660ce48f80703e79f8b478d Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期六, 14 六月 2025 11:48:26 +0800 Subject: [PATCH] 初始化提交 --- src/components/TableSearch/index.vue | 123 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 12 deletions(-) diff --git a/src/components/TableSearch/index.vue b/src/components/TableSearch/index.vue index 99eb459..221aaea 100644 --- a/src/components/TableSearch/index.vue +++ b/src/components/TableSearch/index.vue @@ -1,40 +1,139 @@ <template> <div class="table-search"> <el-form - v-model="queryParams" ref="queryForm" + v-model="queryParams" size="small" :inline="true" label-width="68px" > <el-form-item label="鏃ユ湡锛�"> <el-date-picker + v-model="queryParams.date" + value-format="yyyy-MM-dd HH:mm" + format="yyyy-MM-dd HH:mm" type="datetimerange" :picker-options="pickerOptions" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" align="right" - > - </el-date-picker> + /> </el-form-item> - <el-form-item label="瑙勬牸锛�"> - <el-select placeholder="瑙勬牸鍨嬪彿" clearable style="width: 240px"> + <el-form-item v-show="show" :label="searchParams.hasOwnProperty('productModel')? '瑙勬牸鍨嬪彿':'瀹㈡埛鍚嶇О'"> + <el-select v-model="queryParams.type" :placeholder="searchParams.hasOwnProperty('productModel')? '璇烽�夋嫨瑙勬牸鍨嬪彿':'璇烽�夋嫨瀹㈡埛鍚嶇О'" clearable style="width: 240px"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + /> </el-select> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" - >鎼滅储</el-button - > - <el-button icon="el-icon-refresh" size="mini">瀵煎嚭</el-button> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="search" + >鎼滅储</el-button> + <el-button :style="{color:'#409EFF',border:' 1px solid #409EFF'}" icon="iconfont icon-wenjiandaochu" size="mini" @click="exportExcel">瀵煎嚭</el-button> </el-form-item> </el-form> </div> </template> <script> -export default { +export default { + props: [ + 'searchData', + 'searchParams', + 'options', + 'getList', + 'file', + 'show', + 'excelName' + ], + data() { + return { + queryParams: { + date: [], + type: '' + }, + 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]) + } + }] + } + } + }, + methods: { + search() { + // "鏌ヨ鏉′欢锛�"鏃堕棿闇�瑕佹牸寮忓寲鎴恲yyy-mm-dd hh-mm-ss + // console.log(this.queryParams) + let { date, type } = this.queryParams + date = date == null ? [] : date + let params = { ...this.searchParams, startTime: date[0], endTime: date[1] } + params = this.searchParams.hasOwnProperty('productModel') ? { ...params, productModel: type } : { ...params, customerName: type } + const obj = {} + const arr = Object.keys(params).filter(key => params[key]) + arr.forEach(item => obj[item] = params[item]) + console.log(obj)// 鏌ョ湅鎵�鏈夎姹傚弬鏁� + this.getList(obj).then(res => { + this.searchData({ ...res.data, startTime: date[0], endTime: date[1] }) + }) + }, + exportExcel() { + let { date, type } = this.queryParams + date = date == null ? [] : date + let params = { startTime: date[0], endTime: date[1] } + params = this.searchParams.hasOwnProperty('productModel') ? { ...params, productModel: type } : { ...params, customerName: type } + const obj = {} + const arr = Object.keys(params).filter(key => params[key]) + arr.forEach(item => obj[item] = params[item]) + console.log(obj)// 鏌ョ湅鎵�鏈夎姹傚弬鏁� + this.file(obj).then(response => { + const blob = new Blob([response.data], { type: 'application/vnd.ms-excel;charset=utf-8' }) + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = `${this.excelName}.xlsx` // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) + downloadElement.click() // 鐐瑰嚮涓嬭浇 + this.loadingBtn = false + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) // 閲婃斁鎺塨lob瀵硅薄 + }).catch(message => { + this.$message.error({ + message: '鎶辨瓑涓嬭浇閿欒锛侀敊璇師鍥狅細' + message, + type: 'error' + }) + }) + } + } } </script> @@ -43,6 +142,6 @@ .el-form-item{ margin-bottom: 0; margin: 12px; - } + } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3