From 8df0c5cc3a475778ef92020dd99aaec77cc2cc24 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期日, 28 四月 2024 14:18:11 +0800 Subject: [PATCH] 应发工资报表的前端开发 --- src/views/reportManage/productionReport/index.vue | 130 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 105 insertions(+), 25 deletions(-) diff --git a/src/views/reportManage/productionReport/index.vue b/src/views/reportManage/productionReport/index.vue index 4542902..4b7aa28 100644 --- a/src/views/reportManage/productionReport/index.vue +++ b/src/views/reportManage/productionReport/index.vue @@ -1,15 +1,42 @@ <template> <div class="productionRreport-container"> <div class="filter-card"> - <CommonSearch :show-add="false" :amount-view="false" placeholder="璇疯緭鍏ュ叧閿瘝" @searchClick="onFilterSearch"> + <CommonSearch + :show-add="false" + :amount-view="false" + placeholder="璇疯緭鍏ュ叧閿瘝" + @searchClick="onFilterSearch" + > <template slot="leftButton"> - <el-button size="small" type="primary" @click="exportBtnClick">瀵煎嚭</el-button> + <el-select + v-model="marketId" + placeholder="璇烽�夋嫨" + class="select-width margin_right_10px" + multiple + collapse-tags + > + <el-option + v-for="item in marketList" + :key="item.ID" + :label="item.name" + :value="item.ID" + > + </el-option> + </el-select> + <el-button size="small" type="primary" @click="exportBtnClick" + >瀵煎嚭</el-button + > </template> </CommonSearch> </div> <div class="body-card"> <div class="list-view"> - <TableCommonView ref="tableListRef" v-loading="loading" :table-list="tableList" @selTableCol="selTableCol"> + <TableCommonView + ref="tableListRef" + v-loading="loading" + :table-list="tableList" + @selTableCol="selTableCol" + > </TableCommonView> </div> <!-- <div class="btn-pager"> @@ -20,7 +47,9 @@ </template> <script> -import pageMixin from "@/components/makepager/pager/mixin/pageMixin" +import { getAttendanceStatistic } from "@/api/employeeSalary/attendanceManage.js"; +import pageMixin from "@/components/makepager/pager/mixin/pageMixin"; +import { getDictList } from "@/api/productManage/silkRegisterForm.js"; export default { name: "productionReport", props: {}, @@ -31,6 +60,8 @@ return { loading: false, tableList: {}, + marketId: [], + marketList: [], //搴勫彛 tableColumn: [ { label: "杞﹂棿", prop: "name", default: true }, { label: "鏈虹粍", prop: "member_name" }, @@ -45,7 +76,7 @@ { label: "绾ゅ害鍋忓樊", prop: "detail_address" }, { label: "鏃ヤ骇閲�", prop: "client_status" }, { label: "绛夌骇", prop: "contact_name" }, - { label: "缁煎悎绛夌骇", prop: "contact_phone" } + { label: "缁煎悎绛夌骇", prop: "contact_phone" }, ], showCol: [ "杞﹂棿", @@ -61,50 +92,99 @@ "绾ゅ害鍋忓樊", "鏃ヤ骇閲�", "绛夌骇", - "缁煎悎绛夌骇" - ] - } + "缁煎悎绛夌骇", + ], + }; }, created() { - this.setTable() + this.getSelectDataList(); + this.setTable(); + this.getData(); }, methods: { + getSelectDataList() { + //搴勫彛 + getDictList({ + dictType: 0, + }).then((res) => { + if (res.code == 200) { + this.marketList = res.data || []; + } + }); + }, setTable() { this.tableList = { selectIndex: true, tableInfomation: [], allcol: [], showcol: this.showCol, - tableColumn: this.setColumnVisible(this.showCol) - } - this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) - this.searchOptions = [] + tableColumn: this.setColumnVisible(this.showCol), + }; + this.tableList.allcol = this.tableList.tableColumn + .filter((ele) => !ele.default) + .map((ele) => ele.label); + this.searchOptions = []; for (let i = 0; i < this.tableList.tableColumn.length; i++) { - const label = this.tableList.tableColumn[i].label - const value = this.tableList.tableColumn[i].prop - this.searchOptions.push({ value: value, label: label }) + const label = this.tableList.tableColumn[i].label; + const value = this.tableList.tableColumn[i].prop; + this.searchOptions.push({ value: value, label: label }); } }, setColumnVisible(showCol) { return this.tableColumn.map((ele) => { return { ...ele, - isShowColumn: showCol.includes(ele.label) - } - }) + isShowColumn: showCol.includes(ele.label), + }; + }); }, selTableCol(val) { - this.showcol = val - this.tableList.tableColumn = this.setColumnVisible(val) + this.showcol = val; + this.tableList.tableColumn = this.setColumnVisible(val); + }, + // 璇锋眰鏁版嵁 + async getData() { + this.loading = true; + await getAttendanceStatistic({ + keyword: this.keyword, + month: "2024-04", + // page: this.pagerOptions.currPage, + // pageSize: this.pagerOptions.pageSize + }) + .then((res) => { + if (res.code == 200) { + if (res.data.list && res.data.list.length > 0) { + const list = res.data.list.map((item) => { + return { + ...item, + }; + }); + this.tableList.tableInfomation = list || []; + this.pagerOptions.totalCount = res.total; + } else { + this.tableList.tableInfomation = []; + } + } else { + this.tableList.tableInfomation = []; + } + this.loading = false; + }) + .catch((err) => { + console.log(err); + this.tableList.tableInfomation = []; + this.loading = false; + }); }, // 鎼滅储 onFilterSearch(searchText) { - console.log(searchText) + this.keyword = searchText ?? ""; + this.pagerOptions.currPage = 1; + this.getData(); }, // 瀵煎嚭 - exportBtnClick() {} - } -} + exportBtnClick() {}, + }, +}; </script> <!-- Add "scoped" attribute to limit CSS to this component only --> -- Gitblit v1.8.0