<template>
|
<el-dialog
|
:title="'调整' + title"
|
:close-on-click-modal="false"
|
:visible.sync="visible"
|
@close="handClose"
|
width="700px"
|
class="transport-dialog"
|
>
|
<el-form
|
:model="dataForm"
|
ref="dataForm"
|
@keyup.enter.native="dataFormSubmit()"
|
label-width="0px"
|
>
|
<el-form-item label="" prop="transName">
|
<span>请输入正负调整值</span>
|
<el-input
|
v-model="dataForm.transName"
|
type="number"
|
@change="checkNumber()"
|
placeholder="请输入正负调整值"
|
></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
type="primary"
|
size="middle"
|
class="el-icon-circle-plus-outline"
|
@click="addOrUpdateHandle()"
|
>{{ pips }}</el-button
|
>
|
<el-button
|
type="primary"
|
size="middle"
|
class="el-icon-remove-outline"
|
@click="deleteHandle()"
|
>{{ pips }}</el-button
|
>
|
</el-form-item>
|
<el-form-item label="" prop="second">
|
<span>生效趋势(秒,0秒为即时生效)</span>
|
<el-input
|
oninput="value=value.replace('-','')"
|
v-model="second"
|
type="number"
|
placeholder="0秒为即时生效"
|
></el-input>
|
</el-form-item>
|
<div>调整值</div>
|
<el-table
|
:data="dataForm.transfees"
|
border
|
style="width: 100%"
|
class="table-con"
|
>
|
<el-table-column
|
header-align="center"
|
align="center"
|
width="200"
|
label="原值"
|
>
|
<template slot-scope="scope">
|
<!-- <el-input type="number"
|
v-model="newPrice"
|
disabled></el-input> -->
|
<div>{{ newPrice }}</div>
|
</template>
|
</el-table-column>
|
<el-table-column
|
header-align="center"
|
align="center"
|
style="color: red"
|
width="180"
|
label="调整后"
|
>
|
<template slot-scope="scope">
|
<el-form-item label-width="0px">
|
<div class="spainput">{{ afterValue }}</div>
|
<!-- <el-input type="number" style="color:red !important;"
|
v-model="afterValue" class="spainput"
|
disabled></el-input> -->
|
</el-form-item>
|
</template>
|
</el-table-column>
|
<el-table-column
|
header-align="center"
|
align="center"
|
label="累计修正值"
|
>
|
<template slot-scope="scope">
|
<el-form-item label-width="0px">
|
<!-- <el-input type="number"
|
v-model="adjustValue"
|
disabled></el-input> -->
|
<div>{{ adjustValue }}</div>
|
</el-form-item>
|
</template>
|
</el-table-column>
|
</el-table>
|
<div style="margin-top: 30px">生效趋势</div>
|
<el-table
|
:data="dataForm.transfeeFrees"
|
border
|
style="width: 100%"
|
class="table-con"
|
>
|
<el-table-column
|
header-align="center"
|
align="center"
|
width="338"
|
label="待生效值"
|
>
|
<template slot-scope="scope">
|
<!-- <el-input type="number"
|
v-model="delayValue"
|
disabled></el-input> -->
|
<div>{{ delayValue }}</div>
|
</template>
|
</el-table-column>
|
<el-table-column
|
header-align="center"
|
align="center"
|
width="320"
|
label="时间(秒)"
|
>
|
<template slot-scope="scope">
|
<el-form-item label-width="0px">
|
<!-- <el-input type="number"
|
v-model="delaySecond"
|
disabled></el-input> -->
|
<div>{{ delaySecond }}</div>
|
</el-form-item>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="visible = false">取消</el-button>
|
<el-button type="primary" :loading="loading" @click="dataFormSubmit()"
|
>确定</el-button
|
>
|
</span>
|
<!-- 弹窗, 新增 / 修改 -->
|
<!-- <add-or-update v-if="addOrUpdateVisible"
|
ref="addOrUpdate"
|
@refreshDataList="getDataList"></add-or-update> -->
|
</el-dialog>
|
</template>
|
|
<script>
|
import { Debounce } from "@/utils/debounce";
|
// import AddOrUpdate from './transcity-add-or-update'
|
export default {
|
data() {
|
return {
|
// hasFreeCondition: 0,
|
visible: false,
|
title: "",
|
pips: "",
|
loading: false,
|
adjustValue: "", //累计修正的值
|
afterValue: "", //调整后值
|
delaySecond: "", //生效趋势
|
delayValue: "", // 待生效的值
|
newPrice: "", //原值
|
second: 0,
|
mafterValue: 0,
|
addOrUpdateVisible: false,
|
dataForm: {
|
// hasFreeCondition: false,
|
transName: 0,
|
|
// createTime: '',
|
// chargeType: 0,
|
// transportId: 0,
|
// isFreeFee: 0,
|
transfees: [{ cityList: [], status: 1 }],
|
transfeeFrees: [{ freeCityList: [], freeType: 0 }],
|
},
|
page: {
|
total: 0, // 总页数
|
currentPage: 1, // 当前页数
|
pageSize: 10, // 每页显示多少条
|
},
|
editVisible: false,
|
};
|
},
|
created() {
|
// this.init(id)
|
},
|
components: {
|
// AddOrUpdate
|
},
|
watch: {
|
// 如果当前对话框不可见,则关闭选择城市的对话框
|
visible: function (val) {
|
if (!val) {
|
this.addOrUpdateVisible = false;
|
}
|
},
|
},
|
computed: {
|
tableTitle() {
|
var titles = [
|
["调整后", "累计修正值", "续件(个)", "续费(元)"],
|
["首重(kg)", "运费(元)", "续重(kg)", "续费(元)"],
|
["首体积(m³)", "运费(元)", "续体积(m³)", "续费(元)"],
|
];
|
if (this.dataForm.chargeType) {
|
return titles[this.dataForm.chargeType];
|
}
|
return titles[0];
|
},
|
},
|
methods: {
|
init(id) {
|
this.getDataList(id);
|
this.title = id;
|
this.visible = true;
|
this.dataForm.transportId = id || 0;
|
this.$nextTick(() => {
|
this.$refs.dataForm.resetFields();
|
this.dataForm = {
|
// hasFreeCondition: false,
|
transName: 0,
|
createTime: "",
|
chargeType: 0,
|
transportId: 0,
|
isFreeFee: 0,
|
transfees: [{ cityList: [], status: 1 }],
|
transfeeFrees: [{ freeCityList: [], freeType: 0 }],
|
};
|
});
|
// if (this.dataForm.transportId) {
|
// this.$http({
|
// // 获取运费模板数据
|
// url: this.$http.adornUrl(`/shop/transport/info/${this.dataForm.transportId}`),
|
// method: 'get'
|
// }).then(({ data }) => {
|
// if (data.isFreeFee) {
|
// data.transfees[0].status = 0
|
// } else {
|
// data.transfees[0].status = 1
|
// }
|
// this.dataForm = data
|
// this.dataForm.hasFreeCondition = !!data.hasFreeCondition
|
// })
|
// }
|
},
|
handClose() {
|
this.$data.dataForm = JSON.parse(
|
JSON.stringify(this.$options.data().dataForm)
|
);
|
this.second = 0;
|
this.$nextTick(() => {
|
this.$refs["dataForm"].clearValidate(); // 清除表单验证
|
});
|
},
|
getDataList(id) {
|
this.$http({
|
url: this.$http.adornUrl(
|
"/normal/adminMarketQuotationsManageAction!/showModal.action"
|
),
|
method: "get",
|
params: this.$http.adornParams({
|
symbol: id,
|
}),
|
}).then(({ data }) => {
|
if (data) {
|
if (data.data.afterValue) {
|
this.afterValue = data.data.afterValue;
|
} else {
|
this.afterValue = data.data.newPrice;
|
}
|
if (data.data.pips * 1 == 0) {
|
this.pips = 0.01;
|
} else {
|
this.pips = data.data.pips;
|
}
|
this.mafterValue = this.afterValue;
|
this.adjustValue = data.data.adjustValue;
|
this.delaySecond = data.data.delaySecond;
|
this.delayValue = data.data.delayValue;
|
this.newPrice = data.data.newPrice;
|
}
|
// if(data.records){
|
// this.option = data.records.map((item,index) =>{
|
// return Object.assign({},{'symbol':item.symbol,'name':item.name})
|
// })
|
// }
|
});
|
},
|
// 添加运费项
|
addTransfee() {
|
this.editVisible = true;
|
this.dataForm.transfees.push({ cityList: [], status: 1 });
|
},
|
|
// 添加指定包邮条件
|
// addTransfeeFree () {
|
// if (this.dataForm.hasFreeCondition) {
|
// this.dataForm.transfeeFrees.push({ freeCityList: [], freeType: 0 })
|
// }
|
// },
|
// 删除指定包邮条件
|
deleteTransfeeFree(rowIndex) {
|
this.dataForm.transfeeFrees.splice(rowIndex, 1);
|
},
|
|
checkNumber() {
|
//正负值计算
|
// if(!this.dataForm.transName){
|
// this.afterValue = this.mafterValue
|
// }
|
let m = this.adjustValue;
|
let n = this.afterValue;
|
//this.afterValue = this.mafterValue
|
//this.afterValue = this.dataForm.transName
|
this.afterValue =
|
(n * 1000000000 + this.dataForm.transName * 1000000000) / 1000000000;
|
this.adjustValue =
|
(m * 1000000000 + this.dataForm.transName * 1000000000) / 1000000000;
|
},
|
|
addOrUpdateHandle(rowIndex) {
|
//正值添加按钮
|
let m = this.adjustValue;
|
let n = this.afterValue;
|
let p = this.dataForm.transName;
|
this.dataForm.transName =
|
(p * 1000000000 + this.pips * 1000000000) / 1000000000;
|
this.afterValue = (n * 1000000000 + this.pips * 1000000000) / 1000000000;
|
this.adjustValue = (m * 1000000000 + this.pips * 1000000000) / 1000000000;
|
//this.afterValue = (this.afterValue*1000000000 + this.pips*1000000000)/1000000000
|
},
|
// 删除运费项
|
deleteHandle(rowIndex) {
|
//负值添加按钮
|
let m = this.adjustValue;
|
let n = this.afterValue;
|
let p = this.dataForm.transName;
|
this.dataForm.transName =
|
(p * 1000000000 - this.pips * 1000000000) / 1000000000;
|
this.afterValue = (n * 1000000000 - this.pips * 1000000000) / 1000000000;
|
this.adjustValue = (m * 1000000000 - this.pips * 1000000000) / 1000000000;
|
//this.afterValue = (this.afterValue*1000000000 - this.pips*1000000000)/1000000000
|
},
|
/**
|
* 保留整数并小于零的数设为0
|
*/
|
getNumber(num) {
|
num = Math.round(num);
|
return num < 0 ? 0 : num;
|
},
|
// 表单提交
|
dataFormSubmit: Debounce(function () {
|
this.$refs["dataForm"].validate((valid) => {
|
if (valid) {
|
this.loading = true;
|
this.dataForm.transfees[0].cityList = [];
|
this.$http({
|
url: this.$http.adornUrl(
|
`/normal/adminMarketQuotationsManageAction!/adjust.action`
|
),
|
method: "post",
|
data: this.$http.adornData({
|
second: this.second,
|
symbol: this.title,
|
value: this.dataForm.transName,
|
}),
|
}).then(({ data }) => {
|
if (data.code == 0) {
|
this.$message({
|
message: "操作成功",
|
type: "success",
|
duration: 1000,
|
onClose: () => {
|
this.visible = false;
|
this.loading = false;
|
this.$emit("refreshDataList");
|
},
|
});
|
} else {
|
this.$message({
|
message: data.msg,
|
type: "error",
|
duration: 1000,
|
onClose: () => {
|
this.loading = false;
|
},
|
});
|
}
|
});
|
}
|
});
|
}),
|
},
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.transport-dialog .table-con .el-form-item {
|
margin-top: 16px;
|
margin-bottom: 16px !important;
|
}
|
::v-deep.spainput {
|
color: red;
|
}
|
::v-deep th {
|
background: rgb(38, 50, 56);
|
color: #fff;
|
}
|
</style>
|