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/union-stocks/transport-add-or-update.vue | 383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 383 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/union-stocks/transport-add-or-update.vue b/src/views/modules/union-stocks/transport-add-or-update.vue
new file mode 100644
index 0000000..33a2a0e
--- /dev/null
+++ b/src/views/modules/union-stocks/transport-add-or-update.vue
@@ -0,0 +1,383 @@
+<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 v-if="isAuth('shop:transfee:update')"
+ type="primary"
+ size="middle"
+ class="el-icon-circle-plus-outline"
+ @click="addOrUpdateHandle()">{{pips}}</el-button>
+ <el-button v-if="isAuth('shop:transfee:delete')"
+ 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