From 5857dfa10b70a061b8e4711dd8f18b585ac6fc23 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 25 二月 2025 17:43:37 +0800
Subject: [PATCH] ll
---
admin/src/views/business/reportRecord.vue | 177 ++++++++++++++++++++++++++++------------------------------
1 files changed, 86 insertions(+), 91 deletions(-)
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 98ee6a0..d106678 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -1,97 +1,51 @@
<template>
<div class="main_app">
- <QueryForm
- v-model="filters"
- :query-form-config="queryFormConfig"
- @handleQuery="getList(1)"
- @clear="clear"
- />
- <el-table
- v-loading="loading"
- :data="dataList"
- stripe
- row-key="id"
- default-expand-all
- >
- <el-table-column
- prop="carNos"
- label="鍏ュ洯杞﹁締"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="companyName"
- label="鍏徃鍚嶇О"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="name"
- label="鑱旂郴浜轰俊鎭�"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="phone"
- label="鎵嬫満鍙�"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="receptMemberName"
- label="琚浜�"
- min-width="100px"
- ></el-table-column>
- <el-table-column label="鎷滆鏃堕棿" min-width="170px">
+ <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
+ <div class="query_btns" style="margin: 16px 0 0"
+ v-permissions="['business:visits:create', 'business:visits:exportExcel']">
+ <el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
+ v-permissions="['business:visits:create']">鏂板缓</el-button>
+ <el-button type="primary" :loading="exLoading" @click="exportExcel"
+ v-permissions="['business:visits:exportExcel']">瀵煎嚭</el-button>
+ </div>
+ <el-table v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all>
+ <el-table-column type="selection" width="55" align="center"></el-table-column>
+ <el-table-column prop="carNos" label="鍏ュ洯杞﹁締" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鍏徃鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鑱旂郴浜轰俊鎭�" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
+ <el-table-column label="鎷滆鏃堕棿" min-width="160px">
<template slot-scope="{ row }">
- <span>璧凤細{{ row.starttime }}</span
- ><br />
+ <span>璧凤細{{ row.starttime }}</span><br />
<span>姝細{{ row.endtime }}</span>
</template>
</el-table-column>
- <el-table-column
- prop="reason"
- label="鎷滆浜嬬敱"
- min-width="100px"
- ></el-table-column>
- <el-table-column
- prop="status"
- fixed="right"
- label="鐘舵��"
- min-width="100px"
- >
+ <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100"></el-table-column>
+ <el-table-column prop="status" fixed="right" label="鐘舵��" align="center" min-width="100">
<template slot-scope="{ row }">
- <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0"
- >寰呮彁浜ゅ鎵�</span
- >
- <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)"
- >瀹℃壒涓�</span
- >
- <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)"
- >瀹℃牳閫氳繃</span
- >
- <span style="color: gray" v-if="row.status === 3">瀹℃牳涓嶉�氳繃</span>
+ <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
+ <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)">澶勭悊涓�</span>
+ <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)">宸插悓鎰�</span>
+ <span style="color: gray" v-if="row.status === 3">宸叉嫆缁�</span>
<span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
- <span v-if="row.status === 5" style="color: green">棰勭害鎴愬姛</span>
- <span v-if="row.status === 6" style="color: gray">棰勭害澶辫触</span>
+ <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
+ <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
<span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
<span v-if="row.status === 8" style="color: red">宸茬绂�</span>
<span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" width="230" fixed="right">
+ <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
<template slot-scope="{ row }">
- <el-button
- type="text"
- @click="handleDetail(row)"
- v-permissions="['business:company:update']"
- >鏌ョ湅璇︽儏</el-button
- >
+ <el-button type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">鏌ョ湅璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="getList"
- :pagination="pagination"
- />
+ <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
<ReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
+ <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit"
+ ref="operaVisitsWindowRef" />
</div>
</template>
@@ -100,18 +54,25 @@
import QueryForm from '@/components/common/QueryForm'
// import ReportDetail from './page-components/ReportDetail.vue'
import ReportDetail from '@/views/task/visReportDetail.vue'
-import { fetchList } from '@/api/business/visits'
+import OperaVisitsReportWindow from '@/components/business/operaVisitsReportWindow.vue'
+import { fetchList, exportExcel } from '@/api/business/visits'
export default {
components: {
ReportDetail,
QueryForm,
- Pagination
+ Pagination,
+ OperaVisitsReportWindow
},
- data () {
+ data() {
return {
+ isShowEdit: false,
+ exLoading: false,
+
isShowReport: false,
activeTab: '0',
- filters: {},
+ filters: {
+ type: 2
+ },
dataList: [],
queryFormConfig: {
formItems: [
@@ -135,16 +96,43 @@
},
pagination: {
capacity: 10,
- page: 1
+ page: 1,
+ total: 0
},
total: 0
}
},
- created () {
+ created() {
this.getList()
},
methods: {
- handleDetail (row) {
+ exportExcel() {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ this.exLoading = true
+ exportExcel({
+ page: this.pagination.page,
+ capacity: 1000000,
+ model: this.filters
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.exLoading = false
+ })
+ })
+ },
+ handleEdit() {
+ this.isShowEdit = true
+ this.$nextTick(() => {
+ this.$refs.operaVisitsWindowRef.isShowModal = true
+ })
+ },
+ handleDetail(row) {
this.isShowReport = true
this.$nextTick(() => {
this.$nextTick(() => {
@@ -155,26 +143,33 @@
})
})
},
- getList (page) {
+ getList(page) {
const { pagination, filters } = this
pagination.page = page || pagination.page
+ this.loading = true
fetchList({
- model: { ...filters, type: 2 },
+ model: { ...filters },
...pagination
}).then(res => {
+ this.loading = false
this.dataList = res.records || []
+ this.pagination.total = res.total
+ }, () => {
+ this.loading = false
})
},
- clear () {
- this.filters = {}
- this.getList(0)
+ clear() {
+ this.filters = {
+ type: 2
+ }
+ this.getList(1)
},
- handleSizeChange (capacity) {
+ handleSizeChange(capacity) {
this.pagination.capacity = capacity
+ this.getList()
}
}
}
</script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>
--
Gitblit v1.9.3