From 88a34566f7c3f77d90daa3fd57fb0abca3e1b5e6 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 27 二月 2025 09:12:06 +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