This commit is contained in:
小小 2025-04-30 17:32:33 +08:00
commit 9a0e5b9b8f
8 changed files with 242 additions and 54 deletions

View File

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

View File

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

View File

@ -156,14 +156,15 @@
<script setup> <script setup>
import { ref, defineProps } from 'vue' import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref(); const formRef = ref();
const form = ref({}); const form = ref({
tableName: 'reqEbikeSysRlocksetDto'
});
const autoReturn = ref(false); const autoReturn = ref(false);
const autoLock = ref(false); const autoLock = ref(false);
const changeAutoReturnType = (e) => { const changeAutoReturnType = (e) => {
const value = e.target.value; const value = e.target.value;
if (value == '1') { if (value == '1') {
@ -177,13 +178,28 @@ const changeAutoReturnType = (e) => {
const validateForm = async () => { const validateForm = async () => {
await formRef.value.validate(); await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRlocksetDto' return _.cloneDeep(form.value);
return 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 = () => { const resetFormValue = () => {
formRef.value.resetFields() formRef.value.resetFields()
} }
defineExpose({ validateForm, resetFormValue }); defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script> </script>

View File

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

View File

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

View File

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

View File

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

View File

@ -766,9 +766,13 @@
<script setup> <script setup>
import { ref, defineProps } from 'vue' import { ref, defineProps } from 'vue'
import _ from 'lodash'
import { callOperate } from '@/apis/call.js'
const formRef = ref(); const formRef = ref();
const showMinimumAmount = ref(false); const showMinimumAmount = ref(false);
const form = ref({}); const form = ref({
tableName: 'reqEbikeSysRusecondsetDto'
});
const prefixText = ref(""); const prefixText = ref("");
const extraTextByRidingFace = ref(""); const extraTextByRidingFace = ref("");
const extraTextByOverFace = ref(""); const extraTextByOverFace = ref("");
@ -863,13 +867,28 @@ const changeMinimumAmount = (e) => {
const validateForm = async () => { const validateForm = async () => {
await formRef.value.validate(); await formRef.value.validate();
form.value.tableName = 'reqEbikeSysRusecondsetDto' return _.cloneDeep(form.value);
return 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 = () => { const resetFormValue = () => {
formRef.value.resetFields() formRef.value.resetFields()
} }
defineExpose({ validateForm, resetFormValue }); defineExpose({ validateForm, resetFormValue, loadFormData, getFormData });
</script> </script>