From 3389b07ef10428ada5d161eab3f720d725553b6b Mon Sep 17 00:00:00 2001
From: 叶松 <2217086471@qq.com>
Date: 星期四, 16 十一月 2023 13:23:18 +0800
Subject: [PATCH] 安全积分超市样式完成
---
web/src/views/SecureManage/NipCheck/components/ScoreDetails.vue | 181 +++++++++++++++++++++++++
web/src/views/SecureManage/NipCheck/SorceShop.vue | 55 +++++++
web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue | 131 ++++++++++++++++++
3 files changed, 365 insertions(+), 2 deletions(-)
diff --git a/web/src/views/SecureManage/NipCheck/SorceShop.vue b/web/src/views/SecureManage/NipCheck/SorceShop.vue
index 1769998..f32d389 100644
--- a/web/src/views/SecureManage/NipCheck/SorceShop.vue
+++ b/web/src/views/SecureManage/NipCheck/SorceShop.vue
@@ -1,3 +1,54 @@
<template>
- <div>安全积分超市</div>
-</template>
\ No newline at end of file
+ <div class="main">
+ <div class="main_tabs">
+ <el-tabs v-model="activeName" @tab-click="handleClick">
+ <el-tab-pane label="安全积分超市" name="first">
+ <score-supermarket ref="market"></score-supermarket>
+ </el-tab-pane>
+ <el-tab-pane label="积分明细" name="second">
+ <score-details ref="details"></score-details>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+ </div>
+</template>
+<script>
+import ScoreSupermarket from './components/ScoreMarket.vue'//安全积分超市
+import ScoreDetails from './components/ScoreDetails.vue'//入库记录
+export default {
+ components:{
+ ScoreSupermarket,
+ ScoreDetails,
+ },
+ data(){
+ return{
+ activeName:'first'
+ }
+ },
+ mounted(){
+ this.$refs.market.searchButtonInfo(true);
+ },
+ methods:{
+ //切换界面
+ handleClick(tab){
+ switch(tab.name){
+ case 'second':
+ this.$refs.details.searchButtonInfo(true);
+ break;
+ default:
+ this.$refs.market.searchButtonInfo(true);
+ }
+ },
+ }
+}
+</script>
+<style scoped lang="scss">
+@import'@/style/layout-main.scss';
+/deep/ .el-tabs__content{
+ position: static;
+}
+
+/deep/.main {
+ background: none;
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/SecureManage/NipCheck/components/ScoreDetails.vue b/web/src/views/SecureManage/NipCheck/components/ScoreDetails.vue
new file mode 100644
index 0000000..0a2e352
--- /dev/null
+++ b/web/src/views/SecureManage/NipCheck/components/ScoreDetails.vue
@@ -0,0 +1,181 @@
+<template>
+ <div class="main" style="height:89%">
+ <div class="main_header">
+ <div class="header_item">
+ <span class="header_label">类型:</span>
+ <el-select v-model="search.type" clearable placeholder="请选择类型">
+ <el-option
+ v-for="item in typeLists"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="header_item">
+ <span class="header_label">时间范围:</span>
+ <el-date-picker
+ v-model="search.time"
+ type="daterange"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ :default-time="['00:00:00','23:59:59']"
+ range-separator="-"
+ start-placeholder="起始时间"
+ end-placeholder="结束时间">
+ </el-date-picker>
+ </div>
+ <div class="header_item">
+ <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
+ <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('export')" @click="exportFiles">导出Excel</el-button>
+ </div>
+ </div>
+ <div class="score_index">
+ <div class="score_titles">积分:</div>
+ <div class="score_datas"><span>65</span>分</div>
+ </div>
+ <div class="main_content">
+ <el-table
+ v-loading="loading"
+ :data="dataList"
+ height="100%">
+ <el-table-column align="center" label="序号" width="60">
+ <template #default="scope">
+ <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createTime" label="时间" align="center" width="150"></el-table-column>
+ <el-table-column prop="dangerLocation" label="积分分值" align="center" ></el-table-column>
+ <el-table-column prop="dangerLocation" label="余额" align="center" ></el-table-column>
+ <el-table-column prop="dangerLocation" label="类型" align="center" ></el-table-column>
+ <el-table-column prop="title" label="说明" align="center" show-overflow-tooltip></el-table-column>
+ </el-table>
+ </div>
+ <div class="main_footer">
+ <el-pagination
+ background
+ @current-change="changePageNum"
+ @size-change="changePageSize"
+ :current-page="pageNum"
+ :page-sizes="[10, 20, 50, 100]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </div>
+ </div>
+</template>
+
+<script>
+import { buttonPinia } from '../../../../pinia/index';
+import { changeSize } from '../../../../plugins/public'; // 导入节流、动态切换组件尺寸方法
+ export default {
+ data() {
+ return {
+ size: changeSize(), // 组件尺寸
+ pageNum: 1,
+ pageSize: 10,
+ search:{},//查询条件
+ total: 0,
+ disabled:false,
+ loading: false,
+ dataList: [], //积分明细信息列表
+ imageList:[],
+ asyncTitle: true, // 对话框title 新增:true 修改:false
+ asyncVisible: false, // 添加 修改对话框
+ typeLists:[
+ {
+ label:'获取',
+ value:1
+ },
+ {
+ label:'消耗',
+ value:2
+ }
+ ]
+ }
+ },
+ watch: {
+ asyncVisible(bol) {
+ if(!bol) {
+ this.ruleForm = {};
+ this.$refs.ruleForm.resetFields();
+ }
+ }
+ },
+ mounted() {
+ const that = this;
+ // 根据窗口大小动态修改组件尺寸
+ window.onresize = () => {
+ that.size = changeSize();
+ }
+ },
+ methods: {
+ // 查询按钮列表信息
+ searchButtonInfo(bol) {
+ if(bol) {
+ this.pageNum = 1;
+ }
+ let params = Object.assign({},this.search,{
+ pageNum: this.pageNum,
+ pageSize: this.pageSize
+ })
+ params.startTime = this.search.time&&this.search.time[0]
+ params.endTime = this.search.time&&this.search.time[1]
+ delete params.time
+ this.loading = true;
+ this.$api.Safety.searchHiddenLists(params).then((res) => {
+ if(res.statusMsg === 'ok') {
+ this.total = res.data.total;
+ this.dataList = res.data.list;
+ }
+ this.loading = false;
+ })
+ },
+ //导出excel
+ exportFiles(){},
+ // 判断按钮权限信息
+ showButton(str) {
+ const pinia = buttonPinia();
+ return pinia.$state.buttonInfo.includes(str);
+ },
+ // 切换页数
+ changePageNum(page) {
+ this.pageNum = page;
+ this.searchButtonInfo();
+ },
+ // 切换每页条数
+ changePageSize(size) {
+ this.pageSize = size;
+ this.searchButtonInfo();
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+@import '../../../../style/layout-main.scss';
+.score_index{
+ width:200px;
+ line-height: 30px;
+ background-color: #0E6D90;
+ border-radius: 4px;
+ display: flex;
+ margin-bottom: 15px;
+ margin-left: 25px;
+ padding: 2px 0px 2px 15px;
+
+ .score_titles{
+ color: #E2EDF2;
+ font-size: 15px;
+ }
+ .score_datas{
+ color: #E2EDF2;
+ font-size: 15px;
+ span{
+ padding: 0 10px;
+ color: #19F9FA;
+ font-size: 24px;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue
new file mode 100644
index 0000000..bd03c77
--- /dev/null
+++ b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue
@@ -0,0 +1,131 @@
+<template>
+ <div class="main" style="height:89%">
+ <div class="main_header">
+ <div class="header_item">
+ <span class="header_label">时间范围:</span>
+ <el-date-picker
+ v-model="search.time"
+ type="daterange"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ :default-time="['00:00:00','23:59:59']"
+ range-separator="-"
+ start-placeholder="起始时间"
+ end-placeholder="结束时间">
+ </el-date-picker>
+ </div>
+ <div class="header_item">
+ <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
+ <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('export')" @click="exportFiles">导出Excel</el-button>
+ </div>
+ </div>
+ <div class="main_content">
+ <el-table
+ v-loading="loading"
+ :data="dataList"
+ height="100%">
+ <el-table-column align="center" label="序号" width="60">
+ <template #default="scope">
+ <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createTime" label="时间" align="center" width="150"></el-table-column>
+ <el-table-column prop="dangerLocation" label="积分分值" align="center" ></el-table-column>
+ <el-table-column prop="title" label="说明" align="center" show-overflow-tooltip></el-table-column>
+ </el-table>
+ </div>
+ <div class="main_footer">
+ <el-pagination
+ background
+ @current-change="changePageNum"
+ @size-change="changePageSize"
+ :current-page="pageNum"
+ :page-sizes="[10, 20, 50, 100]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </div>
+ </div>
+</template>
+
+<script>
+import { buttonPinia } from '../../../../pinia/index';
+import { changeSize } from '../../../../plugins/public'; // 导入节流、动态切换组件尺寸方法
+ export default {
+ data() {
+ return {
+ size: changeSize(), // 组件尺寸
+ pageNum: 1,
+ pageSize: 10,
+ search:{},//查询条件
+ total: 0,
+ disabled:false,
+ loading: false,
+ dataList: [], //举报隐患信息列表
+ imageList:[],
+ asyncTitle: true, // 对话框title 新增:true 修改:false
+ asyncVisible: false, // 添加 修改对话框
+ }
+ },
+ watch: {
+ asyncVisible(bol) {
+ if(!bol) {
+ this.ruleForm = {};
+ this.$refs.ruleForm.resetFields();
+ }
+ }
+ },
+ mounted() {
+ const that = this;
+ // 根据窗口大小动态修改组件尺寸
+ window.onresize = () => {
+ that.size = changeSize();
+ }
+ that.searchButtonInfo(true);
+ },
+ methods: {
+ // 查询按钮列表信息
+ searchButtonInfo(bol) {
+ if(bol) {
+ this.pageNum = 1;
+ }
+ let params = Object.assign({},this.search,{
+ pageNum: this.pageNum,
+ pageSize: this.pageSize
+ })
+ params.startTime = this.search.time&&this.search.time[0]
+ params.endTime = this.search.time&&this.search.time[1]
+ delete params.time
+ this.loading = true;
+ this.$api.Safety.searchHiddenLists(params).then((res) => {
+ if(res.statusMsg === 'ok') {
+ this.total = res.data.total;
+ this.dataList = res.data.list;
+ }
+ this.loading = false;
+ })
+ },
+ //导出excel
+ exportFiles(){},
+ // 判断按钮权限信息
+ showButton(str) {
+ const pinia = buttonPinia();
+ return pinia.$state.buttonInfo.includes(str);
+ },
+ // 切换页数
+ changePageNum(page) {
+ this.pageNum = page;
+ this.searchButtonInfo();
+ },
+ // 切换每页条数
+ changePageSize(size) {
+ this.pageSize = size;
+ this.searchButtonInfo();
+ }
+ }
+ }
+</script>
+
+<style lang="sass" scoped>
+@import '../../../../style/layout-main.scss';
+</style>
\ No newline at end of file
--
Gitblit v1.9.3