109 lines
3.2 KiB
Vue
Raw Normal View History

2025-04-14 10:57:27 +08:00
<template>
<a-spin
:spinning="spinning"
:tip="tipContent"
>
<a-divider orientation="left">开关配置</a-divider>
2025-04-27 18:25:57 +08:00
<SwitchConfigForm ref="switchForm"></SwitchConfigForm>
2025-04-14 10:57:27 +08:00
<a-divider orientation="left">运营配置</a-divider>
2025-04-27 18:25:57 +08:00
<OperateConfigForm ref="operateForm"></OperateConfigForm>
2025-04-14 10:57:27 +08:00
<a-divider orientation="left">用车配置</a-divider>
2025-04-27 18:25:57 +08:00
<UseCarConfigForm ref="useCarForm"></UseCarConfigForm>
2025-04-14 10:57:27 +08:00
<a-divider orientation="left">锁车配置</a-divider>
2025-04-27 18:25:57 +08:00
<LockCarConfigForm ref="lockCarForm"></LockCarConfigForm>
2025-04-14 10:57:27 +08:00
<a-divider orientation="left">还车配置</a-divider>
2025-04-27 18:25:57 +08:00
<ReturnCarConfigForm ref="returnCarForm"></ReturnCarConfigForm>
2025-04-14 10:57:27 +08:00
<a-divider orientation="left">客服配置</a-divider>
2025-04-27 18:25:57 +08:00
<CustomerServiceConfigForm ref="customerServiceForm"></CustomerServiceConfigForm>
2025-04-14 10:57:27 +08:00
</a-spin>
</template>
2025-04-27 18:25:57 +08:00
2025-04-14 10:57:27 +08:00
<style scoped>
.a-tabs-card {
position: relative;
}
</style>
<script setup>
import { ref, defineProps } from 'vue'
import { callOperate } from '@/apis/call.js'
import _ from 'lodash'
import SwitchConfigForm from './SwitchConfigForm.vue';
import UseCarConfigForm from './UseCarConfigForm.vue';
import LockCarConfigForm from './LockCarConfigForm.vue';
import ReturnCarConfigForm from './ReturnCarConfigForm.vue';
import CustomerServiceConfigForm from './CustomerServiceConfigForm.vue';
import OperateConfigForm from './OperateConfigForm.vue';
const props = defineProps({
onCallBack: {
type: Function,
required: true
},
});
2025-04-27 18:25:57 +08:00
const switchForm = ref(null);
const operateForm = ref(null);
const useCarForm = ref(null);
const lockCarForm = ref(null);
const returnCarForm = ref(null);
const customerServiceForm = ref(null);
2025-04-14 10:57:27 +08:00
const spinning = ref(false);
const tipContent = ref("加载中...");
const openForm = (params = {}) => {
if (params['regionId']) {
spinning.value = true;
callOperate("/ebikesysrcostset/getRegionFeeConfigById?regionId="
+ params['regionId'], {}, "get").then(res => {
spinning.value = false;
2025-04-27 18:25:57 +08:00
2025-04-14 10:57:27 +08:00
})
}
};
2025-04-28 14:07:47 +08:00
const formSave = (onCallBack) => {
2025-04-27 18:25:57 +08:00
const forms = [switchForm, operateForm, useCarForm, lockCarForm, returnCarForm, customerServiceForm];
2025-04-28 14:07:47 +08:00
let params = {};
// 创建一个数组,保存所有表单的校验 Promise
const validationPromises = forms.map(form => {
2025-04-27 18:25:57 +08:00
if (form.value) {
2025-04-28 14:07:47 +08:00
return form.value.validateForm().then(res => {
const tableName = res['tableName'];
if (tableName == "ebikeSysLinktelDto") {
params['ebikeSysRoperatesetDto'] = { ...params['ebikeSysRoperatesetDto'], onlineService: res['onlineService'] };
params[tableName] = res['customerServiceConfig'];
} else {
delete res['tableName'];
params[tableName] = res;
}
}).catch((e) => {
return Promise.reject(e);
2025-04-27 18:25:57 +08:00
});
}
2025-04-28 14:07:47 +08:00
});
// 使用 Promise.all 等待所有的表单校验完成
Promise.all(validationPromises).then(() => {
tipContent.value = "保存中..."
spinning.value = true;
callOperate("/ebikeSysRoperateset/save", params).then(res => {
spinning.value = false;
if (onCallBack) {
res.data = params;
onCallBack(res);
}
})
}).catch(error => {
console.log(error);
});
2025-04-14 10:57:27 +08:00
};
defineExpose({ openForm, formSave });
</script>