From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/modules/commodity/transport-add-or-update.vue | 414 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 414 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/commodity/transport-add-or-update.vue b/src/views/modules/commodity/transport-add-or-update.vue
new file mode 100644
index 0000000..c5d5798
--- /dev/null
+++ b/src/views/modules/commodity/transport-add-or-update.vue
@@ -0,0 +1,414 @@
+<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", this.page);
+ },
+ });
+ } 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>
--
Gitblit v1.9.3