|
@@ -6,7 +6,7 @@
|
|
|
*/
|
|
|
|
|
|
import { ElMessage, FormInstance, FormRules } from 'element-plus';
|
|
|
-import { Finished } from '@element-plus/icons-vue';
|
|
|
+import { Close, Finished } from '@element-plus/icons-vue';
|
|
|
import * as api from '../api';
|
|
|
|
|
|
|
|
@@ -17,6 +17,8 @@ const btnLoading = ref(false);
|
|
|
|
|
|
const editOpen = defineModel({ default: false });
|
|
|
|
|
|
+const editDrawer = <Ref>useTemplateRef('editDrawer');
|
|
|
+
|
|
|
const props = defineProps({
|
|
|
rowData: Object
|
|
|
});
|
|
@@ -55,12 +57,8 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return;
|
|
|
await formEl.validate(async (valid, fields) => {
|
|
|
if (valid) {
|
|
|
- const body = {
|
|
|
- id: rowData?.id,
|
|
|
- ...ruleForm,
|
|
|
- }
|
|
|
try {
|
|
|
- const res = await useResponse( api.updateRow, body, btnLoading);
|
|
|
+ const res = await useResponse(api.updateRow, { id: rowData?.id, ...ruleForm }, btnLoading);
|
|
|
if (res && res.code == 2000) {
|
|
|
editOpen.value = false;
|
|
|
ElMessage.success('编辑成功');
|
|
@@ -74,56 +72,76 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
+function closeDrawer() {
|
|
|
+ editDrawer.value.handleClose();
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
- <el-drawer v-model="editOpen"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :close-on-press-escape="false"
|
|
|
- :title="`店铺编辑 - `"
|
|
|
- size="30%">
|
|
|
- <el-form
|
|
|
- ref="ruleFormRef"
|
|
|
- :model="ruleForm"
|
|
|
- :rules="rules"
|
|
|
- class="mx-2.5 mt-2.5"
|
|
|
- label-width="auto"
|
|
|
- status-icon>
|
|
|
- <el-form-item label="SKU" prop="sku">
|
|
|
- <el-input v-model="ruleForm.sku" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="店 铺" prop="shop_name">
|
|
|
- <el-select v-model="ruleForm.shop_name">
|
|
|
- <el-option v-for="item in shopOptions" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="分 组" prop="tag">
|
|
|
- <el-select v-model="ruleForm.tag">
|
|
|
- <el-option v-for="item in groupOptions" :label="item.tag" :value="item.tag" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="展示价格" prop="show_price">
|
|
|
- <el-input v-model="ruleForm.show_price" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="平时活动售价" prop="activity_price">
|
|
|
- <el-input v-model="ruleForm.activity_price" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="最低活动售价" prop="minimum_price">
|
|
|
- <el-input v-model="ruleForm.minimum_price" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-divider />
|
|
|
- <div class="flex flex-1 justify-end">
|
|
|
- <el-button :icon="Finished" :loading="btnLoading" plain type="primary" @click="submitForm(ruleFormRef)">
|
|
|
- 确 定
|
|
|
- </el-button>
|
|
|
- <!--<el-button @click="resetForm(ruleFormRef)">重 置</el-button>-->
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </el-drawer>
|
|
|
+ <div class="drawer-container">
|
|
|
+ <el-drawer
|
|
|
+ ref="editDrawer"
|
|
|
+ v-model="editOpen"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ size="30%"
|
|
|
+ title="商品列表- 编辑">
|
|
|
+ <!--<div class="mx-2.5">-->
|
|
|
+ <!-- -->
|
|
|
+ <!--<el-divider style="margin: 0" />-->
|
|
|
+ <!--</div>-->
|
|
|
+ <el-form
|
|
|
+ ref="ruleFormRef"
|
|
|
+ :model="ruleForm"
|
|
|
+ :rules="rules"
|
|
|
+ class="mx-2.5 mt-7"
|
|
|
+ label-width="auto"
|
|
|
+ status-icon>
|
|
|
+ <el-form-item class="font-medium" label="SKU" prop="sku">
|
|
|
+ <el-input v-model="ruleForm.sku" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="font-medium" label="店 铺" prop="shop_name">
|
|
|
+ <el-select v-model="ruleForm.shop_name">
|
|
|
+ <el-option v-for="item in shopOptions" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="font-medium" label="分 组" prop="tag">
|
|
|
+ <el-select v-model="ruleForm.tag">
|
|
|
+ <el-option v-for="item in groupOptions" :label="item.tag" :value="item.tag" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="font-medium" label="展示价格" prop="show_price">
|
|
|
+ <el-input v-model="ruleForm.show_price" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="font-medium" label="平时活动售价" prop="activity_price">
|
|
|
+ <el-input v-model="ruleForm.activity_price" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="font-medium" label="最低活动售价" prop="minimum_price">
|
|
|
+ <el-input v-model="ruleForm.minimum_price" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-divider />
|
|
|
+ <div class="flex flex-1 justify-end">
|
|
|
+ <el-button :icon="Close" @click="closeDrawer">取 消</el-button>
|
|
|
+ <el-button :icon="Finished" :loading="btnLoading" type="primary" @click="submitForm(ruleFormRef)">
|
|
|
+ 确 定
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-drawer>
|
|
|
+ </div>
|
|
|
+
|
|
|
</template>
|
|
|
|
|
|
<style scoped>
|
|
|
+.drawer-container :deep(.el-drawer__header) {
|
|
|
+ border-bottom: none;
|
|
|
+ font-weight: 500;
|
|
|
+}
|
|
|
|
|
|
+.drawer-container :deep(.el-drawer__title) {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
</style>
|