|
@@ -1,4 +1,5 @@
|
|
|
<script setup lang="tsx">
|
|
<script setup lang="tsx">
|
|
|
|
|
+import { ref } from 'vue';
|
|
|
import { NDynamicInput, NInputNumber } from 'naive-ui';
|
|
import { NDynamicInput, NInputNumber } from 'naive-ui';
|
|
|
import { fetchGetAllChannelList } from '@/service/api/goods/store-goods';
|
|
import { fetchGetAllChannelList } from '@/service/api/goods/store-goods';
|
|
|
import { useTabStore } from '@/store/modules/tab';
|
|
import { useTabStore } from '@/store/modules/tab';
|
|
@@ -9,6 +10,7 @@ interface Options {
|
|
|
value: any;
|
|
value: any;
|
|
|
index: number;
|
|
index: number;
|
|
|
}
|
|
}
|
|
|
|
|
+const ChannelOptions = ref<Api.goods.Channel[]>([]);
|
|
|
const [registerForm, { getFieldsValue, validate }] = useForm({
|
|
const [registerForm, { getFieldsValue, validate }] = useForm({
|
|
|
schemas: [
|
|
schemas: [
|
|
|
{
|
|
{
|
|
@@ -17,7 +19,7 @@ const [registerForm, { getFieldsValue, validate }] = useForm({
|
|
|
label: '配送费/运费',
|
|
label: '配送费/运费',
|
|
|
render({ model, field }) {
|
|
render({ model, field }) {
|
|
|
return (
|
|
return (
|
|
|
- <div>
|
|
|
|
|
|
|
+ <div class={'flex flex-wrap items-center'}>
|
|
|
<div class={'h38px flex items-center'}>
|
|
<div class={'h38px flex items-center'}>
|
|
|
<div class={'w-200px text-center'}> 企业 </div>
|
|
<div class={'w-200px text-center'}> 企业 </div>
|
|
|
<div class={'ml-3 w-200px text-center'}> 费用(元/每20kg) </div>
|
|
<div class={'ml-3 w-200px text-center'}> 费用(元/每20kg) </div>
|
|
@@ -27,6 +29,7 @@ const [registerForm, { getFieldsValue, validate }] = useForm({
|
|
|
onUpdate:value={value => (model[field] = value)}
|
|
onUpdate:value={value => (model[field] = value)}
|
|
|
v-slots={(row: Options) => handleCreatInput(model, field, row)}
|
|
v-slots={(row: Options) => handleCreatInput(model, field, row)}
|
|
|
onCreate={() => handleAdd()}
|
|
onCreate={() => handleAdd()}
|
|
|
|
|
+ max={ChannelOptions.value.length}
|
|
|
></NDynamicInput>
|
|
></NDynamicInput>
|
|
|
</div>
|
|
</div>
|
|
|
);
|
|
);
|
|
@@ -53,6 +56,7 @@ function handleCreatInput(model: any, field: any, row: Options) {
|
|
|
api={fetchGetAllChannelList}
|
|
api={fetchGetAllChannelList}
|
|
|
labelFeild="channelName"
|
|
labelFeild="channelName"
|
|
|
valueFeild="id"
|
|
valueFeild="id"
|
|
|
|
|
+ getOptions={handleGetOptions}
|
|
|
onUpdate:value={vlaue => {
|
|
onUpdate:value={vlaue => {
|
|
|
model[field][row.index].Enterprise = vlaue;
|
|
model[field][row.index].Enterprise = vlaue;
|
|
|
}}
|
|
}}
|
|
@@ -80,6 +84,9 @@ function handleAdd() {
|
|
|
Cost: 1
|
|
Cost: 1
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
+function handleGetOptions(options: Api.goods.Channel[]) {
|
|
|
|
|
+ ChannelOptions.value = options;
|
|
|
|
|
+}
|
|
|
async function save() {
|
|
async function save() {
|
|
|
await validate();
|
|
await validate();
|
|
|
const form = getFieldsValue();
|
|
const form = getFieldsValue();
|
|
@@ -90,7 +97,9 @@ async function save() {
|
|
|
<template>
|
|
<template>
|
|
|
<LayoutTable>
|
|
<LayoutTable>
|
|
|
<NCard title="配送费&运费配置" :bordered="false" size="small" segmented class="card-wrapper">
|
|
<NCard title="配送费&运费配置" :bordered="false" size="small" segmented class="card-wrapper">
|
|
|
- <BasicForm @register-form="registerForm"></BasicForm>
|
|
|
|
|
|
|
+ <NScrollbar x-scrollable>
|
|
|
|
|
+ <BasicForm @register-form="registerForm"></BasicForm>
|
|
|
|
|
+ </NScrollbar>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<NSpace justify="end">
|
|
<NSpace justify="end">
|
|
|
<NButton size="small" @click="close">关闭</NButton>
|
|
<NButton size="small" @click="close">关闭</NButton>
|