运营区域配置信息表单优化

This commit is contained in:
dzl 2025-04-30 17:34:03 +08:00
parent 4d6f8bbb30
commit 0742a2e5cb
8 changed files with 242 additions and 54 deletions

View File

@ -444,7 +444,7 @@ const handleOkFeeModal = () => {
* @param record
*/
const regionConfigInfo = (record) => {
modalOperateKey.value = getGUID();
// modalOperateKey.value = getGUID();
openTitleConfig.value = "运营配置 - " + record['regionName']
openConfig.value = true
nextTick(() => {
@ -461,7 +461,7 @@ const regionConfigInfo = (record) => {
*/
const handleOkConfgModal = () => {
formModelConfig.value.formSave((data => {
openConfig.value = false;
// openConfig.value = false;
if (data['code'] == 200) {
getData()
} else {

View File

@ -78,7 +78,10 @@
</template>
<template v-if=" column.type == 'time'">
<TimeRangePicker v-model:value="record[column.dataIndex]" />
<TimeRangePicker
valueFormat="HH:mm:ss"
v-model:value="record[column.dataIndex]"
/>
</template>
<template v-if=" column.type == 'input'">
<a-input
@ -111,13 +114,14 @@
<script setup>
import { ref, defineProps } from 'vue'
import { getGUID } from '@/utils/tools';
import { TimeRangePicker } from 'ant-design-vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref();
const form = ref({
customerServiceConfig: []
customerServiceConfig: [],
tableName: 'reqEbikeSysLinktelDto'
});
const columns = ref([
{
@ -129,10 +133,10 @@ const columns = ref([
},
{
title: '客服电话',
key: 'customerServicePhone',
key: 'telnum',
width: 200,
align: 'center',
dataIndex: 'customerServicePhone',
dataIndex: 'telnum',
type: 'input'
},
{
@ -152,13 +156,17 @@ const columns = ref([
}])
const addRecord = () => {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value.customerServiceConfig.push({
key: getGUID(),
key: res.data,
phase: "",
customerServicePhone: "",
telnum: "",
workTime: "",
})
}
})
}
const deleteRecord = (record) => {
const key = record['key'];
@ -177,12 +185,36 @@ const remove = (val, filed, array) => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysLinktelDto'
return form.value;
const formData = _.cloneDeep(form.value);
formData['customerServiceConfig'].map(item => {
item['worktimeStart'] = item['workTime'][0];
item['worktimeEnd'] = item['workTime'][1];
delete item['workTime'];
delete item['key'];
delete item['phase'];
})
return formData;
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>

View File

@ -156,14 +156,15 @@
<script setup>
import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref();
const form = ref({});
const form = ref({
tableName: 'reqEbikeSysRlocksetDto'
});
const autoReturn = ref(false);
const autoLock = ref(false);
const changeAutoReturnType = (e) => {
const value = e.target.value;
if (value == '1') {
@ -177,13 +178,28 @@ const changeAutoReturnType = (e) => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRlocksetDto'
return form.value;
return _.cloneDeep(form.value);
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>

View File

@ -57,10 +57,13 @@ const customerServiceForm = ref(null);
const isAdd = ref(true);
const spinning = ref(false);
const tipContent = ref("加载中...");
const regionId = ref(null);
const openForm = (params = {}) => {
isAdd.value = true;
const forms = [switchForm, operateForm, useCarForm, lockCarForm, returnCarForm, customerServiceForm];
if (params['regionId']) {
regionId.value = params['regionId'];
spinning.value = true;
callOperate("/ebikeSysRoperateset/getRegionConfigById?regionId="
+ params['regionId'], {}, "get").then(res => {
@ -68,7 +71,18 @@ const openForm = (params = {}) => {
if (res.code == 200) {
if (res.data) {
isAdd.value = false;
forms.map(form => {
Object.keys(res.data).forEach((key) => {
const data = form.value.getFormData();
if (key == data['tableName']) {
form.value.loadFormData(res.data[key]);
}
})
})
} else {
forms.map(form => {
form.value.loadFormData();
})
}
} else {
message.error(res.message);
@ -88,10 +102,19 @@ const formSave = (onCallBack) => {
if (tableName == "reqEbikeSysLinktelDto") {
params['reqEbikeSysRoperatesetDto'] = { ...params['reqEbikeSysRoperatesetDto'], onlineService: res['onlineService'] };
params[tableName] = res['customerServiceConfig'];
} else if (tableName == "reqEbikeSysRoperatesetDto") {
delete res['tableName'];
params[tableName] = { ...params['reqEbikeSysRoperatesetDto'], ...res };
if (params[tableName]['operateTime']) {
params[tableName]['operateTime'].map(item => {
item['regionId'] = regionId.value;
})
}
} else {
delete res['tableName'];
params[tableName] = res;
}
params[tableName]['regionId'] = regionId.value;
}).catch((e) => {
return Promise.reject(e);
});
@ -105,6 +128,9 @@ const formSave = (onCallBack) => {
if (!isAdd.value) {
url = "update"
}
if (params['reqEbikeSysRoperatesetDto']['rechargeRule']) {
params['reqEbikeSysRoperatesetDto']['rechargeRule'] = params['reqEbikeSysRoperatesetDto']['rechargeRule'].map(item => item.value);
}
// isAdd.value = false;
callOperate("/ebikeSysRoperateset/" + url, params).then(res => {
spinning.value = false;

View File

@ -462,7 +462,7 @@
<a-col :xs="12">
<a-form-item
required
name="BalanceAutomaticRefund"
name="balanceAutomaticRefund"
:rules="[{ required: true, message: '请选择余额退款自动通过' }]"
>
<template #label>
@ -472,7 +472,7 @@
</a-tooltip>
</template>
<a-radio-group
v-model:value="form.BalanceAutomaticRefund"
v-model:value="form.balanceAutomaticRefund"
name="radioGroup"
>
<a-radio value="1"></a-radio>
@ -543,6 +543,7 @@
</template>
<a-date-picker
style="width: 100%;"
valueFormat="YYYY-MM-DD"
v-model:value="form.issueAnInvoiceStartTime"
/>
</a-form-item>
@ -690,12 +691,14 @@
import { getGUID } from '@/utils/tools';
import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const amountInput = ref();
const formRef = ref();
const form = ref({
rechargeRule: []
rechargeRule: [],
tableName: 'reqEbikeSysRoperatesetDto'
});
const extraText = ref("");
const showFirstFreeAmount = ref(false);
@ -750,7 +753,7 @@ const changeBalanceRefund = (e) => {
showBalanceRefund.value = true
} else {
showBalanceRefund.value = false
form.value.BalanceAutomaticRefund = null;
form.value.balanceAutomaticRefund = null;
form.value.deductionGift = null;
}
}
@ -794,13 +797,28 @@ const remove = (val, filed, array) => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRoperatesetDto'
return form.value;
return _.cloneDeep(form.value);
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>

View File

@ -277,7 +277,7 @@
>
<a-form-item
required
name="freeFeturnType"
name="freeReturnType"
:rules="[{ required: true, message: '请选择学习免调度费还车类型' }]"
:label-col="{ sm: { span: 10 }}"
:wrapper-Col="{span: 24 }"
@ -289,7 +289,7 @@
</a-tooltip>
</template>
<a-select
v-model:value="form.freeFeturnType"
v-model:value="form.freeReturnType"
mode="multiple"
style="width: 100%"
placeholder="请选择"
@ -333,8 +333,12 @@
<script setup>
import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref();
const form = ref({});
const form = ref({
tableName: 'reqEbikeSysRbacksetDto'
});
const showAngularOffsetError = ref(false);
const isIgnoreRegular = ref(false);
const showDistance = ref(false);
@ -367,7 +371,7 @@ const changeFreeDispatchStudy = (e) => {
isFreeDispatchStudy.value = true;
} else {
isFreeDispatchStudy.value = false;
form.value.freeFeturnType = [];
form.value.freeReturnType = [];
form.value.freeDispatchCount = null;
}
}
@ -384,14 +388,29 @@ const changeIgnoreRegular = (e) => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRbacksetDto'
return form.value;
return _.cloneDeep(form.value);
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>

View File

@ -42,7 +42,7 @@
>
<a-range-picker
:show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm"
valueFormat="YYYY-MM-DD HH:mm"
v-model:value="form.stopTimeInfo"
:placeholder="['请选择停运时间起', '请选择停运时间止']"
/>
@ -85,7 +85,10 @@
:wrapper-Col="{span: 24 }"
:rules="[{ required: true, message: '请添加运营时间' }]"
>
<TimeRangePicker v-model:value="form.operateTimeBytime" />
<TimeRangePicker
valueFormat="HH:mm:ss"
v-model:value="form.operateTimeBytime"
/>
</a-form-item>
</a-col>
<a-col
@ -133,7 +136,10 @@
</template>
<div id="timePicker"></div>
<template v-if=" column.type == 'time'">
<TimeRangePicker v-model:value="record[column.dataIndex]" />
<TimeRangePicker
valueFormat="HH:mm:ss"
v-model:value="record[column.dataIndex]"
/>
</template>
<template v-if=" column.type == 'select'">
<a-tooltip
@ -201,7 +207,7 @@
</a-row>
<a-row
:gutter="8"
v-if="showOperateTime"
v-if="stopInfoFlag"
>
<a-col :xs="24">
<a-form-item
@ -250,16 +256,18 @@
<script setup>
import { ref, defineProps } from 'vue'
import { TimeRangePicker } from 'ant-design-vue'
import { getGUID } from '@/utils/tools';
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const stopInfoFlag = ref(false);
const formRef = ref();
const time = ref(false);
const week = ref(false);
const showOperateTime = ref(false);
const form = ref({
operateTimeByWeek: []
operateTimeByWeek: [],
operateTimeBytime: null,
tableName: 'reqEbikeSysRoperatesetDto'
});
const showStopTimeInfo = ref(false);
const saveFlag = ref(true);
@ -291,10 +299,14 @@ const columns = ref([
}])
const addRecord = () => {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value.operateTimeByWeek.push({
key: getGUID(),
key: res.data,
weekday: [],
workTime: ""
workTime: []
})
}
})
}
@ -321,10 +333,13 @@ const changeIsOperate = (e) => {
if (value == '2') {
showStopTimeInfo.value = true
showOperateTime.value = true;
stopInfoFlag.value = true;
} else {
showStopTimeInfo.value = false
showOperateTime.value = false;
stopInfoFlag.value = false;
form.value.stopTimeInfo = null;
form.value.operateType = null;
}
}
@ -342,6 +357,11 @@ const changeOperateType = (data) => {
week.value = false;
time.value = false;
showOperateTime.value = false;
form.value.operateTimeBytime = null;
form.value.operateTimeByWeek = [];
if (form.value.isOperate == '1') {
stopInfoFlag.value = false
}
}
}
@ -365,13 +385,51 @@ const checkWeek = () => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRoperatesetDto'
return form.value;
const formData = _.cloneDeep(form.value);
if (formData['isOperate'] == '2') {
formData['stopStartTime'] = formData['stopTimeInfo'][0]
formData['stopEndTime'] = formData['stopTimeInfo'][1]
}
if (formData['operateType'] == '2') {
formData['operateTime'] = [{
startWorktime: formData['operateTimeBytime'][0],
endWorktime: formData['operateTimeBytime'][1]
}]
} else if (formData['operateType'] == '3') {
formData['operateTime'] = [];
formData['operateTimeByWeek'].map(item => {
formData['operateTime'].push({
weekday: item['weekday'],
startWorktime: item['workTime'][0],
endWorktime: item['workTime'][1],
})
})
}
delete formData['operateTimeBytime'];
delete formData['operateTimeByWeek'];
delete formData['stopTimeInfo'];
return formData;
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>

View File

@ -766,9 +766,13 @@
<script setup>
import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref();
const showMinimumAmount = ref(false);
const form = ref({});
const form = ref({
tableName: 'reqEbikeSysRusecondsetDto'
});
const prefixText = ref("");
const extraTextByRidingFace = ref("");
const extraTextByOverFace = ref("");
@ -863,13 +867,28 @@ const changeMinimumAmount = (e) => {
const validateForm = async () => {
await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRusecondsetDto'
return form.value;
return _.cloneDeep(form.value);
}
const loadFormData = (formData) => {
if (formData) {
form.value = formData
} else {
callOperate("/ebikesysrcostset/createSnowflakeId", {}, "get").then(res => {
if (res.code == 200) {
form.value['id'] = res.data;
}
})
}
}
const getFormData = () => {
return _.cloneDeep(form.value);
}
const resetFormValue = () => {
formRef.value.resetFields()
}
defineExpose({ validateForm, resetFormValue });
defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script>