oil-station/fuintAdmin/src/views/oilConfig/oilPrice/index.vue

931 lines
30 KiB
Vue
Raw Normal View History

2023-10-11 18:34:24 +08:00
<template>
<div class="app-container">
<el-card style="margin-bottom: 20px">
<div slot="header" class="clearfix">
<span>油价配置</span>
</div>
2023-11-25 18:08:15 +08:00
<el-button type="primary" @click="oilTypeMethods(1)">新增油号</el-button>
2023-10-11 18:34:24 +08:00
<div class="top-box">
<!-- 循环-->
2024-07-05 14:11:26 +08:00
<div class="oil-box" :style=" 'background:'+ colorList[index] " v-for="(item,index) in oilNumberList " :key="index" >
2023-10-13 18:14:19 +08:00
<div v-if="item.state == '启用'" class="top-icon">
<div>{{item.state}}</div>
2023-10-11 18:34:24 +08:00
</div>
2023-10-13 18:14:19 +08:00
<div v-if="item.state == '禁用'" class="top-icon2">
<div>{{item.state}}</div>
</div>
<div class="box-icon"><i class="el-icon-edit" style="color:#409EFF" @click="dialogFormNumberEdit = true,oilTypeMethods(),openOilNumberEdit(item)"></i></div>
<div class="box-title"> {{item.allOil}} </div>
2023-10-11 18:34:24 +08:00
<div class="between-box">
<div>油站价:</div>
2023-10-13 18:14:19 +08:00
<div><span class="jiacu">{{ item.oilPrice }}</span>/{{item.unit}}</div>
2023-10-11 18:34:24 +08:00
</div>
<div class="between-box">
<div>国标价:</div>
2023-10-13 18:14:19 +08:00
<div> <span class="jiacu">{{ item.gbPrice }}</span>/{{item.unit}}</div>
2023-10-11 18:34:24 +08:00
</div>
<div class="between-box">
<div>最后更新时间:</div>
2023-10-12 18:44:46 +08:00
<div> {{item.updateTime}} </div>
2023-10-11 18:34:24 +08:00
</div>
</div>
</div>
</el-card>
2023-10-31 18:16:38 +08:00
2023-10-11 18:34:24 +08:00
<el-card style="margin-bottom: 20px">
<div slot="header" class="clearfix">
<span>预设油价记录</span>
</div>
2023-10-12 18:44:46 +08:00
<el-button type="success" @click = "dialogFormPricesAdd = true, addOilPresePrices()">新增预设油价</el-button>
2023-10-11 18:34:24 +08:00
<div class="table-box">
<el-table
2023-10-12 18:44:46 +08:00
:data="oilPresetPricesList"
2023-10-11 18:34:24 +08:00
style="width: auto">
<el-table-column
2024-07-03 15:01:14 +08:00
type="index"
label="序号"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
width="100">
</el-table-column>
2023-10-13 18:14:19 +08:00
<!-- prop="presetGbPrice"-->
2023-10-12 18:44:46 +08:00
<el-table-column
2023-10-13 18:14:19 +08:00
prop="oilNameT"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="预设油号"
>
2023-10-11 18:34:24 +08:00
</el-table-column>
2024-01-27 17:51:20 +08:00
<el-table-column label="当前数据" style="width: 100%" align="center"
>
2023-10-11 18:34:24 +08:00
<el-table-column
2023-10-12 18:44:46 +08:00
prop="currentPetrolPrices"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="油站价"
>
2023-10-11 18:34:24 +08:00
</el-table-column>
2023-10-12 18:44:46 +08:00
<el-table-column
2024-01-27 17:51:20 +08:00
prop="currentGbPrice"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="国标价"
>
2023-10-11 18:34:24 +08:00
</el-table-column>
</el-table-column>
2024-01-27 17:51:20 +08:00
<el-table-column label="预设新数据" style="width: 100%" align="center"
>
2023-10-12 18:44:46 +08:00
<el-table-column
2024-01-27 17:51:20 +08:00
prop="presetOilPrices"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="油站价"
>
</el-table-column>
<el-table-column
prop="presetGbPrice"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="国标价"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="effectiveTime"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="预设时间"
>
</el-table-column>
2023-10-13 18:14:19 +08:00
<!-- <el-table-column-->
<!-- prop="state"-->
<!-- label="处理状态"-->
<!-- >-->
2024-01-09 12:02:40 +08:00
<el-table-column label="状态" align="center">
2023-10-13 18:14:19 +08:00
<template slot-scope="scope">
2024-01-09 12:02:40 +08:00
<!-- <dict-tag :options="dict.type.jobState" :value="scope.row.state"/>-->
<el-tag v-if="scope.row.state == 'occur'" type="success">已生效</el-tag>
<el-tag v-else-if="scope.row.state == 'wait'">等待中</el-tag>
<el-tag v-else type="info">已失效</el-tag>
2023-10-13 18:14:19 +08:00
</template>
</el-table-column>
2023-10-12 18:44:46 +08:00
<el-table-column
prop="createTime"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="创建时间"
>
</el-table-column>
<el-table-column
fixed="right"
2024-01-09 12:02:40 +08:00
align="center"
2023-10-12 18:44:46 +08:00
label="操作"
width="120">
<template slot-scope="scope">
2024-01-09 12:02:40 +08:00
<el-button v-if="scope.row.state == 'wait'"
2023-10-17 09:03:36 +08:00
@click.native.prevent="deleteRow(scope.$index, scope.row)"
2023-10-12 18:44:46 +08:00
type="text"
size="small">
2023-10-13 18:14:19 +08:00
停止
2023-10-12 18:44:46 +08:00
</el-button>
2024-01-09 12:02:40 +08:00
<span v-else> -- </span>
2023-10-12 18:44:46 +08:00
</template>
</el-table-column>
2023-10-11 18:34:24 +08:00
</el-table>
</div>
</el-card>
2023-10-12 18:44:46 +08:00
2023-10-25 18:19:09 +08:00
<el-dialog title="添加" :visible.sync="dialogFormVisible" :close-on-click-modal="false">
2023-10-24 19:07:56 +08:00
<el-form ref="oilNumberF" :model="oilNumber" :rules="rules">
2024-02-01 11:31:55 +08:00
<el-form-item label="油品类型" prop="oilType" label-width="130px">
2023-11-25 18:08:15 +08:00
<el-radio-group v-model="oilNumber.oilType" @change="oilTypeClick(oilNumber),oilTypeClick2()">
2023-10-17 09:03:36 +08:00
<el-radio
v-for="dict in dict.type.oil_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
2023-10-11 18:34:24 +08:00
</el-radio-group>
</el-form-item>
2023-10-17 09:03:36 +08:00
<!-- <el-radio v-for="option in oilTypeList" :key="option.dictValue" :label="option.dictValue">-->
<!-- {{ option.dictLabel }}-->
<!-- </el-radio>-->
2023-10-13 18:14:19 +08:00
2023-10-11 18:34:24 +08:00
<el-row :gutter="24">
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="油品名称" prop="oilName" label-width="130px">
2023-11-25 18:08:15 +08:00
<el-select v-model="oilNumber.oilName" style="width: 217px" placeholder="请选择油品名称" @change="getSecondName()">
2023-10-12 18:44:46 +08:00
<el-option
v-for="option in oilNameList"
2023-10-13 18:14:19 +08:00
:key="option.id"
:label="option.oilName"
:value="option.id"
2023-10-12 18:44:46 +08:00
></el-option>
2023-10-11 18:34:24 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="计价单位" prop="unit" label-width="130px">
2023-10-17 09:03:36 +08:00
<el-select v-model="oilNumber.unit" style="width: 217px"
placeholder="请选择计价单位">
2023-10-12 18:44:46 +08:00
<el-option
v-for="option in receivingUnitList"
2023-10-13 18:14:19 +08:00
:key="option.value"
:label="option.label"
:value="option.label"
:disabled="option.dis"
2023-10-12 18:44:46 +08:00
></el-option>
2023-10-11 18:34:24 +08:00
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="当前油品售出价" prop="oilPrice" label-width="130px">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilNumber.oilPrice" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilNumber.unit?"/"+oilNumber.unit:''}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-11 18:34:24 +08:00
</el-form-item>
</el-col>
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="当前国标价格" prop="gbPrice" label-width="130px">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilNumber.gbPrice" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilNumber.unit?"/"+oilNumber.unit:''}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-11 18:34:24 +08:00
</el-form-item>
</el-col>
</el-row>
2024-02-01 11:31:55 +08:00
<!-- <el-form-item label="收款单位" prop="receivingUnits">-->
<!-- <el-radio-group v-model="oilNumber.receivingUnits">-->
<!-- <el-radio label="元" ></el-radio>-->
<!-- <el-radio label="计价单位"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- <div class="hui-seiz">点击油品输入的计算单位可默认元或计价单位(L//kg),页面也可自行切换</div>-->
<el-form-item label="状态" prop="state" label-width="130px">
2023-10-12 18:44:46 +08:00
<el-radio-group v-model="oilNumber.state">
2023-10-17 09:03:36 +08:00
<el-radio
v-for="dict in dict.type.zhzt"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
2023-10-11 18:34:24 +08:00
</el-radio-group>
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="排序" label-width="130px">
2023-10-13 18:14:19 +08:00
<el-input-number v-model="oilNumber.sort" controls-position="right" @change="handleChange" :min="1" :max="10"></el-input-number>
2023-10-11 18:34:24 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="备注" label-width="130px">
2023-10-12 18:44:46 +08:00
<el-input type="textarea" v-model="oilNumber.remark"></el-input>
2023-10-11 18:34:24 +08:00
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
2023-10-24 19:07:56 +08:00
<el-button type="primary" @click="insertOilNumberin()"> </el-button>
2023-10-11 18:34:24 +08:00
</div>
</el-dialog>
2023-10-12 18:44:46 +08:00
2023-10-25 18:19:09 +08:00
<el-dialog title="修改" :visible.sync="dialogFormNumberEdit" :close-on-click-modal="false">
2023-10-17 09:03:36 +08:00
<el-form ref="form" :model="oilNumber" :rules="rules">
<el-form-item label="油品类型" prop="oilType">
2023-11-25 18:08:15 +08:00
<el-radio-group v-model="oilNumber.oilType" @change="oilTypeClick(oilNumber.oilType),oilTypeClick2()">
2023-10-17 09:03:36 +08:00
<el-radio
v-for="dict in dict.type.oil_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
2023-10-12 18:44:46 +08:00
</el-radio-group>
</el-form-item>
<el-row :gutter="24">
<el-col :span="12">
2023-10-17 09:03:36 +08:00
<el-form-item label="油品名称" prop="oilName">
2023-10-24 19:07:56 +08:00
<el-select v-model="oilNumber.oilNameT" style="width: 217px" placeholder="请选择油品名称" @change="changeOilName">
2023-10-12 18:44:46 +08:00
<el-option
v-for="option in oilNameList"
2023-10-13 18:14:19 +08:00
:key="option.id"
:label="option.oilName"
:value="option.id"
2023-10-12 18:44:46 +08:00
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
2023-10-17 09:03:36 +08:00
<el-form-item label="计价单位" prop="unit">
2023-10-13 18:14:19 +08:00
<el-select v-model="oilNumber.unit" style="width: 217px" placeholder="请选择活动区域">
2023-10-12 18:44:46 +08:00
<el-option
v-for="option in receivingUnitList"
2023-10-13 18:14:19 +08:00
:key="option.value"
:label="option.label"
:value="option.label"
:disabled="option.dis"
2023-10-12 18:44:46 +08:00
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- -->
<el-row :gutter="24">
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="当前油品售出价" prop="oilPrice">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilNumber.oilPrice" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilNumber.unit?"/"+oilNumber.unit:''}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
</el-col>
<el-col :span="12">
2024-02-01 11:31:55 +08:00
<el-form-item label="当前国标价" prop="gbPrice">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilNumber.gbPrice" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilNumber.unit?"/"+oilNumber.unit:''}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
</el-col>
</el-row>
2024-02-01 11:31:55 +08:00
<!-- <el-form-item label="收款单位" prop="receivingUnits">-->
<!-- <el-radio-group v-model="oilNumber.receivingUnits">-->
<!-- <el-radio label="元"></el-radio>-->
<!-- <el-radio label="计价单位"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- <div class="hui-seiz">点击油品输入的计算单位可默认元或计价单位(L//kg),页面也可自行切换</div>-->
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="状态" prop="state">
<el-radio-group v-model="oilNumber.state">
<el-radio
v-for="dict in dict.type.zhzt"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<!-- <el-radio label="启用"></el-radio>-->
<!-- <el-radio label="禁用"></el-radio>-->
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
2023-10-12 18:44:46 +08:00
<el-form-item label="排序">
2024-02-01 11:31:55 +08:00
<el-input-number v-model="oilNumber.sort" controls-position="right" @change="handleChange" :min="1" :max="10" style="width: 217px"></el-input-number>
2023-10-12 18:44:46 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
</el-col>
</el-row>
2023-10-12 18:44:46 +08:00
<el-form-item label="备注">
2023-10-17 09:03:36 +08:00
<el-input type="textarea" v-model="oilNumber.remark" ></el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormNumberEdit = false"> </el-button>
2023-10-17 09:03:36 +08:00
<el-button type="primary" @click=" updateOilNumberin()"> </el-button>
2023-10-12 18:44:46 +08:00
</div>
</el-dialog>
2024-06-11 14:32:22 +08:00
<el-dialog title="添加预设" :visible.sync="dialogFormPricesAdd" width="500px" :close-on-click-modal="false">
2023-10-24 19:07:56 +08:00
<el-form ref="priForm" :model="oilPresetPrices" label-width="100px" :rules="oilPresetPricesRules">
2024-02-01 11:31:55 +08:00
<el-form-item label="预设油号" prop="numberId" label-width="120px">
2023-10-24 19:07:56 +08:00
<el-select v-model="oilPresetPrices.numberId" placeholder="请选择油号" @change="oilTypeClickByPrice()">
2023-10-12 18:44:46 +08:00
<el-option
v-for="option in selectOilTypeByPrice"
:key="option.numberId"
2023-10-13 18:14:19 +08:00
:label="option.oilType +' '+option.oilName"
:value="option.numberId"
2023-10-12 18:44:46 +08:00
></el-option>
</el-select>
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="当前油品售出价" label-width="120px">
2024-01-27 17:51:20 +08:00
<el-input v-model="oilPresetPrices.currentPetrolPrices " style="width: 217px" readonly disabled>
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilPresetPrices.unit?"/"+oilPresetPrices.unit:oilPresetPrices.unit}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="预设油站售出价" prop="presetOilPrices" label-width="120px">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilPresetPrices.presetOilPrices" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilPresetPrices.unit?"/"+oilPresetPrices.unit:oilPresetPrices.unit}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="当前国标价" label-width="120px">
2024-01-27 17:51:20 +08:00
<el-input v-model="oilPresetPrices.currentGbPrice" style="width: 217px" readonly disabled>
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilPresetPrices.unit?"/"+oilPresetPrices.unit:oilPresetPrices.unit}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="预设国标价" prop="presetGbPrice" label-width="120px">
2024-01-08 10:07:07 +08:00
<el-input v-model="oilPresetPrices.presetGbPrice" pattern="^\d+(\.\d+)?$" style="width: 217px">
2024-02-01 11:31:55 +08:00
<template slot="append">{{oilPresetPrices.unit?"/"+oilPresetPrices.unit:oilPresetPrices.unit}}</template>
2023-10-17 09:03:36 +08:00
</el-input>
2023-10-12 18:44:46 +08:00
</el-form-item>
2024-02-01 11:31:55 +08:00
<el-form-item label="活动时间" prop="effectiveTime" label-width="120px">
2023-10-12 18:44:46 +08:00
<el-date-picker
2023-10-13 18:14:19 +08:00
v-model="oilPresetPrices.effectiveTime"
2023-10-12 18:44:46 +08:00
type="datetime"
placeholder="选择日期时间"
2023-10-17 09:03:36 +08:00
style="width: 217px"
2024-01-09 12:02:40 +08:00
:default-value="defaultDateTime"
:picker-options="pickerOptions"
2023-10-17 09:03:36 +08:00
value-format="yyyy-MM-dd HH:mm:ss">
2023-10-12 18:44:46 +08:00
</el-date-picker>
</el-form-item>
2024-02-01 11:31:55 +08:00
<!-- <div class="hui-seiz">如生效时间与当前时间间隔小于1分钟,当前油价将立即生效</div>-->
2023-10-12 18:44:46 +08:00
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormPricesAdd = false"> </el-button>
2023-10-17 09:03:36 +08:00
<el-button type="primary" @click="insertOilPresePrices()"> </el-button>
2023-10-12 18:44:46 +08:00
</div>
</el-dialog>
2023-10-11 18:34:24 +08:00
</div>
</template>
<script>
2023-10-13 18:14:19 +08:00
import {
getOilNumberList,
dictSelect,
insertOilNumber,
updateOilNumber,
getOilPresetList,
getOilNameApi,
getAllOilListApi,
2023-10-17 09:03:36 +08:00
getOilNameListApi, insertOilPresePricesApi, stopJobApi
2023-10-13 18:14:19 +08:00
} from "@/api/oilPrice";
2023-10-11 18:34:24 +08:00
export default {
name: 'index',
2023-10-17 09:03:36 +08:00
dicts: ['jobState','oil_type','zhzt'],
2023-10-11 18:34:24 +08:00
data() {
2023-10-25 18:19:09 +08:00
var valiNumberPass = (rule, value, callback) => {//包含小数的数字
2024-01-08 10:07:07 +08:00
let reg = /^[+-]?(0|([1-9]\d*))(\.\d{1,2})?$/;
2023-10-25 18:19:09 +08:00
if (value === '') {
callback(new Error('请输入内容'));
} else if (!reg.test(value)) {
2024-01-08 10:07:07 +08:00
callback(new Error('请输入数字,最多保留两位小数'));
2023-10-25 18:19:09 +08:00
} else {
callback();
}
};
2023-10-11 18:34:24 +08:00
return {
2024-01-09 12:02:40 +08:00
defaultDateTime: new Date(), // 默认时间
pickerOptions: {
disabledDate(time) {
// 限制选择范围为当前时间之后
return time.getTime() < Date.now();
},
},
2023-10-17 09:03:36 +08:00
oilPresetPricesRules: {
2023-10-24 19:07:56 +08:00
numberId:[
2023-10-17 09:03:36 +08:00
{ required: true, message: '请选择油品类型', trigger: 'change' }
],
presetOilPrices: [
2023-10-25 18:19:09 +08:00
{ required: true, validator:valiNumberPass, trigger: "blur" }
2023-10-17 09:03:36 +08:00
],
presetGbPrice: [
2023-10-25 18:19:09 +08:00
{ required: true, validator:valiNumberPass, trigger: "blur" }
2023-10-17 09:03:36 +08:00
],
effectiveTime:[
2023-10-24 19:07:56 +08:00
{ required: true, message: '请选择日期', trigger: 'change' }
2023-10-17 09:03:36 +08:00
],
},
rules: {
oilType:[
{ required: true, message: '请选择油品类型', trigger: 'change' }
],
unit:[
2023-11-25 18:08:15 +08:00
{ required: true, message: '请选择单位', trigger: 'change' }
2023-10-17 09:03:36 +08:00
],
oilName: [
2023-11-25 18:08:15 +08:00
{ required: true, message: '请选择油品名称', trigger: 'change' }
2023-10-17 09:03:36 +08:00
],
oilPrice: [
2023-10-25 18:19:09 +08:00
{ required: true, validator:valiNumberPass, trigger: "blur" }
2023-10-17 09:03:36 +08:00
],
gbPrice: [
2023-10-25 18:19:09 +08:00
{ required: true, validator:valiNumberPass, trigger: "blur" }
2023-10-17 09:03:36 +08:00
],
state: [
2023-11-25 18:08:15 +08:00
{ required: true, message: '请选择状态', trigger: 'change' }
2023-10-17 09:03:36 +08:00
]
},
2023-10-12 18:44:46 +08:00
oilNumberList: [],
2023-10-13 18:14:19 +08:00
oilNumberList2: [],
2023-10-11 18:34:24 +08:00
num: 1,
2023-10-12 18:44:46 +08:00
dialogFormVisible: false, // 新增油价配置
dialogFormNumberEdit: false, // 修改油价配置
dialogFormPricesAdd: false, // 新增油价趋势
oilTypeList: [], // 油品类型
oilNameList: [], // 油品名称
receivingUnitList: [], // 计价单位
2023-10-13 18:14:19 +08:00
receivingUnitCN: [],
receivingUnitEN: [],
2024-07-05 14:11:26 +08:00
colorList:["#EAF9F6","#FFF1E8","#EDF3FF","#FFF8E6"],
2023-10-12 18:44:46 +08:00
oilNumber:{
2023-11-25 18:08:15 +08:00
oilType: '汽油',
2023-10-12 18:44:46 +08:00
oilName: '',
2024-01-02 14:24:47 +08:00
numberId: '',
2023-10-12 18:44:46 +08:00
oilPrice: '',
gbPrice: '',
2023-11-25 18:08:15 +08:00
receivingUnits: '元',
2023-10-12 18:44:46 +08:00
createTime: '',
updateTime: '',
2023-11-25 18:08:15 +08:00
state: '启用',
2023-10-12 18:44:46 +08:00
sort: '',
remark: '',
ifDelete: '',
2023-10-13 18:14:19 +08:00
allOil:'',
oilTypeT: '',
oilNameT: '',
unit:'', // 计价单位
2023-10-12 18:44:46 +08:00
},
oilPresetPricesList:[],
2023-10-13 18:14:19 +08:00
AllOilList:[],
2023-10-12 18:44:46 +08:00
selectOilTypeByPrice: [],
oilPresetPrices: {
oilType:'',
2023-10-17 09:03:36 +08:00
currentPetrolPrices:null ,
presetOilPrices:null ,
currentGbPrice:null ,
presetGbPrice:null ,
2023-10-12 18:44:46 +08:00
createTime:'',
2023-10-13 18:14:19 +08:00
updateTime:'',
2024-01-09 12:02:40 +08:00
// effectiveTime:new date(),
effectiveTime:'',
2023-10-12 18:44:46 +08:00
ifDelete:'',
2023-10-17 09:03:36 +08:00
numberId:'',
2023-10-12 18:44:46 +08:00
},
2023-10-11 18:34:24 +08:00
form: {
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
formLabelWidth: '100px'
}
},
2023-10-13 18:14:19 +08:00
async created() {
try {
await this.getList();
await this.getAllOilList();
await this.getOilPresetListin();
} catch (error) {
console.error(error);
}
2023-10-11 18:34:24 +08:00
},
mounted() {
},
2024-01-08 10:07:07 +08:00
methods: {
2023-10-13 18:14:19 +08:00
getStatusText(data) {
if (data == 1) {
return "停止"
} else {
return "启用"
}
},
2023-10-11 18:34:24 +08:00
handleChange(value) {
2024-01-08 10:07:07 +08:00
console.log("this.oilNumber", this.oilNumber);
2023-10-11 18:34:24 +08:00
console.log(value);
2023-10-12 18:44:46 +08:00
},
2023-10-13 18:14:19 +08:00
// 获取数据
2023-10-12 18:44:46 +08:00
getList() {
2023-10-13 18:14:19 +08:00
return new Promise(async (resolve, reject) => {
try {
const response = await getOilNumberList();
this.oilNumberList2 = response.data.records;
await this.getAllOilList();
resolve();
} catch (error) {
reject(error);
}
2023-10-12 18:44:46 +08:00
});
},
2023-10-13 18:14:19 +08:00
async getAllOilList() {
try {
const response = await getAllOilListApi();
const oilList = response.data;
this.AllOilList = oilList
this.oilNumberList = this.oilNumberList2
2023-10-17 09:03:36 +08:00
2023-10-13 18:14:19 +08:00
this.oilNumberList.forEach(oilNumber => {
oilList.forEach(oil => {
if (parseInt(oilNumber.oilName) === oil.id) {
oilNumber.allOil = oil.oilType + " " + oil.oilName;
oilNumber.oilTypeT = oil.oilType;
oilNumber.oilNameT = oil.oilName;
}
});
});
} catch (error) {
// Handle error here if needed
}
},
2023-11-25 18:08:15 +08:00
res() {
2024-01-08 10:07:07 +08:00
this.oilNumber = {
2023-11-25 18:08:15 +08:00
oilType: '汽油',
oilName: '',
oilPrice: '',
gbPrice: '',
receivingUnits: '元',
createTime: '',
updateTime: '',
state: '启用',
sort: '',
remark: '',
ifDelete: '',
2024-01-08 10:07:07 +08:00
allOil: '',
2023-11-25 18:08:15 +08:00
oilTypeT: '',
oilNameT: '',
2024-01-08 10:07:07 +08:00
unit: '', // 计价单位
2023-11-25 18:08:15 +08:00
}
},
2023-10-12 18:44:46 +08:00
2024-01-04 09:09:58 +08:00
// 编辑时使用
2023-10-17 09:03:36 +08:00
async oilTypeMethods(data) {
2023-11-25 18:08:15 +08:00
if (data === 1) {
// this.oilNumber = {}
this.dialogFormVisible = true
this.res()
this.getOilName('汽油')
// this.$refs.oilNumberF.rules = null;
// this.$refs.oilNumberF.resetFields();
// this.$refs.oilNumberF.resetFields();
// this.$refs.form.resetFields();
2023-10-17 09:03:36 +08:00
}
2023-10-13 18:14:19 +08:00
try {
await Promise.all([
this.getOilTypeList("oil_type"),
this.getOilTypeList("pricingUnitCN"),
2024-02-01 11:31:55 +08:00
// this.getOilTypeList("pricingUnitEN"),
2023-10-13 18:14:19 +08:00
]);
2024-01-04 09:09:58 +08:00
2023-10-13 18:14:19 +08:00
this.receivingUnitList = [];
2024-02-01 11:31:55 +08:00
// var cla1 = {
// label: "英文简称",
// value: -1,
// dis: true
// }
// this.receivingUnitList.push(cla1);
2023-10-13 18:14:19 +08:00
// 遍历 this.receivingUnitCN 对象的属性并添加到 receivingUnitList
for (const argumentsKey in this.receivingUnitCN) {
const value = this.receivingUnitCN[argumentsKey];
var cla = {
2024-01-08 10:07:07 +08:00
label: value.dictLabel,
value: value.dictValue,
dis: false
2023-10-13 18:14:19 +08:00
}
this.receivingUnitList.push(cla);
}
2024-02-01 11:31:55 +08:00
// var cla2 = {
// label: "中文简称",
// value: -2,
// dis: true
// }
// cla2 = {
// label: "中文简称",
// value: -3,
// dis: true
// }
// this.receivingUnitList.push(cla2);
//
// for (const argumentsKey in this.receivingUnitEN) {
// console.log("argumentsKey",argumentsKey)
// const value = this.receivingUnitEN[argumentsKey];
// var cla = {
// label: value.dictLabel,
// value: value.dictValue,
// dis: false
// }
// this.receivingUnitList.push(cla);
// }
2023-10-13 18:14:19 +08:00
} catch (error) {
console.error(error);
}
2023-11-25 18:08:15 +08:00
2024-01-02 14:24:47 +08:00
2023-10-12 18:44:46 +08:00
},
2023-10-13 18:14:19 +08:00
// 选择油品类型之后触发
2023-10-17 09:03:36 +08:00
oilTypeClick(data) {
2023-11-25 18:08:15 +08:00
// 清除油品名称
// this.oilNumber.oilName = ''
// this.oilNumber.oilNameT = ''
2023-10-12 18:44:46 +08:00
const selectedValue = this.oilNumber.oilType;
2024-01-02 14:24:47 +08:00
this.$forceUpdate();
2023-10-13 18:14:19 +08:00
// this.getOilTypeList(selectedValue)
this.getOilName(selectedValue)
2023-10-12 18:44:46 +08:00
},
2023-11-25 18:08:15 +08:00
oilTypeClick2() {
this.oilNumber.oilName = ''
this.oilNumber.oilNameT = ''
},
2023-10-12 18:44:46 +08:00
// 打开修改窗口
openOilNumberEdit(item) {
2023-11-25 18:08:15 +08:00
this.oilNumber = {};
let oil = item.allOil.split(' ');
2024-01-08 10:07:07 +08:00
console.log("oilNameT", item)
2024-01-04 09:09:58 +08:00
// item.oilNameT = oil[1];
// item.oilName = oil[1];
2023-11-25 18:08:15 +08:00
this.oilNumber = item;
2024-01-08 10:07:07 +08:00
this.$set(this.oilNumber, 'oilNameT', oil[1])
2023-11-25 18:08:15 +08:00
this.oilTypeClick(item);
2023-10-12 18:44:46 +08:00
},
// 添加
2024-01-08 10:07:07 +08:00
insertOilNumberin() {
2023-10-24 19:07:56 +08:00
this.$refs["oilNumberF"].validate(valid => {
if (valid) {
2024-01-08 10:07:07 +08:00
insertOilNumber(this.oilNumber).then(response => {
2023-10-24 19:07:56 +08:00
var list = response.data
2023-11-21 18:11:49 +08:00
if (list < 0) {
this.getList();
2023-10-24 19:07:56 +08:00
this.$modal.msgWarning("有重复油号");
2024-01-08 10:07:07 +08:00
} else if (list > 0) {
2023-10-24 19:07:56 +08:00
this.$modal.msgSuccess("新增油号成功");
this.dialogFormVisible = false,
this.getList();
}
});
}
})
2023-10-17 09:03:36 +08:00
2023-10-12 18:44:46 +08:00
},
2023-10-13 18:14:19 +08:00
2023-10-12 18:44:46 +08:00
// 修改
2024-01-08 10:07:07 +08:00
async updateOilNumberin() {
2023-10-17 09:03:36 +08:00
this.$refs["form"].validate(valid => {
2024-01-08 10:07:07 +08:00
if (valid) {
var this_ = this
updateOilNumber(this_.oilNumber).then(response => {
var list = response.data
if (list < 0) {
this.getList();
this.$modal.msgWarning("油品重复");
} else {
this.getList();
this.dialogFormNumberEdit = false
this.$modal.msgSuccess("修改成功");
}
2023-10-24 19:07:56 +08:00
2024-01-08 10:07:07 +08:00
}).catch(res => {
this.$modal.msgError("修改失败");
});
}
})
2023-10-12 18:44:46 +08:00
},
2023-10-13 18:14:19 +08:00
// 查询数组字典类型
async getOilTypeList(data) {
2024-01-04 09:09:58 +08:00
2023-10-12 18:44:46 +08:00
var this_ = this
2024-01-08 10:07:07 +08:00
await dictSelect(data).then(response => {
2023-10-12 18:44:46 +08:00
var list = response.data
if (data == "oil_type") {
this_.oilTypeList = list;
2024-01-08 10:07:07 +08:00
} else if (data == "pricingUnitCN") { //获取几家单位
2023-10-13 18:14:19 +08:00
this_.receivingUnitCN = list;
2024-02-01 11:31:55 +08:00
console.log("receivingUnitCN1",list)
2024-01-08 10:07:07 +08:00
} else if (data == "pricingUnitEN") { //获取几家单位
2023-10-13 18:14:19 +08:00
this_.receivingUnitEN = list;
2024-02-01 11:31:55 +08:00
console.log("receivingUnitCN2",list)
2024-01-08 10:07:07 +08:00
} else {
2023-10-12 18:44:46 +08:00
this_.oilNameList = list;
}
});
},
2023-10-13 18:14:19 +08:00
// 根据数据字典查询油类名称
getOilName(data) {
var OilNumber = {
oilType: data
}
var this_ = this
2024-01-08 10:07:07 +08:00
getOilNameApi(OilNumber).then(response => {
2023-10-13 18:14:19 +08:00
var list = response.data
this_.oilNameList = list;
});
},
2023-10-12 18:44:46 +08:00
2023-10-13 18:14:19 +08:00
/**
* 油价预设
2024-01-08 10:07:07 +08:00
*/
2023-10-13 18:14:19 +08:00
// 查询预设油号
2023-10-12 18:44:46 +08:00
getOilPresetListin() {
2024-01-08 10:07:07 +08:00
var this_ = this
getOilPresetList().then(response => {
2023-10-13 18:14:19 +08:00
this.oilPresetPricesList = response.data.records
this.oilPresetPricesList.forEach(oilNumber => {
this.AllOilList.forEach(oil => {
2023-10-24 19:07:56 +08:00
if (parseInt(oilNumber.oilType) == oil.id) {
2024-01-08 10:07:07 +08:00
oilNumber.oilNameT = oil.oilType + ' ' + oil.oilName;
2023-10-13 18:14:19 +08:00
}
});
});
2023-10-24 19:07:56 +08:00
2023-10-13 18:14:19 +08:00
});
},
// 油价预设查询列表
getOilNameList() {
2024-01-08 10:07:07 +08:00
var this_ = this
getOilNameListApi().then(response => {
2023-10-13 18:14:19 +08:00
var list = response.data
this_.selectOilTypeByPrice = list
2023-10-12 18:44:46 +08:00
});
},
// 新增油价预设
addOilPresePrices() {
2023-10-17 09:03:36 +08:00
this.oilPresetPrices = {}
2023-10-13 18:14:19 +08:00
// this.selectOilTypeByPrice = this.oilNumberList;
// 油价预设查询列表
this.getOilNameList();
},
2023-10-17 09:03:36 +08:00
// 添加youjia1
2024-01-08 10:07:07 +08:00
insertOilPresePrices() {
2023-10-24 19:07:56 +08:00
this.$refs["priForm"].validate(valid => {
2023-10-17 09:03:36 +08:00
if (valid) {
this.dialogFormPricesAdd = false
insertOilPresePricesApi(this.oilPresetPrices).then(response => {
var list = response.data
this.getOilNameList();
2023-10-24 19:07:56 +08:00
this.getAllOilList();
2023-10-25 18:19:09 +08:00
this.getOilPresetListin();
2023-10-17 09:03:36 +08:00
});
}
2023-10-13 18:14:19 +08:00
});
},
// 更改状态
deleteRow(data1, data2) {
2024-01-08 10:07:07 +08:00
stopJobApi(data2).then(response => {
2023-10-24 19:07:56 +08:00
this.$modal.msgSuccess("停止成功");
2023-10-17 09:03:36 +08:00
this.getOilPresetListin();
2023-10-13 18:14:19 +08:00
2023-10-17 09:03:36 +08:00
});
2023-10-13 18:14:19 +08:00
2023-10-12 18:44:46 +08:00
},
// 新增油价预设
oilTypeClickByPrice() {
2023-10-24 19:07:56 +08:00
var count = this.oilPresetPrices.numberId;
2023-10-13 18:14:19 +08:00
this.selectOilTypeByPrice.forEach((oil) => {
if (oil.numberId == parseInt(count)) {
this.oilPresetPrices.currentPetrolPrices = oil.oilPrice;
this.oilPresetPrices.currentGbPrice = oil.gbPrice;
2023-10-17 09:03:36 +08:00
this.oilPresetPrices.numberId = oil.numberId;
2023-10-24 19:07:56 +08:00
this.oilPresetPrices.oilType = oil.id;
2024-02-01 11:31:55 +08:00
this.oilPresetPrices.unit = oil.unit;
2023-10-13 18:14:19 +08:00
}
});
2023-10-24 19:07:56 +08:00
},
changeOilName() {
this.oilNumber.oilName = this.oilNumber.oilNameT
2023-11-25 18:08:15 +08:00
},
2024-01-02 14:24:47 +08:00
2024-01-08 10:07:07 +08:00
getSecondName() {
2023-11-25 18:08:15 +08:00
this.$forceUpdate();
2024-01-08 10:07:07 +08:00
},
2023-10-11 18:34:24 +08:00
}
}
</script>
<style scoped>
.app-container{
width: 100%;
2023-10-24 19:07:56 +08:00
height: 100%;
2023-10-11 18:34:24 +08:00
background: #f6f8f9;
}
.top-box{
width: 100%;
box-sizing: border-box;
width: 100%;
display: flex;
flex-wrap: wrap;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both
}
.oil-box{
width: 24%;
box-sizing: border-box;
padding: 15px;
background: #f9f9f9;
border-radius: 8px;
margin-right: 15px;
margin-top: 10px;
font-size: 14px;
position: relative;
overflow: hidden;
}
.between-box{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 10px auto;
}
.box-icon{
width: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
}
.box-title{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
font-weight: bold;
}
.jiacu{
font-weight: bold;
}
.top-icon{
position: absolute;
top: 0px;
left: 0px;
background-color: #e1ecfc;
padding: 3px 7px;
color: #409eff;
font-size: 13px;
border-bottom-right-radius: 6px;
}
2023-10-13 18:14:19 +08:00
.top-icon2{
position: absolute;
top: 0px;
left: 0px;
background-color: #3f3f3f;
padding: 3px 7px;
color: #d9d9d9;
font-size: 13px;
border-bottom-right-radius: 6px;
}
2023-10-11 18:34:24 +08:00
.table-box{
width: 100%;
margin: 20px auto;
}
.hui-seiz{
margin-left:60px;
}
</style>