From 5e9b4920000a4d02eef3b207218e3ce8d68935be Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期四, 11 七月 2024 17:47:05 +0800
Subject: [PATCH] feat:纤度登记表重构

---
 src/views/reportManage/productionReport/index.vue |  242 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 235 insertions(+), 7 deletions(-)

diff --git a/src/views/reportManage/productionReport/index.vue b/src/views/reportManage/productionReport/index.vue
index ab4ef1b..8f34543 100644
--- a/src/views/reportManage/productionReport/index.vue
+++ b/src/views/reportManage/productionReport/index.vue
@@ -1,21 +1,249 @@
 <template>
-  <div class="container"></div>
+  <div class="productionRreport-container">
+    <div class="filter-card">
+      <CommonSearch
+        :show-add="false"
+        :amount-view="false"
+        placeholder="璇疯緭鍏ュ叧閿瘝"
+        @searchClick="onFilterSearch"
+      >
+        <template slot="leftButton">
+          <!-- <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-cascader
+            v-model="marketId"
+            placeholder="璇烽�夋嫨"
+            class="select-width margin_right_10px"
+            :options="marketList"
+            :show-all-levels="false"
+            collapse-tags
+            :props="{
+              multiple:true,
+              value:'ID',
+              label:'name'
+            }"
+          >
+          </el-cascader>
+          <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>
+      </div>
+      <div class="btn-pager">
+        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { getAttendanceStatistic } from "@/api/reportManage/report.js";
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin";
+import { getDictList } from "@/api/productManage/silkRegisterForm.js";
 export default {
   name: "productionReport",
   props: {},
   components: {},
-  mixins: [],
+  mixins: [pageMixin],
   computed: {},
   data() {
-    return {}
+    return {
+      loading: false,
+      tableList: {},
+      marketId: [],
+      marketList: [], //搴勫彛
+      tableColumn: [
+        { label: "杞﹂棿", prop: "name", default: true },
+        { label: "鏈虹粍", prop: "member_name" },
+        { label: "鈪″害", prop: "client_level" },
+        { label: "娓呮磥", prop: "next_visit_time" },
+        { label: "娲佸噣", prop: "detail_address" },
+        { label: "鏈�澶х氦搴�", prop: "client_status" },
+        { label: "鏈�灏忕氦搴�", prop: "contact_name" },
+        { label: "骞冲潎绾ゅ害", prop: "contact_phone" },
+        { label: "鍏噺绾ゅ害", prop: "client_level" },
+        { label: "鏈�澶у亸宸�", prop: "next_visit_time" },
+        { label: "绾ゅ害鍋忓樊", prop: "detail_address" },
+        { label: "鏃ヤ骇閲�", prop: "client_status" },
+        { label: "绛夌骇", prop: "contact_name" },
+        { label: "缁煎悎绛夌骇", prop: "contact_phone" },
+      ],
+      showCol: [
+        "杞﹂棿",
+        "鏈虹粍",
+        "鈪″害",
+        "娓呮磥",
+        "娲佸噣",
+        "鏈�澶х氦搴�",
+        "鏈�灏忕氦搴�",
+        "骞冲潎绾ゅ害",
+        "鍏噺绾ゅ害",
+        "鏈�澶у亸宸�",
+        "绾ゅ害鍋忓樊",
+        "鏃ヤ骇閲�",
+        "绛夌骇",
+        "缁煎悎绛夌骇",
+      ],
+    };
   },
-  created() {},
-  methods: {}
-}
+  created() {
+    this.getSelectDataList();
+    this.setTable();
+    this.getData();
+  },
+  methods: {
+    getSelectDataList() {
+      //搴勫彛
+      getDictList({
+        dictType: 0,
+      }).then((res) => {
+        if (res.code == 200) {
+          if(res.data&&res.data.length>0){
+            this.marketList = [
+              {
+                ID:0,
+                name:'鍏ㄩ儴',
+                children:res.data||[]
+              }
+            ]
+            this.marketId=[];
+            for(let i in res.data){
+              this.marketId.push([0,res.data[i].ID])
+            }
+           
+          }
+          
+        }
+      });
+    },
+    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 = [];
+      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 });
+      }
+    },
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label),
+        };
+      });
+    },
+    selTableCol(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||0;
+            } else {
+              this.tableList.tableInfomation = [];
+            }
+          } else {
+            this.tableList.tableInfomation = [];
+          }
+          this.loading = false;
+        })
+        .catch((err) => {
+          console.log(err);
+          this.tableList.tableInfomation = [];
+          this.loading = false;
+        });
+    },
+    // 鎼滅储
+    onFilterSearch(searchText) {
+      this.keyword = searchText ?? "";
+      this.pagerOptions.currPage = 1;
+      this.getData();
+    },
+    // 瀵煎嚭
+    exportBtnClick() {},
+  },
+};
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.productionRreport-container {
+  height: 100%;
+  .filter-card {
+    margin: 20px 30px;
+    height: 80px;
+    display: flex;
+    align-items: center;
+    padding: 0 20px 0 20px;
+    border-radius: 12px;
+    background-color: #fff;
+  }
+  .body-card {
+    margin: 0 30px;
+    border-radius: 12px;
+    background-color: #fff;
+    height: calc(100% - 140px);
+  }
+  .list-view {
+    height: calc(100% - 60px);
+    overflow: hidden;
+  }
+  .btn-pager {
+    display: flex;
+    margin-top: 10px;
+    .page {
+      margin-left: auto;
+    }
+  }
+}
+</style>

--
Gitblit v1.8.0