oil-station/fuintAdmin/src/views/oilConfig/oilPrice/comp/addprice.vue
2024-11-01 11:05:55 +08:00

405 lines
13 KiB
Vue

<script>
import {
deleteOilPresePricesApi,
getAllOilListApi,
getOilNameListApi, getOilPresePricesApi,
getOilPresetList,
insertOilPresePricesApi,
stopJobApi, updateOilPresePricesApi
} from "@/api/oilPrice";
export default {
name: "addprice",
data() {
return {
defaultDateTime: new Date(), // 默认时间
pickerOptions: {
disabledDate(time) {
// 限制选择范围为当前时间之后
return time.getTime() < Date.now();
},
},
oilPresetPricesList: [],
AllOilList: [],
queryParams: {
pageNo: 1,
pageSize: 10,
},
title: '',
total: 0,
dialogFormPricesAdd: false,
oilPresetPrices: {
numberId: '',
presetOilPrices: '',
presetGbPrice: '',
effectiveTime: '',
unit: '',
oilNameT: '',
currentPetrolPrices: '',
currentGbPrice: '',
},
selectOilTypeByPrice: [],
oilPresetPricesRules: {
numberId: [
{required: true, message: "预设油品油号不能为空", trigger: "blur"},
],
presetOilPrices: [
{required: true, message: "预设油品挂牌价不能为空", trigger: "blur"},
],
presetGbPrice: [
{required: true, message: "预设油品国标价不能为空", trigger: "blur"},
],
effectiveTime: [
{required: true, message: "预设活动开始时间不能为空", trigger: "blur"},
],
}
}
},
async created() {
try {
await this.getAllOilList();
await this.getOilPresetListin();
} catch (error) {
console.error(error);
}
},
methods: {
async inittt() {
await this.getAllOilList();
await this.getOilPresetListin();
},
/**
* 油价预设
*/
// 查询预设油号
getOilPresetListin() {
var this_ = this
getOilPresetList(this.queryParams).then(response => {
this.oilPresetPricesList = response.data.records
this.total = response.data.total
this.oilPresetPricesList.forEach(oilNumber => {
this.AllOilList.forEach(oil => {
if (parseInt(oilNumber.oilType) == oil.id) {
oilNumber.oilNameT = oil.oilType + ' ' + oil.oilName;
}
});
});
});
},
async getAllOilList() {
try {
const response = await getAllOilListApi();
const oilList = response.data;
this.AllOilList = oilList
this.oilNumberList = this.oilNumberList2
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
}
},
// 油价预设查询列表
getOilNameList() {
var this_ = this
getOilNameListApi().then(response => {
var list = response.data
this_.selectOilTypeByPrice = list
});
},
// 新增油价预设
addOilPresePrices() {
this.dialogFormPricesAdd = true
this.oilPresetPrices = {}
// this.selectOilTypeByPrice = this.oilNumberList;
// 油价预设查询列表
this.getOilNameList();
},
// 新增油价预设
editRow(data) {
getOilPresePricesApi(data.presetId).then(res => {
this.dialogFormPricesAdd = true
this.oilPresetPrices = res.data
// 油价预设查询列表
this.getOilNameList();
})
},
// 添加youjia1
insertOilPresePrices() {
this.$refs["priForm"].validate(valid => {
if (valid) {
this.dialogFormPricesAdd = false
if (this.oilPresetPrices.presetId) {
updateOilPresePricesApi(this.oilPresetPrices).then(response => {
var list = response.data
this.getOilNameList();
this.getAllOilList();
this.getOilPresetListin();
});
} else {
insertOilPresePricesApi(this.oilPresetPrices).then(response => {
var list = response.data
this.getOilNameList();
this.getAllOilList();
this.getOilPresetListin();
});
}
}
});
},
// 更改状态
deleteRow(data1, data2) {
this.$confirm('是否停止本条数据,停止后无法恢复!', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
stopJobApi(data2).then(response => {
this.$modal.msgSuccess("停止成功");
this.getOilPresetListin();
});
}).catch(() => {});
},
// 更改状态
deleteOilPresePrices(data) {
this.$confirm('是否删除本条数据,删除后无法恢复!', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
deleteOilPresePricesApi(data.presetId).then(response => {
this.$modal.msgSuccess("删除成功");
this.getOilPresetListin();
});
}).catch(() => {});
},
// 新增油价预设
oilTypeClickByPrice() {
var count = this.oilPresetPrices.numberId;
this.selectOilTypeByPrice.forEach((oil) => {
if (oil.numberId == parseInt(count)) {
this.oilPresetPrices.currentPetrolPrices = oil.oilPrice;
this.oilPresetPrices.currentGbPrice = oil.gbPrice;
this.oilPresetPrices.numberId = oil.numberId;
this.oilPresetPrices.oilType = oil.id;
this.oilPresetPrices.unit = oil.unit;
}
});
}
},
}
</script>
<template>
<div>
<div class="card-change-box" style="margin-bottom: 20px">
<div style="display: flex; justify-content: space-between;margin-bottom: 10px">
<div style="display: flex;">
<div style="background-color: #FF9655;height: 22px;width: 4px;margin-right: 10px"></div>
<span>预设油价记录</span>
</div>
<div>
<el-button type="primary" @click="addOilPresePrices()"
>新增预设油价
</el-button>
</div>
</div>
<div class="table-box">
<el-table
:data="oilPresetPricesList"
style="width: auto">
<el-table-column
type="index"
label="序号"
align="center"
width="100">
</el-table-column>
<!-- prop="presetGbPrice"-->
<el-table-column
prop="oilNameT"
align="center"
label="预设油号"
>
</el-table-column>
<el-table-column label="当前数据" style="width: 100%" align="center"
>
<el-table-column
prop="currentPetrolPrices"
align="center"
label="挂牌价"
>
</el-table-column>
<el-table-column
prop="currentGbPrice"
align="center"
label="国标价"
>
</el-table-column>
</el-table-column>
<el-table-column label="预设新数据" style="width: 100%" align="center"
>
<el-table-column
prop="presetOilPrices"
align="center"
label="挂牌价"
>
</el-table-column>
<el-table-column
prop="presetGbPrice"
align="center"
label="国标价"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="effectiveTime"
align="center"
label="预设活动开始时间"
>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<div style="color: #009946" v-if="scope.row.state == 'occur'">已生效</div>
<div style="color: #00CAFF" v-else-if="scope.row.state == 'wait'">等待中</div>
<div style="color: #F44522" v-else>已失效</div>
</template>
</el-table-column>
<el-table-column
prop="realName"
align="center"
label="创建人"
>
</el-table-column>
<el-table-column
prop="createTime"
align="center"
label="创建时间"
>
</el-table-column>
<el-table-column
fixed="right"
align="center"
label="操作"
width="120">
<template slot-scope="scope">
<el-button v-if="scope.row.state == 'wait'"
@click.native.prevent="editRow(scope.row)"
type="text"
size="small">
修改
</el-button>
<el-button v-if="scope.row.state == 'wait'"
@click.native.prevent="deleteRow(scope.$index, scope.row)"
type="text"
size="small">
停止
</el-button>
<el-button v-if="scope.row.state == 'lose'"
@click.native.prevent="deleteOilPresePrices(scope.row)"
type="text"
size="small">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="inittt"
/>
</div>
</div>
<el-dialog center title="新增/修改预设油价" :visible.sync="dialogFormPricesAdd" width="30%" :close-on-click-modal="false">
<el-form ref="priForm" :model="oilPresetPrices" label-width="135px" :rules="oilPresetPricesRules">
<el-form-item label="预设油品油号" prop="numberId">
<el-select v-model="oilPresetPrices.numberId" placeholder="请选择油品名称" style="width: 100%"
@change="oilTypeClickByPrice()">
<el-option
v-for="option in selectOilTypeByPrice"
:key="option.numberId"
:label="option.oilType +' '+option.oilName"
:value="option.numberId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="当前油品挂牌价">
<el-input v-model="oilPresetPrices.currentPetrolPrices " readonly disabled>
<template slot="append">元{{ oilPresetPrices.unit ? "/" + oilPresetPrices.unit : oilPresetPrices.unit }}
</template>
</el-input>
</el-form-item>
<el-form-item label="预设油品挂牌价" prop="presetOilPrices">
<el-input v-model="oilPresetPrices.presetOilPrices" pattern="^\d+(\.\d+)?$">
<template slot="append">元{{ oilPresetPrices.unit ? "/" + oilPresetPrices.unit : oilPresetPrices.unit }}
</template>
</el-input>
</el-form-item>
<el-form-item label="当前油品国标价">
<el-input v-model="oilPresetPrices.currentGbPrice" readonly disabled>
<template slot="append">元{{ oilPresetPrices.unit ? "/" + oilPresetPrices.unit : oilPresetPrices.unit }}
</template>
</el-input>
</el-form-item>
<el-form-item label="预设油品国标价" prop="presetGbPrice">
<el-input v-model="oilPresetPrices.presetGbPrice" pattern="^\d+(\.\d+)?$">
<template slot="append">元{{ oilPresetPrices.unit ? "/" + oilPresetPrices.unit : oilPresetPrices.unit }}
</template>
</el-input>
</el-form-item>
<el-form-item label="预设活动开始时间" prop="effectiveTime">
<el-date-picker
v-model="oilPresetPrices.effectiveTime"
type="datetime"
placeholder="选择日期时间"
style="width: 100%"
:default-value="defaultDateTime"
:picker-options="pickerOptions"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button @click="dialogFormPricesAdd = false">取 消</el-button>
<el-button type="primary" @click="insertOilPresePrices()">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<style scoped lang="scss">
.card-change-box{
background: #fff;
box-sizing: border-box;
padding: 10px;
margin: 10px;
border-radius: 8px;
}
</style>