|
@@ -1,131 +1,106 @@
|
|
|
<template>
|
|
|
- <div class="contenBox">
|
|
|
- <div class="table-action flex-b">
|
|
|
- <div class="customList">{{ contentConfig.header.title ? contentConfig.header.title : '' }}</div>
|
|
|
- <div class="btns">
|
|
|
- <slot name="button"></slot>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-table :data="pageList" style="width: 100%; max-height: 55vh; overflow: auto"
|
|
|
- @selection-change="handleSelectionChange" ref="multipleTableRef" v-bind="props.contentConfig?.tableProps"
|
|
|
- :row-key="getRowKeys" v-loading="loading">
|
|
|
- <template v-for="item in contentConfig.propsList">
|
|
|
- <!-- 序号 -->
|
|
|
- <el-table-column :fixed="item.fixed" v-if="item.type === 'index'" type="index" :key="item.prop" center>
|
|
|
- </el-table-column>
|
|
|
- <!-- 选择 -->
|
|
|
- <el-table-column :fixed="item.fixed" type="selection" width="55" align="center" :key="item.prop"
|
|
|
- v-if="item.type === 'selection'" :reserve-selection="true" />
|
|
|
- <!-- 操作类 -->
|
|
|
- <el-table-column :key="item" :fixed="item.fixed" align="center" v-bind="item"
|
|
|
- v-else-if="item.type === 'handler'">
|
|
|
- <template #default="scope">
|
|
|
- <slot :name="item.slotName" v-bind="scope"></slot>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <div class="contenBox">
|
|
|
+ <div class="table-action flex-b">
|
|
|
+ <div class="customList">{{ contentConfig.header.title ? contentConfig.header.title : '' }}</div>
|
|
|
+ <div class="btns">
|
|
|
+ <slot name="button"></slot>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="pageList"
|
|
|
+ style="width: 100%; max-height: 55vh; overflow: auto"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ ref="multipleTableRef"
|
|
|
+ v-bind="props.contentConfig?.tableProps"
|
|
|
+ :row-key="getRowKeys"
|
|
|
+ v-loading="loading"
|
|
|
+ >
|
|
|
+ <template v-for="item in contentConfig.propsList">
|
|
|
+ <!-- 序号 -->
|
|
|
+ <el-table-column
|
|
|
+ :fixed="item.fixed"
|
|
|
+ v-if="item.type === 'index'"
|
|
|
+ type="index"
|
|
|
+ :key="item.prop"
|
|
|
+ center
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <!-- 选择 -->
|
|
|
+ <el-table-column
|
|
|
+ :fixed="item.fixed"
|
|
|
+ type="selection"
|
|
|
+ width="55"
|
|
|
+ align="center"
|
|
|
+ :key="item.prop"
|
|
|
+ v-if="item.type === 'selection'"
|
|
|
+ :reserve-selection="true"
|
|
|
+ />
|
|
|
+ <!-- 操作类 -->
|
|
|
+ <el-table-column
|
|
|
+ :key="item"
|
|
|
+ :fixed="item.fixed"
|
|
|
+ align="center"
|
|
|
+ v-bind="item"
|
|
|
+ v-else-if="item.type === 'handler'"
|
|
|
+ >
|
|
|
+ <template #default="scope">
|
|
|
+ <slot :name="item.slotName" v-bind="scope"></slot>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <!-- 自定义类 -->
|
|
|
- <el-table-column show-overflow-tooltip :fixed="item.fixed" :key="item.label"
|
|
|
- v-else-if="item.type === 'custom'" :label="item.label" :width="item.width" :prop="item.prop"
|
|
|
- :sortable="item.sortable || false" :column-key="item.prop">
|
|
|
- <template #default="scope">
|
|
|
- <slot :name="item.slotName" v-bind="scope"></slot>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <!-- 时间类 -->
|
|
|
- <el-table-column show-overflow-tooltip :fixed="item.fixed" :key="item.label"
|
|
|
- v-else-if="item.type === 'time'" align="center" :label="item.label" :width="item.width">
|
|
|
- <template #default="scope">
|
|
|
- {{ parseTime(scope.row[item.prop]) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <!-- 普通渲染类 -->
|
|
|
- <el-table-column :fixed="item.fixed" show-overflow-tooltip v-else-if="item.type === 'normal'"
|
|
|
- :key="item.label" v-bind="item" :prop="item.prop" :sortable="item.sortable || false"
|
|
|
- :column-key="item.prop" />
|
|
|
- <!-- 倒序类 -->
|
|
|
- <el-table-column :fixed="item.fixed" show-overflow-tooltip v-else-if="item.type === 'sortable'"
|
|
|
- :key="item.label" sortable v-bind="item" />
|
|
|
- </template>
|
|
|
- </el-table>
|
|
|
- <div class="flex-b">
|
|
|
- <div v-if="contentConfig.moneyTotal">
|
|
|
- <div class="flex" v-if="contentConfig.moneyTotalType === false">
|
|
|
- <div class="footSlotStyle mr10">小计:</div>
|
|
|
- <div class="footSlotStyle mr20" v-if="!contentConfig.customSubtotal">
|
|
|
- 数量 {{ subNumber || 0 }}
|
|
|
- 张
|
|
|
- </div>
|
|
|
- <div class="footSlotStyle mr20" v-else>数量 {{ subtotalNum || 0 }}</div>
|
|
|
- <slot name="subtotalSlot"></slot>
|
|
|
- </div>
|
|
|
- <div v-else class="flex">
|
|
|
- <div class="footSlotStyle mr10">小计:</div>
|
|
|
- <div class="footSlotStyle mr20" v-if="!contentConfig.customSubtotal">
|
|
|
- 费用金额 {{ subtotal || 0 }}元
|
|
|
- </div>
|
|
|
- <div class="footSlotStyle mr20" v-else>费用金额 {{ subtotalNum || 0 }}元</div>
|
|
|
- <slot name="subtotalSlot"></slot>
|
|
|
- </div>
|
|
|
- <div v-if="contentConfig.moneyTotalType === false" class="flex">
|
|
|
- <div class="footSlotStyle mr10">总计:</div>
|
|
|
- <div class="footSlotStyle mr20">数量 {{ resDate.moneyTotal || 0 }} 张</div>
|
|
|
- <slot name="totalSlot"></slot>
|
|
|
- </div>
|
|
|
- <div v-else class="flex">
|
|
|
- <div class="footSlotStyle mr10">总计:</div>
|
|
|
- <div class="footSlotStyle mr20">费用金额 {{ resDate.moneyTotal || 0 }} 元</div>
|
|
|
- <slot name="totalSlot"></slot>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-else-if="contentConfig.energyMonery">
|
|
|
- <div class="flex">
|
|
|
- <div class="footSlotStyle mr10">小计:</div>
|
|
|
- <div class="footSlotStyle mr20 energyClass">
|
|
|
- <div class="itemName">电:{{ electricity || 0 }}</div>
|
|
|
- <div class="itemName">水:{{ water || 0 }}</div>
|
|
|
- <div class="itemName">气:{{ gas || 0 }}</div>
|
|
|
- </div>
|
|
|
- <slot name="subtotalSlot"></slot>
|
|
|
- </div>
|
|
|
- <div class="flex">
|
|
|
- <div class="footSlotStyle mr10">总计:</div>
|
|
|
- <div class="footSlotStyle mr20 energyClass">
|
|
|
- <div class="itemName">电:{{ electricityTotalPrice || 0 }}</div>
|
|
|
- <div class="itemName">水:{{ waterTotalPrice || 0 }}</div>
|
|
|
- <div class="itemName">气:{{ gasTotalPrice || 0 }}</div>
|
|
|
- </div>
|
|
|
- <slot name="totalSlot"></slot>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 其他/能耗费用计算 -->
|
|
|
- <div style="width: 60%;" v-else-if="contentConfig.energyConsumption">
|
|
|
- <div class="flex" v-if="contentConfig.energyConsumptionType === false">
|
|
|
- <div class="footSlotStyle mr10">能耗总量:</div>
|
|
|
- <div class="footSlotStyle mr20 energyClass">
|
|
|
- <div class="itemName" v-for="(item, index) in rowDate.value" :key="index">{{ item.energyName
|
|
|
- }}:{{
|
|
|
- item.dosage || 0 }}
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="flex" v-else>
|
|
|
- <div class="footSlotStyle mr10">能耗总量:</div>
|
|
|
- <div class="footSlotStyle mr20 energyClass">
|
|
|
- <div class="itemName">电:{{ electricityDosage || 0 }}</div>
|
|
|
- <div class="itemName">水:{{ waterDosage || 0 }}</div>
|
|
|
- <div class="itemName">气:{{ gasDosage || 0 }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="flex" v-else></div>
|
|
|
- <el-pagination class="mt10" v-model:current-page="systemStore.pageInfo.pageNum"
|
|
|
- v-model:page-size="systemStore.pageInfo.pageSize" :page-sizes="sizes" :small="false" :disabled="false"
|
|
|
- :background="true" layout="total, sizes, prev, pager, next, jumper" :total="pageTotalCount"
|
|
|
- @size-change="onPageSizeChange" @current-change="onPageChange" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <!-- 自定义类 -->
|
|
|
+ <el-table-column
|
|
|
+ show-overflow-tooltip
|
|
|
+ :fixed="item.fixed"
|
|
|
+ :key="item.label"
|
|
|
+ v-else-if="item.type === 'custom'"
|
|
|
+ :label="item.label"
|
|
|
+ :width="item.width"
|
|
|
+ :prop="item.prop"
|
|
|
+ :sortable="item.sortable || false"
|
|
|
+ :column-key="item.prop"
|
|
|
+ >
|
|
|
+ <template #default="scope">
|
|
|
+ <slot :name="item.slotName" v-bind="scope"></slot>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- 时间类 -->
|
|
|
+ <el-table-column
|
|
|
+ show-overflow-tooltip
|
|
|
+ :fixed="item.fixed"
|
|
|
+ :key="item.label"
|
|
|
+ v-else-if="item.type === 'time'"
|
|
|
+ align="center"
|
|
|
+ :label="item.label"
|
|
|
+ :width="item.width"
|
|
|
+ >
|
|
|
+ <template #default="scope">
|
|
|
+ {{ parseTime(scope.row[item.prop]) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- 普通渲染类 -->
|
|
|
+ <el-table-column
|
|
|
+ :fixed="item.fixed"
|
|
|
+ show-overflow-tooltip
|
|
|
+ v-else-if="item.type === 'normal'"
|
|
|
+ :key="item.label"
|
|
|
+ v-bind="item"
|
|
|
+ :prop="item.prop"
|
|
|
+ :sortable="item.sortable || false"
|
|
|
+ :column-key="item.prop"
|
|
|
+ />
|
|
|
+ <!-- 倒序类 -->
|
|
|
+ <el-table-column
|
|
|
+ :fixed="item.fixed"
|
|
|
+ show-overflow-tooltip
|
|
|
+ v-else-if="item.type === 'sortable'"
|
|
|
+ :key="item.label"
|
|
|
+ sortable
|
|
|
+ v-bind="item"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts" name="content">
|
|
@@ -134,85 +109,70 @@ import { parseTime } from '@/utils/ruoyi';
|
|
|
import useUserStore from '@/store/modules/user';
|
|
|
const userStore = useUserStore().userInfo.userName === 'admin' ? '' : useUserStore().userInfo.userId;
|
|
|
import { ref, watch } from 'vue';
|
|
|
-// import { ElTable } from 'element-plus';
|
|
|
-import { useSharedValueStore } from './sharedValueStore';
|
|
|
-
|
|
|
const props = withDefaults(
|
|
|
- defineProps<{
|
|
|
- contentConfig: {
|
|
|
- pageName: string;
|
|
|
- status: string;
|
|
|
- createUser: string;
|
|
|
- oneself: number;
|
|
|
- header: {
|
|
|
- title: string;
|
|
|
- };
|
|
|
- tableProps: any;
|
|
|
- propsList: any[];
|
|
|
- pageListParams?: {};
|
|
|
- moneyTotal?: boolean;
|
|
|
- energyConsumption?: boolean;
|
|
|
- energyConsumptionType?: boolean;
|
|
|
- energyMonery?: boolean;
|
|
|
- moneyTotalType?: boolean;
|
|
|
- customSubtotal?: boolean;
|
|
|
- };
|
|
|
- sizes?: number[];
|
|
|
- showSummary?: boolean;
|
|
|
- summaryMethod?: () => any;
|
|
|
- subtotalNum?: number;
|
|
|
- }>(),
|
|
|
- {
|
|
|
- sizes: [10, 50, 100, 300, 500],
|
|
|
- customSubtotal: false,
|
|
|
- }
|
|
|
+ defineProps<{
|
|
|
+ contentConfig: {
|
|
|
+ pageName: string;
|
|
|
+ status: string;
|
|
|
+ createUser: string;
|
|
|
+ oneself: number;
|
|
|
+ header: {
|
|
|
+ title: string;
|
|
|
+ };
|
|
|
+ tableProps: any;
|
|
|
+ propsList: any[];
|
|
|
+ pageListParams?: {};
|
|
|
+ moneyTotal?: boolean;
|
|
|
+ energyConsumption?: boolean;
|
|
|
+ energyConsumptionType?: boolean;
|
|
|
+ energyMonery?: boolean;
|
|
|
+ moneyTotalType?: boolean;
|
|
|
+ customSubtotal?: boolean;
|
|
|
+ };
|
|
|
+ sizes?: number[];
|
|
|
+ showSummary?: boolean;
|
|
|
+ summaryMethod?: () => any;
|
|
|
+ subtotalNum?: number;
|
|
|
+ }>(),
|
|
|
+ {
|
|
|
+ sizes: [10, 50, 100, 300, 500],
|
|
|
+ customSubtotal: false,
|
|
|
+ }
|
|
|
);
|
|
|
const emit = defineEmits(['handleSelect', 'pageChanged']);
|
|
|
const loading = ref(true);
|
|
|
|
|
|
// 请求数据
|
|
|
const systemStore = useSystemStore();
|
|
|
-// const pageNum = ref(1);
|
|
|
-// const pageSize = ref(10);
|
|
|
-
|
|
|
-const sharedValueStore = useSharedValueStore();
|
|
|
-const sharedValue = computed(() => sharedValueStore.sharedValue);
|
|
|
|
|
|
// 获取列表
|
|
|
async function fetchPageListData(queryInfo: any = {}) {
|
|
|
- loading.value = true;
|
|
|
- // const pageNumber = pageNum.value;
|
|
|
- // const pageSizeValue = pageSize.value;
|
|
|
- // 2.发生网络请求
|
|
|
- await systemStore
|
|
|
- .getPageListDataAction(props.contentConfig.pageName, {
|
|
|
- pageNum: systemStore.pageInfo.pageNum,
|
|
|
- pageSize: systemStore.pageInfo.pageSize,
|
|
|
- userId: userStore,
|
|
|
- status: props.contentConfig.status,
|
|
|
- createUser: props.contentConfig.createUser,
|
|
|
- oneself: props.contentConfig.oneself,
|
|
|
- ...queryInfo,
|
|
|
- ...props.contentConfig.pageListParams,
|
|
|
- })
|
|
|
- .then(res => {
|
|
|
- loading.value = false;
|
|
|
- });
|
|
|
+ loading.value = true;
|
|
|
+ await systemStore
|
|
|
+ .getPageListDataAction(props.contentConfig.pageName, {
|
|
|
+ pageNum: systemStore.pageInfo.pageNum,
|
|
|
+ pageSize: systemStore.pageInfo.pageSize,
|
|
|
+ userId: userStore,
|
|
|
+ status: props.contentConfig.status,
|
|
|
+ createUser: props.contentConfig.createUser,
|
|
|
+ oneself: props.contentConfig.oneself,
|
|
|
+ ...queryInfo,
|
|
|
+ ...props.contentConfig.pageListParams,
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ loading.value = false;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
fetchPageListData();
|
|
|
systemStore.$onAction(arg => {
|
|
|
- if (arg.name === 'newPageDataAction' || arg.name === 'deletePageDataAction') {
|
|
|
- // pageNum.value = 1;
|
|
|
- // pageSize.value = 10;
|
|
|
- systemStore.pageInfo.pageNum = 1;
|
|
|
- systemStore.pageInfo.pageSize = 50;
|
|
|
- }
|
|
|
+ if (arg.name === 'newPageDataAction' || arg.name === 'deletePageDataAction') {
|
|
|
+ systemStore.pageInfo.pageNum = 1;
|
|
|
+ systemStore.pageInfo.pageSize = 50;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
-// 2.展示数据
|
|
|
const { pageList, pageTotalCount, resDate } = storeToRefs(systemStore);
|
|
|
-// 监听列表数据变化清空选择器
|
|
|
const multipleTableRef = ref();
|
|
|
let subtotal = ref(0 as any);
|
|
|
let subNumber = ref(0 as any);
|
|
@@ -225,182 +185,94 @@ const electricityTotalPrice = ref();
|
|
|
const gasTotalPrice = ref();
|
|
|
const waterTotalPrice = ref();
|
|
|
watch(
|
|
|
- () => resDate,
|
|
|
- (newValue: any) => {
|
|
|
- if (props.contentConfig?.energyConsumption === true) {
|
|
|
- if (props.contentConfig?.energyConsumptionType === false) {
|
|
|
- rowDate.value = newValue._object.resDate.otherEnergyList
|
|
|
- } else {
|
|
|
- electricityDosage.value = newValue._object.resDate.electricityDosage
|
|
|
- gasDosage.value = newValue._object.resDate.gasDosage
|
|
|
- waterDosage.value = newValue._object.resDate.waterDosage
|
|
|
- }
|
|
|
- } if (props.contentConfig?.energyMonery === true) {
|
|
|
- electricityTotalPrice.value = newValue._object.resDate.electricityDosage
|
|
|
- gasTotalPrice.value = newValue._object.resDate.gasDosage
|
|
|
- waterTotalPrice.value = newValue._object.resDate.waterDosage
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- { deep: true }
|
|
|
+ () => resDate,
|
|
|
+ (newValue: any) => {
|
|
|
+ if (props.contentConfig?.energyConsumption === true) {
|
|
|
+ if (props.contentConfig?.energyConsumptionType === false) {
|
|
|
+ rowDate.value = newValue._object.resDate.otherEnergyList;
|
|
|
+ } else {
|
|
|
+ electricityDosage.value = newValue._object.resDate.electricityDosage;
|
|
|
+ gasDosage.value = newValue._object.resDate.gasDosage;
|
|
|
+ waterDosage.value = newValue._object.resDate.waterDosage;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (props.contentConfig?.energyMonery === true) {
|
|
|
+ electricityTotalPrice.value = newValue._object.resDate.electricityDosage;
|
|
|
+ gasTotalPrice.value = newValue._object.resDate.gasDosage;
|
|
|
+ waterTotalPrice.value = newValue._object.resDate.waterDosage;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { deep: true }
|
|
|
);
|
|
|
watch(
|
|
|
- () => pageList,
|
|
|
- (newValue: any) => {
|
|
|
- if (clearFlag.value) {
|
|
|
- multipleTableRef.value!.clearSelection();
|
|
|
- subtotal.value = 0;
|
|
|
- subNumber.value = 0;
|
|
|
- }
|
|
|
- // 控制是否清空所选项
|
|
|
- clearFlag.value = true;
|
|
|
- // pageList.value.forEach((item: any) => {
|
|
|
- // subtotal.value += item.moneyTotal;
|
|
|
- // });
|
|
|
- // subtotal.value = Number(subtotal.value.toFixed(2)).toFixed(2);
|
|
|
- },
|
|
|
- { deep: true }
|
|
|
+ () => pageList,
|
|
|
+ (newValue: any) => {
|
|
|
+ if (clearFlag.value) {
|
|
|
+ multipleTableRef.value!.clearSelection();
|
|
|
+ subtotal.value = 0;
|
|
|
+ subNumber.value = 0;
|
|
|
+ }
|
|
|
+ clearFlag.value = true;
|
|
|
+ },
|
|
|
+ { deep: true }
|
|
|
);
|
|
|
// 处理选中状态
|
|
|
const selectedItems = ref([] as any);
|
|
|
|
|
|
const getRowKeys = row => {
|
|
|
- return row.checkId;
|
|
|
-};
|
|
|
-
|
|
|
-const echoWay = async () => {
|
|
|
- await pageList.value.forEach((row: any) => {
|
|
|
- if (selectedItems.value!.indexOf(row.checkId) >= 0) {
|
|
|
- multipleTableRef.value!.toggleRowSelection(row, true);
|
|
|
- }
|
|
|
- });
|
|
|
- // console.log(selectedItems.value);
|
|
|
+ return row.checkId;
|
|
|
};
|
|
|
|
|
|
// 清空多选
|
|
|
function clearSelection() {
|
|
|
- if (pageList) {
|
|
|
- multipleTableRef.value!.clearSelection();
|
|
|
- }
|
|
|
+ if (pageList) {
|
|
|
+ multipleTableRef.value!.clearSelection();
|
|
|
+ }
|
|
|
}
|
|
|
-const water = ref();
|
|
|
-const electricity = ref();
|
|
|
-const gas = ref();
|
|
|
// 多选框切换
|
|
|
function handleSelectionChange(e: any) {
|
|
|
- emit('handleSelect', e);
|
|
|
- if (props.contentConfig.energyMonery) {
|
|
|
- water.value = 0;
|
|
|
- electricity.value = 0;
|
|
|
- gas.value = 0;
|
|
|
- e.forEach(item => {
|
|
|
- if (item.energyType == '水') {
|
|
|
- let waters = item.moneyTotal * 100; // 将金额转换为分;
|
|
|
- water.value += waters;
|
|
|
- } else if (item.energyType == '电') {
|
|
|
- let electricitys = item.moneyTotal * 100; // 将金额转换为分;
|
|
|
- electricity.value += electricitys;
|
|
|
- } else if (item.energyType == '气') {
|
|
|
- let gase = item.moneyTotal * 100; // 将金额转换为分;
|
|
|
- gas.value += gase;
|
|
|
- }
|
|
|
- });
|
|
|
- water.value = (water.value / 100).toFixed(2);
|
|
|
- electricity.value = (electricity.value / 100).toFixed(2);
|
|
|
- gas.value = (gas.value / 100).toFixed(2);
|
|
|
- console.log('zheshi', water.value, electricity.value, gas.value);
|
|
|
-
|
|
|
- } else {
|
|
|
- subtotal.value = 0;
|
|
|
- subNumber.value = 0;
|
|
|
- selectedItems.value = [];
|
|
|
- e.forEach(item => {
|
|
|
- subNumber.value += item.moneyTotal;
|
|
|
- let moneyTotalInCents = item.moneyTotal * 100; // 将金额转换为分
|
|
|
- subtotal.value += moneyTotalInCents;
|
|
|
- selectedItems.value.push(item.checkId);
|
|
|
- });
|
|
|
- subtotal.value = (subtotal.value / 100).toFixed(2);
|
|
|
- // selectedItems.value = e.map(item => {
|
|
|
- // console.log(item.moneyTotal);
|
|
|
- // subtotal.value += item.moneyTotal;
|
|
|
- // return item.checkId;
|
|
|
- // });
|
|
|
- // console.log(subtotal.value);
|
|
|
- }
|
|
|
-
|
|
|
+ emit('handleSelect', e);
|
|
|
}
|
|
|
|
|
|
-// 页码变化
|
|
|
-async function onPageSizeChange(size: number) {
|
|
|
- // 每页条数改变函数
|
|
|
- // pageSize.value = size;
|
|
|
- // pageNum.value = 1;
|
|
|
- systemStore.pageInfo.pageSize = size;
|
|
|
- systemStore.pageInfo.pageNum = 1;
|
|
|
- // 控制是否清空所选项
|
|
|
- clearFlag.value = false;
|
|
|
- await fetchPageListData();
|
|
|
- // 恢复选中状态
|
|
|
- // await echoWay();
|
|
|
-}
|
|
|
-async function onPageChange(current: number) {
|
|
|
- // 页码改变函数
|
|
|
- systemStore.pageInfo.pageNum = current;
|
|
|
- systemStore.pageInfo.pageNum = current;
|
|
|
- // 控制是否清空所选项
|
|
|
- clearFlag.value = false;
|
|
|
- await fetchPageListData();
|
|
|
- // 恢复选中状态
|
|
|
- // await echoWay();
|
|
|
-}
|
|
|
-watch(
|
|
|
- () => sharedValueStore.pageNum,
|
|
|
- (newVal, oldVal) => {
|
|
|
- // pageNum.value = 1;
|
|
|
- systemStore.pageInfo.pageNum = 1;
|
|
|
- },
|
|
|
- { deep: true }
|
|
|
-);
|
|
|
// 暴露函数
|
|
|
defineExpose({
|
|
|
- clearSelection,
|
|
|
- fetchPageListData,
|
|
|
+ clearSelection,
|
|
|
+ fetchPageListData,
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
.contenBox {
|
|
|
- padding: 15px 20px 20px 20px;
|
|
|
- margin-top: 20px;
|
|
|
- background-color: #fff;
|
|
|
+ padding: 15px 20px 20px 20px;
|
|
|
+ margin-top: 20px;
|
|
|
+ background-color: #fff;
|
|
|
|
|
|
- .table-action {
|
|
|
- margin-bottom: 15px;
|
|
|
+ .table-action {
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
|
- button {
|
|
|
- margin-right: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
+ button {
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .ivu-table-header thead tr th {
|
|
|
- background-color: #f0f9fe;
|
|
|
- }
|
|
|
+ .ivu-table-header thead tr th {
|
|
|
+ background-color: #f0f9fe;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.customList {
|
|
|
- color: #606266;
|
|
|
- font-weight: 700;
|
|
|
+ color: #606266;
|
|
|
+ font-weight: 700;
|
|
|
}
|
|
|
|
|
|
.itemName {
|
|
|
- margin: 0 10px 5px 10px;
|
|
|
+ margin: 0 10px 5px 10px;
|
|
|
}
|
|
|
|
|
|
.energyClass {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-wrap: wrap;
|
|
|
- flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ flex: 1;
|
|
|
}
|
|
|
</style>
|