ustcyc
2025-01-08 e58b27d9b5b6b3d63267ca89d28ebe9d3363f94b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<template>
    <div class="page">
        <div class="form-card">
            <el-form :model="form" ref="queryRef" :inline="true" label-width="85px">
                <!-- <el-form-item label="有效周期">
                    <el-date-picker v-model="form.index1" type="daterange" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
                        placeholder="时间" style="width: 260px" unlink-panels />
                </el-form-item> -->
                <el-form-item label="能源品种">
                    <el-select v-model="form.energyType" placeholder="请选择能源品种" style="width: 100%">
                        <el-option v-for="dict in energyVarietiesList" :key="dict.enerclassid"
                            :label="dict.enerclassname" :value="dict.enerclassid" />
                    </el-select>
                </el-form-item>
                <el-form-item label="策略名称">
                    <el-input v-model="form.tacticsName" placeholder="请输入策略名称" />
                </el-form-item>
                <el-form-item label="策略编码">
                    <el-input v-model="form.tacticsNumber" placeholder="请输入策略编码" />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
                    <el-button icon="Refresh" @click="resetQuery">重置</el-button>
                </el-form-item>
            </el-form>
        </div>
        <div class="mt20 mb20 ml20">
            <el-button type="primary" icon="Plus" @click="handleAdd">新增</el-button>
        </div>
        <div class="table-box">
            <el-table :data="tableData" v-loading="loading" height="calc(100vh - 450px)">
                <el-table-column type="index" label="序号" align="center" width="100" />
                <el-table-column label="策略编码" prop="tacticsNumber" align="center" show-overflow-tooltip />
                <el-table-column label="策略名称" prop="tacticsName" align="center" show-overflow-tooltip />
                <el-table-column label="能源品种" prop="energyType" align="center" show-overflow-tooltip
                    :formatter="(row, column) => formatterLabel(energyVarietiesList, row.energyType)" />
                <el-table-column label="是否阶梯价格" prop="type" align="center" show-overflow-tooltip
                    :formatter="(row, column) => row.type == 0 ? '否' : '是'" />
                <el-table-column label="操作" width="220" align="center">
                    <template #default="scope">
                        <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row, scope.$index)">
                            编辑
                        </el-button>
                        <el-button link type="primary" icon="Delete" @click="handleDel(scope.row, scope.$index)">
                            删除
                        </el-button>
                        <el-button link type="primary" icon="DocumentCopy" @click="handleCopy(scope.row, scope.$index)">
                            复制
                        </el-button>
                    </template>
                </el-table-column>
            </el-table>
            <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
                v-model:limit="queryParams.pageSize" @pagination="getList" />
        </div>
        <EditModal ref="editModalRef" :energyVarietiesList='energyVarietiesList' @getList='getList' />
    </div>
</template>
<script setup>
import { unitPriceStrategyList, unitPriceStrategyDel } from '@/api/costManage/costManage.js'
const { proxy } = getCurrentInstance();
import EditModal from './components/EditModal'
import { listEnergyVarietiesList } from "@/api/modelConfiguration/energyVarieties";
const energyVarietiesList = ref([]);
 
getEnergyVarietiesList()
let loading = ref(false);
let tableData = ref([{}]);
let editModalRef = ref()
let form = ref({
    // index1: [proxy.dayjs().startOf('year').format("YYYY-MM-DD"), proxy.dayjs().endOf('year').format("YYYY-MM-DD")],
    energyType: null,
    tacticsName: null,
    tacticsNumber: null
})
function getEnergyVarietiesList() {
    listEnergyVarietiesList().then((res) => {
        energyVarietiesList.value = res.data;
        form.value.energyType = res.data[0].enerclassid
 
    });
}
let queryParams = ref({
    pageNum: 1,
    pageSize: 10,
})
let total = ref(0)
getList()
//获取列表
function getList() {
    loading.value = true
    unitPriceStrategyList({ ...queryParams.value, ...form.value }).then(res => {
        tableData.value = res.rows
        total.value = res.total
        loading.value = false
    })
}
function handleAdd(row) {
    if (editModalRef.value) {
        editModalRef.value.handleOpen(row, true)
    }
}
function handleQuery() {
    queryParams.value.pageNum = 1
    getList()
}
function resetQuery() {
    form.value = {
        // index1: [proxy.dayjs().startOf('year').format("YYYY-MM-DD"), proxy.dayjs().endOf('year').format("YYYY-MM-DD")],
        energyType: null,
        tacticsName: null,
        tacticsNumber: null
    }
    queryParams.value.pageNum = 1
    getList()
}
 
function handleDel(row) {
    proxy.$modal
        .confirm('是否确认删除时间为"' + row.tacticsName + '"的数据项?')
        .then(function () {
            return unitPriceStrategyDel(row.id);
        })
        .then(() => {
            resetQuery();
            proxy.$modal.msgSuccess("删除成功");
        })
        .catch(() => { });
}
 
function handleCopy(row) {
    if (editModalRef.value) {
        editModalRef.value.handleOpen(row, false)
    }
}
 
function formatterLabel(list, value) {
    let dict = list.find(item => item.enerclassid == value)
    return dict ? dict.enerclassname : ''
}
 
 
</script>
 
<style scoped lang="scss">
@import "@/assets/styles/page.scss";
</style>