From ca32bcd8d774b3fee52474683663d34507452b0b Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 10 一月 2024 11:52:33 +0800
Subject: [PATCH] 申领单查询取消横向滑块

---
 Source/UBCS-WEB/src/views/integration/applicationForm.vue |  354 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 215 insertions(+), 139 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/integration/applicationForm.vue b/Source/UBCS-WEB/src/views/integration/applicationForm.vue
index 7a3c48b..2565734 100644
--- a/Source/UBCS-WEB/src/views/integration/applicationForm.vue
+++ b/Source/UBCS-WEB/src/views/integration/applicationForm.vue
@@ -1,146 +1,222 @@
 <template>
-    <basic-container>
-        <avue-crud :table-loading="loading" :data="data" :option="option" :search.sync="searchParam" :page.sync="page"
-            ref="crud" @refresh-change="getDataList" @search-change="handleSearch" @search-reset="handleReset"
-            @size-change="handleSizePage" @current-change="handleCurrentPage" @on-load="getDataList">
-            <template slot="menuLeft">
-                <el-button icon="el-icon-document" size="small" type="primary" @click="handleStatus">闆嗗洟鐢宠鐘舵��
-                </el-button>
-            </template>
-        </avue-crud>
-    </basic-container>
+  <basic-container>
+    <avue-crud ref="crud" :data="data" :option="option" :page.sync="page" :permission="permissionList"
+               :search.sync="searchParam"
+               :table-loading="loading" @refresh-change="getDataList" @search-change="handleSearch"
+               @search-reset="handleReset"
+               @size-change="handleSizePage" @current-change="handleCurrentPage" @on-load="getDataList"
+               @selection-change="selectionChange" @row-click="handleRowClick">
+      <template slot="menuLeft">
+        <el-button v-if="permissionList.status" icon="el-icon-document" size="small" type="primary"
+                   @click="handleStatus">闆嗗洟鐢宠鐘舵��
+        </el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
 </template>
 
 <script>
-import { getList } from '@/api/integration/application.js'
-import { dateFormat } from '@/util/date.js'
+import {getList, queryApplyStat} from '@/api/integration/application.js'
+import {dateFormat} from '@/util/date.js'
+import {mapGetters} from 'vuex'
+
 export default {
-    data() {
-        return {
-            loading: false,
-            data: [],
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            searchParam: {},
-            option: {
-                height: "auto",
-                index: true,
-                border: true,
-                addBtn: false,
-                columnBtn: false,
-                searchMenuSpan: 8,
-                highlightCurrentRow: true,
-                menu:false,
-                column: [
-                    {
-                        label: '鐢宠鍗曞彿',
-                        prop: 'id',
-                        width: 300,
-                        fixed: true,
-                        search: true,
-                    }, {
-                        label: '闆嗗洟鐮�',
-                        width: 200,
-                        prop: 'groupCode',
-                        search: true,
-                    }, {
-                        label: '鎿嶄綔绫诲瀷',
-                        width: 200,
-                        prop: 'operationType',
-                        type: 'select',
-                        search: true,
-                        dicData: [{
-                            label: '鐢宠',
-                            value: 1
-                        }, {
-                            label: '鏇存敼',
-                            value: 2
-                        }]
-                    }, {
-                        label: '鐢宠鍗曟暟鎹俊鎭�',
-                        width: 300,
-                        prop: 'description'
-                    },
-                    {
-                        label: '鍒涘缓鏃堕棿',
-                        width: 200,
-                        prop: 'createTime',
-                        type: 'datetime',
-                        search: true,
-                    },
-                    {
-                        label: '鏇存敼鏃堕棿',
-                        width: 200,
-                        prop: 'lastModifyTime',
-                        type: 'datetime',
-                        search: true,
-                        formatter: () => {
-
-                        }
-                    }, {
-                        label: '杩斿洖鏍囪瘑',
-                        width: 100,
-                        prop: 'code'
-                    },
-                    {
-                        label: '杩斿洖淇℃伅',
-                        width: 300,
-                        prop: 'content'
-                    },
-                    {
-                        label: '娑堟伅淇℃伅',
-                        width: 300,
-                        prop: 'msg'
-                    }
-                ]
-            }
-        }
-    },
-    methods: {
-        handleStatus() {
-
-        },
-        async getDataList() {
-            this.loading = true
-            console.log(this.searchParam)
-            const { pageSize, currentPage, total } = this.page
-            let param = { size: pageSize, current: currentPage }
-            const response = await getList({ ...param, ...this.searchParam })
-            if (response.status === 200) {
-                this.loading = false
-                console.log(response)
-                const data = response.data.data
-                this.data = data.records
-                this.page.total = data.total
-            } else this.loading = false
-        },
-        handleSizePage(event) {
-            this.page.pageSize = event
-        },
-        handleCurrentPage(event) {
-            this.page.currentPage = event
-        },
-        handleReset() {
-            this.searchParam = {}
-        },
-        handleSearch(form, done) {
-            const { id, groupCode, operationType } = form
-            let dataTime = { id, groupCode, operationType }
-            if (form.hasOwnProperty('createTime')) {
-                dataTime = { createTime: dateFormat(form.createTime), ...dataTime }
-            }
-            if (form.hasOwnProperty('lastModifyTime')) {
-                dataTime = { lastModifyTime: dateFormat(form.lastModifyTime), ...dataTime }
-            }
-            console.log(dataTime)
-            this.searchParam = dataTime
-            this.page.currentPage = 1
-            this.getDataList()
-            done()
-        }
+  data() {
+    return {
+      loading: false,
+      data: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      searchParam: {},
+      stateParam: {},
     }
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        searchBtn: this.vaildData(this.permission.applicationForm.applicationForm_search, false),
+        emptyBtn: this.vaildData(this.permission.applicationForm.applicationForm_search, false),
+        status: this.vaildData(this.permission.applicationForm.applicationForm_status, false)
+      }
+    },
+    option() {
+      return {
+        height: 'auto',
+        tip: false,
+        index: true,
+        border: true,
+        addBtn: false,
+        columnBtn: false,
+        searchBtn: this.permissionList.searchBtn,
+        emptyBtn: this.permissionList.emptyBtn,
+        searchMenuSpan: 8,
+        highlightCurrentRow: true,
+        menu: false,
+        selection: true,
+        column: [
+          {
+            label: '鐢宠鍗曞彿',
+            prop: 'id',
+            width: 200,
+            fixed: true,
+            search: true,
+          }, {
+            label: '闆嗗洟鐮�',
+            width: 150,
+            prop: 'groupCode',
+            search: true,
+          }, {
+            label: '鎿嶄綔绫诲瀷',
+            width: 120,
+            prop: 'operationType',
+            type: 'select',
+            search: true,
+            dicData: [{
+              label: '鐢宠',
+              value: '1'
+            }, {
+              label: '鏇存敼',
+              value: '2'
+            }]
+          }, {
+            label: '鐢宠鍗曟暟鎹俊鎭�',
+            width: 300,
+            prop: 'description'
+          },
+          {
+            label: '鍒涘缓鏃堕棿',
+            prop: 'createTime',
+            type: 'datetime',
+            search: true,
+          },
+          {
+            label: '鏇存敼鏃堕棿',
+            prop: 'lastModifyTime',
+            type: 'datetime',
+            search: true,
+          }, {
+            label: '鏄惁鎴愬姛',
+            width: 120,
+            prop: 'code',
+            html: true,
+            align: 'center',
+            formatter: function (row) {
+              return row.code == '1' ? '<i class="el-icon-check" style="color: #32cd32;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: #ff0000;font-size: 20px;font-weight: 800"></i>'
+            }
+          },
+          {
+            label: '杩斿洖淇℃伅',
+            prop: 'content',
+            hide: true
+          },
+          {
+            label: '娑堟伅淇℃伅',
+            width: 150,
+            prop: 'msg'
+          }
+        ]
+      }
+    }
+  },
+  methods: {
+    async handleStatus() {
+      const {oids} = this.stateParam
+      if (this.$utilFunc.isEmpty(oids)) {
+        this.$message({
+          type: "error",
+          message: "璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�!"
+        })
+      } else {
+        // console.log(this.stateParam)
+        const response = await queryApplyStat(this.stateParam)
+        if (response.status === 200) {
+          // console.log(response)
+        }
+      }
+    },
+    async getDataList() {
+      this.loading = true
+      const {pageSize, currentPage, total} = this.page
+      let param = {size: pageSize, current: currentPage}
+      // console.log(this.searchParam)
+      this.searchParam = Object.keys(this.searchParam)
+        .filter((key) => this.searchParam[key] !== null && this.searchParam[key] !== undefined && this.searchParam[key] !== "")
+        .reduce((acc, key) => ({...acc, [key]: this.searchParam[key]}), {});
+      // console.log(this.searchParam)
+      const response = await getList({...param, ...this.searchParam})
+      if (response.status === 200) {
+        this.loading = false
+        // console.log(response)
+        const data = response.data.data
+        this.data = data.records
+        this.page.total = data.total
+      } else this.loading = false
+    },
+    handleSizePage(event) {
+      this.page.pageSize = event
+    },
+    handleCurrentPage(event) {
+      this.page.currentPage = event
+    },
+    handleReset() {
+      this.searchParam = {}
+      this.getDataList()
+    },
+    handleSearch(form, done) {
+      // console.log(form)
+      const {id, groupCode, operationType} = form
+      let dataTime = {id, groupCode, operationType}
+      if (form.hasOwnProperty('createTime')) {
+        dataTime = {createTime: dateFormat(form.createTime), ...dataTime}
+      }
+      if (form.hasOwnProperty('lastModifyTime')) {
+        dataTime = {lastModifyTime: dateFormat(form.lastModifyTime), ...dataTime}
+      }
+      this.searchParam = dataTime
+      this.page.currentPage = 1
+      this.getDataList()
+      done()
+    },
+    selectionChange(list) {
+      // console.log(list)
+      let newData = list.map(item => {
+        const {dataOid} = item
+        return dataOid
+      })
+      this.stateParam = {oids: newData.toString()}
+      // console.log(newData)
+    },
+    handleRowClick(row) {
+      this.$refs.crud.toggleRowSelection(row, true)
+    },
+  }
 }
-</script>
\ No newline at end of file
+</script>
+<style lang="scss" scoped>
+////鍥哄畾鍒楅珮搴�
+///deep/ .el-table__fixed {
+//  height: calc(100vh - 345px) !important;
+//}
+
+//// 婊氬姩鏉℃牱寮忎慨鏀�
+//// 婊氬姩鏉$殑瀹藉害
+///deep/ .el-table__body-wrapper::-webkit-scrollbar {
+//  height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+//  background: white;
+//  border: white;
+//  width: 10px;
+//
+//}
+//
+//// 婊氬姩鏉$殑婊戝潡
+///deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+//  background-color: #ececec;
+//  border-radius: 20px;
+//  border: #ececec;
+//}
+
+</style>

--
Gitblit v1.9.3