Commit db60a6f0 by qinjianhui

fix: 格式化代码

parent ee8406a7
import request from '@/utils/request'
//设计产品/成品/系统素材三级分类列表
export function shopTypeList(params?: any) {
return request.get({ url: '/api/diy/template/type/list', params })
return request.get({ url: '/api/diy/template/type/list', params })
}
//新增设计产品/成品/系统素材三级分类
export function shopTypeSave(params?: any) {
return request.post({ url: '/api/diy/template/type/create', params })
return request.post({ url: '/api/diy/template/type/create', params })
}
//设计产品/成品/系统素材三级分类详情
export function shopTypeUpdate(params?: any) {
return request.post({ url: '/api/diy/template/type/update', params })
return request.post({ url: '/api/diy/template/type/update', params })
}
//启用/禁用/删除设计产品/成品/系统素材三级分类
export function shopTypeChangeStatus(params?: any) {
return request.post({ url: '/api/diy/template/type/delete', params })
return request.post({ url: '/api/diy/template/type/delete', params })
}
// 分类首页/取消首页显示
export function shopTypeChangeTop(params?: any) {
return request.post({ url: '/shop/type/changeTop', params })
return request.post({ url: '/shop/type/changeTop', params })
}
//模板列表
export function foxpsdDiyTemplateListFindAndCountAll(params: Record<string, any>) {
return request.post({ url: '/api/diy/template/listFindAndCountAll', params })
export function foxpsdDiyTemplateListFindAndCountAll(
params: Record<string, any>
) {
return request.post({ url: '/api/diy/template/listFindAndCountAll', params })
}
//foxpsd 模板详情
export function foxpsdDiyTemplateItem(params: Record<string, any>) {
return request.get({ url: '/foxpsdData/api/diy/template/item', params })
return request.get({ url: '/foxpsdData/api/diy/template/item', params })
}
//默认绑定模板
export function apiDiyTemplateBindDiy(params?: any) {
return request.post({ url: '/api/diy/template/bind/diy', params })
return request.post({ url: '/api/diy/template/bind/diy', params })
}
// 解绑模板
export function apiDiyTemplateUnbindDiy(params?: any) {
return request.post({ url: '/api/diy/template/unbind/diy', params })
return request.post({ url: '/api/diy/template/unbind/diy', params })
}
// 模板创建
export function apiDiyTemplateCreate(params?: any) {
return request.post({ url: '/api/diy/template/create', params })
return request.post({ url: '/api/diy/template/create', params })
}
// 模板创建
export function apiDiyTemplateUpdate(params?: any) {
return request.post({ url: '/api/diy/template/update', params })
return request.post({ url: '/api/diy/template/update', params })
}
// 模板删除
export function apiDiyTemplateDelete(params?: any) {
return request.post({ url: '/api/diy/template/delete', params })
return request.post({ url: '/api/diy/template/delete', params })
}
// 模板详情
export function apiDiyTemplateItem(params?: any) {
return request.get({ url: '/api/diy/template/item', params })
return request.get({ url: '/api/diy/template/item', params })
}
// 模板上下架
export function apiDiyTemplateStatus(params?: any) {
return request.post({ url: '/api/diy/template/status', params })
return request.post({ url: '/api/diy/template/status', params })
}
// 模板绑定用户
export function apiDiyTemplateBindUser(params?: any) {
return request.post({ url: '/api/diy/template/bind/user', params })
return request.post({ url: '/api/diy/template/bind/user', params })
}
//层面列表
export function apiDiyTemplateFaceList(params?: any) {
return request.get({ url: '/api/diy/template/face/list', params })
return request.get({ url: '/api/diy/template/face/list', params })
}
//层面创建
export function apiDiyTemplateFaceCreate(params?: any) {
return request.post({ url: '/api/diy/template/face/create', params })
return request.post({ url: '/api/diy/template/face/create', params })
}
//层面更新
export function apiDiyTemplateFaceUpdate(params?: any) {
return request.post({ url: '/api/diy/template/face/update', params })
return request.post({ url: '/api/diy/template/face/update', params })
}
//层面删除
export function apiDiyTemplateFaceDelete(params?: any) {
return request.post({ url: '/api/diy/template/face/delete', params })
return request.post({ url: '/api/diy/template/face/delete', params })
}
// 效果图
export function apiDiyTemplateXiaoguotuList(params?: any) {
return request.get({ url: '/api/diy/template/xiaoguotu/list', params })
return request.get({ url: '/api/diy/template/xiaoguotu/list', params })
}
// 效果图
export function apiDiyTemplateXiaoguotuCreate(params?: any) {
return request.post({ url: '/api/diy/template/xiaoguotu/create', params })
return request.post({ url: '/api/diy/template/xiaoguotu/create', params })
}
export function apiDiyTemplateXiaoguotuUpdate(params?: any) {
return request.post({ url: '/api/diy/template/xiaoguotu/update', params })
return request.post({ url: '/api/diy/template/xiaoguotu/update', params })
}
export function apiDiyTemplateXiaoguotuDelete(params?: any) {
return request.post({ url: '/api/diy/template/xiaoguotu/delete', params })
return request.post({ url: '/api/diy/template/xiaoguotu/delete', params })
}
export function apiPsdParser(params?: any) {
return request.post({ url: '/api/psd/parser', params })
return request.post({ url: '/api/psd/parser', params })
}
// 颜色
export function apiDiyTemplateColorList(params?: any) {
return request.get({ url: '/api/diy/template/color/list', params })
return request.get({ url: '/api/diy/template/color/list', params })
}
export function apiDiyTemplateColorCreate(params?: any) {
return request.post({ url: '/api/diy/template/color/create', params })
return request.post({ url: '/api/diy/template/color/create', params })
}
export function apiDiyTemplateColorUpdate(params?: any) {
return request.post({ url: '/api/diy/template/color/update', params })
return request.post({ url: '/api/diy/template/color/update', params })
}
export function apiDiyTemplateColorDelete(params?: any) {
return request.post({ url: '/api/diy/template/color/delete', params })
return request.post({ url: '/api/diy/template/color/delete', params })
}
//尺码
export function apiDiyTemplateChimaList(params?: any) {
return request.get({ url: '/api/diy/template/chima/list', params })
return request.get({ url: '/api/diy/template/chima/list', params })
}
export function apiDiyTemplateChimaCreate(params?: any) {
return request.post({ url: '/api/diy/template/chima/create', params })
return request.post({ url: '/api/diy/template/chima/create', params })
}
export function apiDiyTemplateChimaUpdate(params?: any) {
return request.post({ url: '/api/diy/template/chima/update', params })
return request.post({ url: '/api/diy/template/chima/update', params })
}
export function apiDiyTemplateChimaDelete(params?: any) {
return request.post({ url: '/api/diy/template/chima/delete', params })
return request.post({ url: '/api/diy/template/chima/delete', params })
}
......@@ -65,7 +65,7 @@ import type { FormInstance } from 'element-plus'
import {
apiDiyTemplateUpdate,
apiDiyTemplateCreate,
apiDiyTemplateBindDiy,
apiDiyTemplateBindDiy
} from '@/api/product'
import Popup from '@/components/popup/index.vue'
import { getImageUrl } from '@/utils/getImgUrl'
......@@ -80,7 +80,7 @@ const mobanList: any = ref([])
const formData = reactive({
id: '',
diy_ids: '', //待绑定的模板
default_diy_id: '',
default_diy_id: ''
})
const formRules: any = reactive({
......@@ -88,9 +88,9 @@ const formRules: any = reactive({
{
required: true,
message: '请输入标签名称',
trigger: 'blur',
},
],
trigger: 'blur'
}
]
})
const templateChange = (e: any) => {
......@@ -150,6 +150,6 @@ const handleClose = () => {
defineExpose({
open,
setFormData,
getDetail,
getDetail
})
</script>
<template>
<div>
<el-card class="!border-none" shadow="never">
<el-page-header :content="$route.meta.title" @back="goBack" />
</el-card>
<el-card class="!border-none mt-2" shadow="never" v-loading="pager.loading" v-if="activeTab=='xiaoguotu'">
<el-tabs v-model="activeTab" class=" bg-white" >
<el-tab-pane label="效果图" name="xiaoguotu"></el-tab-pane>
<el-tab-pane label="颜色" name="color"></el-tab-pane>
</el-tabs>
<div class="mb-4 mt-2">
<el-button type="primary" @click="handleAdd()">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增效果图
</el-button>
</div>
<div class="mt-2">
<el-table ref="tableRef" size="large" v-loading="pager.loading" :data="pager.lists" row-key="id"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column label="ID" prop="id" />
<el-table-column label="主图">
<template #default="{ row }">
<image-contain v-if="row.img_url" :src="getImageUrl(row.img_url, 200)" :width="80" :height="80"
:preview-src-list="[row.img_url]" preview-teleported fit="contain" />
</template>
</el-table-column>
<el-table-column label="名称" prop="title" min-width="120" />
<el-table-column label="排序" prop="idx" />
<el-table-column label="尺寸" min-width="120">
<template #default="{ row }">
<div>{{ row.width }} X {{ row.height }} 像素</div>
</template>
</el-table-column>
<el-table-column label="颜色" min-width="120">
<template #default="{ row }">
<div v-if="row.db_diy_color" >
<div class="w-[20px] h-[20px]" :style="{background:row.db_diy_color.sezhi}"></div>
<div>{{ row.db_diy_color.title }}</div>
</div>
<span v-else>未绑定</span>
</template>
</el-table-column>
<el-table-column label="分辨率" min-width="120">
<template #default="{ row }">
<div>{{ row.dpi }} DPI</div>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="create_date" min-width="120" />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
编辑
</el-button>
<el-button type="danger" link @click="handleDelete(row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" />
<ColorPage :activeTab="activeTab" v-if="activeTab=='color'" @on-change="(e)=>{activeTab=e}"/>
</div>
<div>
<el-card class="!border-none" shadow="never">
<el-page-header :content="$route.meta.title" @back="goBack" />
</el-card>
<el-card
class="!border-none mt-2"
shadow="never"
v-loading="pager.loading"
v-if="activeTab == 'xiaoguotu'"
>
<el-tabs v-model="activeTab" class="bg-white">
<el-tab-pane label="效果图" name="xiaoguotu"></el-tab-pane>
<el-tab-pane label="颜色" name="color"></el-tab-pane>
</el-tabs>
<div class="mb-4 mt-2">
<el-button type="primary" @click="handleAdd()">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增效果图
</el-button>
</div>
<div class="mt-2">
<el-table
ref="tableRef"
size="large"
v-loading="pager.loading"
:data="pager.lists"
row-key="id"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column label="ID" prop="id" />
<el-table-column label="主图">
<template #default="{ row }">
<image-contain
v-if="row.img_url"
:src="getImageUrl(row.img_url, 200)"
:width="80"
:height="80"
:preview-src-list="[row.img_url]"
preview-teleported
fit="contain"
/>
</template>
</el-table-column>
<el-table-column label="名称" prop="title" min-width="120" />
<el-table-column label="排序" prop="idx" />
<el-table-column label="尺寸" min-width="120">
<template #default="{ row }">
<div>{{ row.width }} X {{ row.height }} 像素</div>
</template>
</el-table-column>
<el-table-column label="颜色" min-width="120">
<template #default="{ row }">
<div v-if="row.db_diy_color">
<div
class="w-[20px] h-[20px]"
:style="{ background: row.db_diy_color.sezhi }"
></div>
<div>{{ row.db_diy_color.title }}</div>
</div>
<span v-else>未绑定</span>
</template>
</el-table-column>
<el-table-column label="分辨率" min-width="120">
<template #default="{ row }">
<div>{{ row.dpi }} DPI</div>
</template>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_date"
min-width="120"
/>
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
编辑
</el-button>
<el-button type="danger" link @click="handleDelete(row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<edit-popup
v-if="showEdit"
ref="editRef"
@success="getLists"
@close="showEdit = false"
/>
<ColorPage
:activeTab="activeTab"
v-if="activeTab == 'color'"
@on-change="
(e) => {
activeTab = e
}
"
/>
</div>
</template>
<script lang="ts" setup name="productFenlei">
import { apiDiyTemplateXiaoguotuList, apiDiyTemplateXiaoguotuDelete } from '@/api/product'
import {
apiDiyTemplateXiaoguotuList,
apiDiyTemplateXiaoguotuDelete
} from '@/api/product'
import { usePaging } from '@/hooks/usePaging'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import type { ElTable } from 'element-plus'
import useMultipleTabs from '@/hooks/useMultipleTabs'
import { getImageUrl } from "@/utils/getImgUrl";
import { getImageUrl } from '@/utils/getImgUrl'
import ColorPage from "../color/index.vue";
import ColorPage from '../color/index.vue'
const { removeTab } = useMultipleTabs()
const route = useRoute();
const router = useRouter();
const route = useRoute()
const router = useRouter()
const goBack = () => {
removeTab();
router.go(-1);
removeTab()
router.go(-1)
}
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
......@@ -109,40 +143,35 @@ const showEdit = ref(false)
const activeTab = ref('xiaoguotu')
const paramsData: any = reactive({
diy_id: route.query.did
diy_id: route.query.did
})
const { type } = defineProps(['type']);
type && (paramsData.type = type);
const { type } = defineProps(['type'])
type && (paramsData.type = type)
const { pager, getLists } = usePaging({
fetchFun: apiDiyTemplateXiaoguotuList,
params: paramsData
fetchFun: apiDiyTemplateXiaoguotuList,
params: paramsData
})
const handleAdd = async () => {
showEdit.value = true;
await nextTick();
editRef.value?.open('add', pager);
showEdit.value = true
await nextTick()
editRef.value?.open('add', pager)
}
const handleEdit = async (data: any) => {
showEdit.value = true;
await nextTick();
editRef.value?.open('edit', pager);
editRef.value?.getDetail(data)
showEdit.value = true
await nextTick()
editRef.value?.open('edit', pager)
editRef.value?.getDetail(data)
}
const handleDelete = async (id: number) => {
await feedback.confirm('确定要删除?')
await apiDiyTemplateXiaoguotuDelete({ id })
getLists()
await feedback.confirm('确定要删除?')
await apiDiyTemplateXiaoguotuDelete({ id })
getLists()
}
getLists()
</script>
<!-- 个人资料 -->
<template>
<div class="user-setting">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="ls-form" :model="formData" :rules="rules" label-width="100px">
<el-form-item label="当前密码:" prop="password_3">
<div class="w-80">
<el-input v-model.trim="formData.password_3" placeholder="修改密码时必填, 不修改密码时留空" type="password"
show-password />
</div>
</el-form-item>
<el-form-item label="新的密码:" prop="password_1">
<div class="w-80">
<el-input v-model.trim="formData.password_1" placeholder="修改密码时必填, 不修改密码时留空" type="password"
show-password />
</div>
</el-form-item>
<el-form-item label="确定密码:" prop="password_2">
<div class="w-80">
<el-input v-model.trim="formData.password_2" placeholder="修改密码时必填, 不修改密码时留空" type="password"
show-password />
</div>
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" @click="handleSubmit">保存</el-button>
</footer-btns>
</div>
<div class="user-setting">
<el-card class="!border-none" shadow="never">
<el-form
ref="formRef"
class="ls-form"
:model="formData"
:rules="rules"
label-width="100px"
>
<el-form-item label="当前密码:" prop="password_3">
<div class="w-80">
<el-input
v-model.trim="formData.password_3"
placeholder="修改密码时必填, 不修改密码时留空"
type="password"
show-password
/>
</div>
</el-form-item>
<el-form-item label="新的密码:" prop="password_1">
<div class="w-80">
<el-input
v-model.trim="formData.password_1"
placeholder="修改密码时必填, 不修改密码时留空"
type="password"
show-password
/>
</div>
</el-form-item>
<el-form-item label="确定密码:" prop="password_2">
<div class="w-80">
<el-input
v-model.trim="formData.password_2"
placeholder="修改密码时必填, 不修改密码时留空"
type="password"
show-password
/>
</div>
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" @click="handleSubmit">保存</el-button>
</footer-btns>
</div>
</template>
<script setup lang="ts" name="userSetting">
......@@ -42,81 +58,78 @@ const formRef = ref<FormInstance>()
const userStore = useUserStore()
// 表单数据
const formData = reactive({
password_3: '', // 当前密码
password_1: '', // 新的密码
password_2: '' // 确定密码
password_3: '', // 当前密码
password_1: '', // 新的密码
password_2: '' // 确定密码
})
// 表单校验规则
const rules = reactive<object>({
password_1: [
{
required: true,
message: '请输入新的密码',
trigger: ['blur']
}
],
password_2: [
{
required: true,
message: '请输入确定密码',
trigger: ['blur']
}
],
password_3: [
{
required: true,
message: '请输入当前密码',
trigger: ['blur']
}
]
password_1: [
{
required: true,
message: '请输入新的密码',
trigger: ['blur']
}
],
password_2: [
{
required: true,
message: '请输入确定密码',
trigger: ['blur']
}
],
password_3: [
{
required: true,
message: '请输入当前密码',
trigger: ['blur']
}
]
})
// 设置个人设置
const setUser = async () => {
if (formData.password_3 || formData.password_1 || formData.password_2) {
if (!formData.password_3) {
return feedback.msgError('请输入当前密码')
}
if (formData.password_3 || formData.password_1 || formData.password_2) {
if (!formData.password_3) {
return feedback.msgError('请输入当前密码')
}
if (!formData.password_1) {
return feedback.msgError('请输入新的密码')
}
if (!formData.password_1) {
return feedback.msgError('请输入新的密码')
}
if (!formData.password_2) {
return feedback.msgError('请输入确定密码')
}
if (!formData.password_2) {
return feedback.msgError('请输入确定密码')
}
if (formData.password_1 != formData.password_2) {
return feedback.msgError('两次输入的密码不一样')
}
if (formData.password_1 != formData.password_2) {
return feedback.msgError('两次输入的密码不一样')
}
}
if (formData.password_3 && formData.password_1 && formData.password_2) {
if (formData.password_3.length < 6 || formData.password_3.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password_1.length < 6 || formData.password_1.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password_2.length < 6 || formData.password_2.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password_3 && formData.password_1 && formData.password_2) {
if (formData.password_3.length < 6 || formData.password_3.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password_1.length < 6 || formData.password_1.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password_2.length < 6 || formData.password_2.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
}
await setUserInfo(formData)
feedback.msgSuccess("操作成功");
userStore.getUserInfo();
await setUserInfo(formData)
feedback.msgSuccess('操作成功')
userStore.getUserInfo()
}
// 提交数据
const handleSubmit = async () => {
await formRef.value?.validate()
setUser()
await formRef.value?.validate()
setUser()
}
</script>
<style lang="scss" scoped></style>
<template>
<div class="edit-popup">
<popup ref="popupRef" title="重新生成指定尺码" :async="true" width="800px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="160px" :rules="formRules" class="w-[90%]" v-if="diy">
<el-form-item label="选择尺码" prop="chima_id">
<el-select v-model="formData.chima_id" placeholder="请选择要生成的尺码">
<el-option :value="item.id" :label="'标题:'+item.title + ' 编码:' + item.bianma"
v-for="item in diy.chimaList"></el-option>
</el-select>
</el-form-item>
<el-form-item label="生成图片格式" prop="sc_img_type">
<el-radio-group v-model="formData.sc_img_type">
<el-radio :label="1">JPG</el-radio>
<el-radio :label="2">SVG</el-radio>
<el-radio :label="3">TIFF</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="额外关联的数据" prop="posts_content">
<div class="w-full">
<el-input v-model="formData.posts_content" placeholder="JSON格式" type="textarea"
:autosize="{ minRows: 3, maxRows: 3 }" maxlength="200" show-word-limit clearable />
<div>非必填,没有可以不写</div>
<div>
<div>结构演示</div>
[
{
"name":"素材",
"content":"https://img.foxpsd.com/images%2Fth3.jpg"
}
]
</div>
</div>
</el-form-item>
</el-form>
</popup>
</div>
<div class="edit-popup">
<popup
ref="popupRef"
title="重新生成指定尺码"
:async="true"
width="800px"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form
ref="formRef"
:model="formData"
label-width="160px"
:rules="formRules"
class="w-[90%]"
v-if="diy"
>
<el-form-item label="选择尺码" prop="chima_id">
<el-select
v-model="formData.chima_id"
placeholder="请选择要生成的尺码"
>
<el-option
v-for="(item, i) in diy.chimaList"
:value="item.id"
:label="'标题:' + item.title + ' 编码:' + item.bianma"
:key="i"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="生成图片格式" prop="sc_img_type">
<el-radio-group v-model="formData.sc_img_type">
<el-radio :label="1">JPG</el-radio>
<el-radio :label="2">SVG</el-radio>
<el-radio :label="3">TIFF</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="额外关联的数据" prop="posts_content">
<div class="w-full">
<el-input
v-model="formData.posts_content"
placeholder="JSON格式"
type="textarea"
:autosize="{ minRows: 3, maxRows: 3 }"
maxlength="200"
show-word-limit
clearable
/>
<div>非必填,没有可以不写</div>
<div>
<div>结构演示</div>
[ { "name":"素材",
"content":"https://img.foxpsd.com/images%2Fth3.jpg" } ]
</div>
</div>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import { apiDiyTemplateItem } from '@/api/product'
import { apiDiyUserSaveChimaRender } from "@/api/member";
import { apiDiyUserSaveChimaRender } from '@/api/member'
import Popup from '@/components/popup/index.vue'
const emit = defineEmits(['success', 'close'])
......@@ -53,81 +74,76 @@ const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const formData = reactive({
chima_id: '',
sku:'',
posts_content: '',
sc_img_type:1
chima_id: '',
sku: '',
posts_content: '',
sc_img_type: 1
})
const formRules: any = reactive({
chima_id: [
{
required: true,
message: '请选择尺码',
trigger: 'blur'
}
]
chima_id: [
{
required: true,
message: '请选择尺码',
trigger: 'blur'
}
]
})
const handleSubmit = async () => {
await formRef.value?.validate();
await formRef.value?.validate()
let obj: any = { ...toRaw(formData) };
const obj: any = { ...toRaw(formData) }
if(obj.posts_content){
obj.posts = JSON.parse(obj.posts_content);
delete obj.posts_content;
}
await apiDiyUserSaveChimaRender(obj)
popupRef.value?.close()
emit('success')
if (obj.posts_content) {
obj.posts = JSON.parse(obj.posts_content)
delete obj.posts_content
}
await apiDiyUserSaveChimaRender(obj)
popupRef.value?.close()
emit('success')
}
const userSaveItem = ref();
const diy = ref();
const userSaveItem = ref()
const diy = ref()
const getData = async (sku: string) => {
let res = await apiDiyTemplateItem({
sku
})
diy.value = res.data
formData.sc_img_type = diy.value.sc_img_type
const res = await apiDiyTemplateItem({
sku
})
diy.value = res.data
formData.sc_img_type = diy.value.sc_img_type
}
const open = (key = 'add', row: any) => {
userSaveItem.value = row;
formData.sku = row.sku;
getData(row.db_diy.sku)
mode.value = key
popupRef.value?.open();
userSaveItem.value = row
formData.sku = row.sku
getData(row.db_diy.sku)
mode.value = key
popupRef.value?.open()
}
const setFormData = (data: Record<any, any>) => {
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
for (const key in formData) {
if (data[key] != null && data[key] != undefined) {
//@ts-ignore
formData[key] = data[key]
}
}
}
const getDetail = async (row: Record<string, any>) => {
setFormData(row);
setFormData(row)
}
const handleClose = () => {
emit('close')
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
open,
setFormData,
getDetail
})
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment