|
|
@ -10,35 +10,34 @@ |
|
|
|
|
|
|
|
<div class="setting-item"> |
|
|
|
<label>初始数据:</label> |
|
|
|
<div v-if="!isInitialDataSet"> |
|
|
|
<el-input-number :precision="0" v-model="setinitiaData" placeholder="分钟" size="large"></el-input-number> |
|
|
|
分钟 |
|
|
|
|
|
|
|
<el-button type="primary" @click="openInitialConfirmDialog">确认</el-button> |
|
|
|
</div> |
|
|
|
<div v-if="isInitialDataSet">{{ initialData }}分钟</div> |
|
|
|
<div>{{ initialData }}分钟</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 市场一 --> |
|
|
|
<div class="setting-item"> |
|
|
|
<label>当前{{ marketOneName }}市场助力次数:{{ markerOneTotal }} 次</label> |
|
|
|
<el-input-number :precision="0" v-model="addCountOne" placeholder="设置添加次数" size="large"></el-input-number> |
|
|
|
|
|
|
|
<el-button type="primary" @click="openConfirmDialog('one')">确认</el-button> |
|
|
|
|
|
|
|
<label>前端展示次数:{{ showOne }} 次</label> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 市场二 --> |
|
|
|
<div class="setting-item"> |
|
|
|
<label>当前{{ marketTwoName }}市场助力次数:{{ markerTwoTotal }} 次</label> |
|
|
|
<el-input-number :precision="0" v-model="addCountTwo" placeholder="设置添加次数" size="large"></el-input-number> |
|
|
|
|
|
|
|
<el-button type="primary" @click="openConfirmDialog('two')">确认</el-button> |
|
|
|
|
|
|
|
<label>前端展示次数:{{ showTwo }} 次</label> |
|
|
|
</div> |
|
|
|
<!-- 市场一 --> |
|
|
|
<div class="setting-item"> |
|
|
|
<label class="fixed-label">当前{{ marketOneName }}市场助力次数:{{ markerOneTotal }} 次</label> |
|
|
|
<el-input v-model="addCountOne" |
|
|
|
placeholder="设置添加次数" |
|
|
|
size="large" |
|
|
|
class="fixed-input" |
|
|
|
|
|
|
|
@input="handleIntegerInput1"></el-input> |
|
|
|
<el-button type="primary" @click="openConfirmDialog('one')" class="fixed-button">确认</el-button> |
|
|
|
<label class="fixed-label">前端展示次数:{{ showOne }} 次</label> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 市场二 --> |
|
|
|
<div class="setting-item"> |
|
|
|
<label class="fixed-label">当前{{ marketTwoName }}市场助力次数:{{ markerTwoTotal }} 次</label> |
|
|
|
<el-input v-model="addCountTwo" |
|
|
|
placeholder="设置添加次数" |
|
|
|
size="large" |
|
|
|
class="fixed-input" |
|
|
|
@input="handleIntegerInput2"></el-input> |
|
|
|
<el-button type="primary" @click="openConfirmDialog('two')" class="fixed-button">确认</el-button> |
|
|
|
<label class="fixed-label">前端展示次数:{{ showTwo }} 次</label> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 时间数据 --> |
|
|
|
<!-- <div class="setting-item"> |
|
|
@ -57,7 +56,7 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 初始数据确认对话框 --> |
|
|
|
<el-dialog v-model="showInitialConfirmDialog" title="确认设置初始数据" width="30%" @closed="cancelset"> |
|
|
|
<!-- <el-dialog v-model="showInitialConfirmDialog" title="确认设置初始数据" width="30%" @closed="cancelset"> |
|
|
|
<span>您确定要设置初始数据为 {{ setinitiaData }} 分钟吗?(只能修改一次!)</span> |
|
|
|
<template #footer> |
|
|
|
<span class="dialog-footer"> |
|
|
@ -65,7 +64,7 @@ |
|
|
|
<el-button type="primary" @click="confirmInitialData">确 定</el-button> |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> --> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</template> |
|
|
@ -132,7 +131,62 @@ const marketTwoName = ref(''); |
|
|
|
// } |
|
|
|
// }; |
|
|
|
|
|
|
|
const timerOne = ref(null); |
|
|
|
const timerTwo = ref(null); |
|
|
|
|
|
|
|
const handleIntegerInput1 = (value) => { |
|
|
|
// 清除之前的定时器 |
|
|
|
if (timerOne.value) { |
|
|
|
clearTimeout(timerOne.value); |
|
|
|
} |
|
|
|
|
|
|
|
// 1. 替换所有非数字和非负号的字符 |
|
|
|
let filtered = value.replace(/[^-0-9]/g, ''); |
|
|
|
|
|
|
|
// 2. 如果以负号开头,只保留第一个负号,其余负号删除 |
|
|
|
if (filtered.includes('-')) { |
|
|
|
const firstChar = filtered[0]; |
|
|
|
const rest = filtered.slice(1).replace(/-/g, ''); // 删除其余负号 |
|
|
|
filtered = firstChar === '-' ? '-' + rest : rest; |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 如果是单独的 '-',设置延迟校验 |
|
|
|
if (filtered === '-') { |
|
|
|
timerOne.value = setTimeout(() => { |
|
|
|
addCountOne.value = ''; |
|
|
|
timerOne.value = null; |
|
|
|
}, 1000); // 延迟200ms |
|
|
|
} else { |
|
|
|
// 4. 更新绑定值 |
|
|
|
addCountOne.value = filtered; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
const handleIntegerInput2 = (value) => { |
|
|
|
// 清除之前的定时器 |
|
|
|
if (timerTwo.value) { |
|
|
|
clearTimeout(timerTwo.value); |
|
|
|
} |
|
|
|
|
|
|
|
// 同上逻辑 |
|
|
|
let filtered = value.replace(/[^-0-9]/g, ''); |
|
|
|
|
|
|
|
if (filtered.includes('-')) { |
|
|
|
const firstChar = filtered[0]; |
|
|
|
const rest = filtered.slice(1).replace(/-/g, ''); |
|
|
|
filtered = firstChar === '-' ? '-' + rest : rest; |
|
|
|
} |
|
|
|
|
|
|
|
// 如果是单独的 '-',设置延迟校验 |
|
|
|
if (filtered === '-') { |
|
|
|
timerTwo.value = setTimeout(() => { |
|
|
|
addCountTwo.value = ''; |
|
|
|
timerTwo.value = null; |
|
|
|
}, 1000); // 延迟200ms |
|
|
|
} else { |
|
|
|
addCountTwo.value = filtered; |
|
|
|
} |
|
|
|
}; |
|
|
|
const fetchData = async () => { |
|
|
|
try { |
|
|
|
// ✅ 修改传参方式为对象 |
|
|
@ -382,6 +436,34 @@ const goBack = () => { |
|
|
|
flex: 0 0 auto; |
|
|
|
} |
|
|
|
|
|
|
|
.setting-item { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
margin-bottom: 25px; |
|
|
|
} |
|
|
|
|
|
|
|
.fixed-label { |
|
|
|
width: 250px; /* 固定宽度 */ |
|
|
|
text-align: left; /* 右对齐,更美观 */ |
|
|
|
margin-right: 20px; /* 固定间距 */ |
|
|
|
white-space: nowrap; /* 防止换行 */ |
|
|
|
} |
|
|
|
|
|
|
|
.fixed-input { |
|
|
|
width: 230px; /* 固定宽度 */ |
|
|
|
margin-right: 30px; /* 固定间距 */ |
|
|
|
} |
|
|
|
|
|
|
|
.fixed-button { |
|
|
|
margin-right: 20px; /* 固定间距 */ |
|
|
|
} |
|
|
|
|
|
|
|
/* 确保最后一个 label 不需要右边距 */ |
|
|
|
.setting-item .fixed-label:last-child { |
|
|
|
margin-right: 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
h3 { |
|
|
|
font-size: 1.8rem; |
|
|
|
margin-bottom: 20px; |
|
|
|