feat: 代码合并
This commit is contained in:
@@ -1,50 +1,25 @@
|
||||
<template>
|
||||
<div class="addgoods">
|
||||
<el-form
|
||||
ref="ruleFormRef"
|
||||
:model="ruleForm"
|
||||
:rules="rules"
|
||||
label-width="150px"
|
||||
class="demo-ruleForm"
|
||||
status-icon
|
||||
>
|
||||
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="150px" class="demo-ruleForm" status-icon>
|
||||
<el-form-item label="商品名称" required>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="name">
|
||||
<el-input
|
||||
v-model="ruleForm.name"
|
||||
placeholder="请输入商品名称"
|
||||
:disabled="isSyncStatus()"
|
||||
/>
|
||||
<el-input v-model="ruleForm.name" placeholder="请输入商品名称" :disabled="isSyncStatus()" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品介绍">
|
||||
<el-col :span="12">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="ruleForm.shortTitle"
|
||||
type="textarea"
|
||||
placeholder="请输入商品介绍"
|
||||
:disabled="isSyncStatus()"
|
||||
/>
|
||||
<el-input v-model="ruleForm.shortTitle" type="textarea" placeholder="请输入商品介绍" :disabled="isSyncStatus()" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" required>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="unitId">
|
||||
<el-select
|
||||
v-model="ruleForm.unitId"
|
||||
placeholder="请选择单位"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in datas.Company"
|
||||
:key="item.id"
|
||||
/>
|
||||
<el-select v-model="ruleForm.unitId" placeholder="请选择单位" :disabled="isSyncStatus()">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in datas.Company" :key="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -52,17 +27,8 @@
|
||||
<el-form-item label="商品分类" required>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="region">
|
||||
<el-select
|
||||
v-model="ruleForm.categoryId"
|
||||
placeholder="请选择商品分类"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in datas.classification"
|
||||
:key="item.id"
|
||||
/>
|
||||
<el-select v-model="ruleForm.categoryId" placeholder="请选择商品分类" :disabled="isSyncStatus()">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in datas.classification" :key="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -72,21 +38,11 @@
|
||||
</el-form-item> -->
|
||||
<el-form-item label="商品图片" required prop="images">
|
||||
<div style="display: flex; flex-wrap: wrap">
|
||||
<div
|
||||
v-for="(item, index) in ruleForm.images"
|
||||
:key="index"
|
||||
style="position: relative"
|
||||
class="showStyle"
|
||||
>
|
||||
<div v-for="(item, index) in ruleForm.images" :key="index" style="position: relative" class="showStyle">
|
||||
<el-icon class="buttonstyle" @click="deleteEvent(item)">
|
||||
<DeleteFilled />
|
||||
</el-icon>
|
||||
<img
|
||||
style="width: 148px; height: 148px; margin-right: 6px"
|
||||
class="imgStyle"
|
||||
:src="item"
|
||||
alt=""
|
||||
/>
|
||||
<img style="width: 148px; height: 148px; margin-right: 6px" class="imgStyle" :src="item" alt="" />
|
||||
</div>
|
||||
<div class="upImgStyle" @click="addimgEvent">+</div>
|
||||
</div>
|
||||
@@ -98,11 +54,7 @@
|
||||
<AddImg ref="addImg" @successEvent="successEvent"></AddImg>
|
||||
|
||||
<el-form-item label="商品类型">
|
||||
<el-radio-group
|
||||
v-model="ruleForm.type"
|
||||
@change="changeTypeEnum(ruleForm.type)"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
<el-radio-group v-model="ruleForm.type" @change="changeTypeEnum(ruleForm.type)" :disabled="isSyncStatus()">
|
||||
<el-radio value="single">单规格商品</el-radio>
|
||||
<el-radio value="sku">多规格商品</el-radio>
|
||||
<el-radio value="package">套餐商品</el-radio>
|
||||
@@ -119,12 +71,7 @@
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div v-if="ruleForm.groupType == '0'">
|
||||
<el-table
|
||||
border
|
||||
:data="item.goods"
|
||||
v-for="(item, index) in ruleForm.proGroupVo"
|
||||
:key="index"
|
||||
>
|
||||
<el-table border :data="item.goods" v-for="(item, index) in ruleForm.proGroupVo" :key="index">
|
||||
<el-table-column label="名称" prop="proName"></el-table-column>
|
||||
<el-table-column label="规格" prop="skuName"></el-table-column>
|
||||
<el-table-column label="价格" prop="price"></el-table-column>
|
||||
@@ -140,19 +87,10 @@
|
||||
</el-button>
|
||||
</template>
|
||||
<template v-slot="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
:disabled="scope.row.type != 'sku' && isSyncStatus()"
|
||||
@click="showSelectSkuHandle(scope.row, scope.$index, index)"
|
||||
>
|
||||
设置规格
|
||||
</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
@click="ruleForm.proGroupVo[index].goods.splice(scope.$index, 1)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
<el-button type="text" :disabled="scope.row.type != 'sku' && isSyncStatus()"
|
||||
@click="showSelectSkuHandle(scope.row, scope.$index, index)">设置规格</el-button>
|
||||
<el-button type="text"
|
||||
@click="ruleForm.proGroupVo[index].goods.splice(scope.$index, 1)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -167,10 +105,7 @@
|
||||
<el-input v-model="item.number" :disabled="isSyncStatus()" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
@click="ruleForm.proGroupVo.splice(index, 1)"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
<el-button @click="ruleForm.proGroupVo.splice(index, 1)" :disabled="isSyncStatus()">
|
||||
删除
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
@@ -182,11 +117,7 @@
|
||||
<el-table-column label="价格" prop="price"></el-table-column>
|
||||
<el-table-column label="数量" prop="number">
|
||||
<template v-slot="scope">
|
||||
<el-input-number
|
||||
v-model="scope.row.number"
|
||||
:min="0"
|
||||
:disabled="isSyncStatus()"
|
||||
/>
|
||||
<el-input-number v-model="scope.row.number" :min="0" :disabled="isSyncStatus()" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="150">
|
||||
@@ -196,20 +127,10 @@
|
||||
</el-button>
|
||||
</template>
|
||||
<template v-slot="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
:disabled="scope.row.type != 'sku' && isSyncStatus()"
|
||||
@click="showSelectSkuHandle(scope.row, scope.$index, index)"
|
||||
>
|
||||
设置规格
|
||||
</el-button>
|
||||
<el-button
|
||||
type="text"
|
||||
@click="ruleForm.proGroupVo[index].goods.splice(scope.$index, 1)"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
<el-button type="text" :disabled="scope.row.type != 'sku' && isSyncStatus()"
|
||||
@click="showSelectSkuHandle(scope.row, scope.$index, index)">设置规格</el-button>
|
||||
<el-button type="text" @click="ruleForm.proGroupVo[index].goods.splice(scope.$index, 1)"
|
||||
:disabled="isSyncStatus()">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -222,51 +143,26 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="选择规格" v-if="ruleForm.type == 'sku'">
|
||||
<el-select
|
||||
v-model="ruleForm.specId"
|
||||
placeholder="请选择规格"
|
||||
style="width: 500px"
|
||||
@change="selectSpecHandle"
|
||||
:disabled="isSyncStatus()"
|
||||
>
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in datas.specificationsconfig"
|
||||
:key="item.id"
|
||||
></el-option>
|
||||
<el-select v-model="ruleForm.specId" placeholder="请选择规格" style="width: 500px" @change="selectSpecHandle"
|
||||
:disabled="isSyncStatus()">
|
||||
<el-option :label="item.name" :value="item.id" v-for="item in datas.specificationsconfig"
|
||||
:key="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="ele.name"
|
||||
v-if="datas.selectSpeclist.length"
|
||||
v-for="ele in datas.selectSpeclist"
|
||||
:key="ele.name"
|
||||
>
|
||||
<el-form-item :label="ele.name" v-if="datas.selectSpeclist.length" v-for="ele in datas.selectSpeclist"
|
||||
:key="ele.name">
|
||||
<el-checkbox-group v-model="ele.selectSpecResult" @change="selectSpecResultChange">
|
||||
<el-checkbox
|
||||
:value="element.name"
|
||||
:label="element.name"
|
||||
v-for="(element, index) in ele.children"
|
||||
:key="index"
|
||||
></el-checkbox>
|
||||
<el-checkbox :value="element.name" :label="element.name" v-for="(element, index) in ele.children"
|
||||
:key="index"></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<!-- 规格属性 -->
|
||||
<!-- 单规格、称重 -->
|
||||
<SpecificationAttribute
|
||||
v-if="ruleForm.type != 'sku'"
|
||||
:info="ruleForm"
|
||||
:list="list"
|
||||
ref="specificationAttributeRef"
|
||||
></SpecificationAttribute>
|
||||
<SpecificationAttribute
|
||||
v-if="ruleForm.type == 'sku' && list.length"
|
||||
:specTableHeaders="datas.specTableHeaders"
|
||||
:info="ruleForm"
|
||||
:list="list"
|
||||
ref="specificationAttributeRef"
|
||||
></SpecificationAttribute>
|
||||
<SpecificationAttribute v-if="ruleForm.type != 'sku'" :info="ruleForm" :list="list"
|
||||
ref="specificationAttributeRef">
|
||||
</SpecificationAttribute>
|
||||
<SpecificationAttribute v-if="ruleForm.type == 'sku' && list.length" :specTableHeaders="datas.specTableHeaders"
|
||||
:info="ruleForm" :list="list" ref="specificationAttributeRef"></SpecificationAttribute>
|
||||
<el-form-item label="重量">
|
||||
<el-col :span="12">
|
||||
<div style="display: block">
|
||||
@@ -300,30 +196,24 @@
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-col :span="12">
|
||||
<el-time-picker
|
||||
v-model="ruleForm.useTime"
|
||||
is-range
|
||||
range-separator="至"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
value-format="HH:mm:ss"
|
||||
format="HH:mm:ss"
|
||||
/>
|
||||
<el-col :span="20">
|
||||
<!-- <el-time-picker v-model="ruleForm.useTime" is-range range-separator="至" start-placeholder="开始时间"
|
||||
end-placeholder="结束时间" value-format="HH:mm:ss" format="HH:mm:ss" />
|
||||
-->
|
||||
|
||||
<el-time-picker v-model="ruleForm.startTime" value-format="HH:mm:ss" format="HH:mm:ss" placeholder="选择开始时间">
|
||||
</el-time-picker>-
|
||||
<el-time-picker v-model="ruleForm.endTime" value-format="HH:mm:ss" format="HH:mm:ss" placeholder="选择结束时间">
|
||||
</el-time-picker>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="上架">
|
||||
<el-switch v-model="ruleForm.isSale" :active-value="1" :inactive-value="0" />
|
||||
</el-form-item>
|
||||
<el-form-item label="库存开关">
|
||||
<div style="display: block">
|
||||
<el-switch
|
||||
v-model="ruleForm.isStock"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
:disabled="isSyncStatus()"
|
||||
/>
|
||||
<div style="color: #999">注:关闭则不计算出入库数据</div>
|
||||
<div style="display: block;">
|
||||
<el-switch v-model="ruleForm.isStock" :active-value="1" :inactive-value="0" :disabled="isSyncStatus()" />
|
||||
<div style="color: #999;">注:关闭则不计算出入库数据</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="设为推荐" prop="delivery">
|
||||
@@ -334,13 +224,10 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="打包费" prop="delivery">
|
||||
<div style="display: block">
|
||||
<el-input-number
|
||||
v-model="ruleForm.packFee"
|
||||
controls-position="right"
|
||||
:disabled="isSyncStatus()"
|
||||
></el-input-number>
|
||||
<div style="color: #999">单份商品打包费。注:店铺开启外卖模式下该数据才生效</div>
|
||||
<div style="display: block;">
|
||||
<el-input-number v-model="ruleForm.packFee" controls-position="right"
|
||||
:disabled="isSyncStatus()"></el-input-number>
|
||||
<div style="color: #999;">单份商品打包费。注:店铺开启外卖模式下该数据才生效</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@@ -355,13 +242,8 @@
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class="title">选项值</div>
|
||||
<div
|
||||
class="tag"
|
||||
:class="{ active: item.active }"
|
||||
v-for="(item, index) in datas.selectSkuItem.skuList"
|
||||
:key="item.id"
|
||||
@click="selectSkuHandle(item, index)"
|
||||
>
|
||||
<div class="tag" :class="{ active: item.active }" v-for="(item, index) in datas.selectSkuItem.skuList"
|
||||
:key="item.id" @click="selectSkuHandle(item, index)">
|
||||
{{ item.specInfo }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -566,13 +448,11 @@ onMounted(() => {
|
||||
if (router.currentRoute.value.query.goods_id) {
|
||||
tbProductGetDetail(router.currentRoute.value.query.goods_id);
|
||||
}
|
||||
});
|
||||
watch(
|
||||
() => router.currentRoute.value.query.goods_id,
|
||||
(val) => {
|
||||
tbProductGetDetail(val);
|
||||
}
|
||||
);
|
||||
})
|
||||
watch(() => router.currentRoute.value.query.goods_id, (val) => {
|
||||
tbProductGetDetail(val);
|
||||
})
|
||||
|
||||
async function tbProductGetDetail(id: any) {
|
||||
// 获取商品详情
|
||||
const res = await UserAPI3.getDetail(id);
|
||||
@@ -628,8 +508,8 @@ function selectSkuHandle(item: any, index: number) {
|
||||
}
|
||||
function addimgEvent() {
|
||||
if (isSyncStatus()) {
|
||||
ElMessage.error("当前同步启用状态下不可修改");
|
||||
return;
|
||||
ElMessage.error('当前同步启用状态下不可修改')
|
||||
return
|
||||
}
|
||||
(addImg.value as any)?.show();
|
||||
}
|
||||
@@ -667,8 +547,8 @@ function addgoods(index: number = -1) {
|
||||
}
|
||||
function deleteEvent(d: any) {
|
||||
if (isSyncStatus()) {
|
||||
ElMessage.error("当前同步启用状态下不可修改");
|
||||
return;
|
||||
ElMessage.error('当前同步启用状态下不可修改')
|
||||
return
|
||||
}
|
||||
let index = ruleForm.images.findIndex((ele) => ele == d);
|
||||
ruleForm.images.splice(index, 1);
|
||||
@@ -883,19 +763,11 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
||||
// 规格id修改
|
||||
// ruleForm.specId = specIdFunction(ruleForm.type)
|
||||
let selectTitle = false;
|
||||
ruleForm.proGroupVo.forEach((item: any) => {});
|
||||
ruleForm.proGroupVo.forEach((item: any) => { });
|
||||
if (selectTitle) {
|
||||
ElMessage.error("请填写组名和几选几");
|
||||
return;
|
||||
}
|
||||
// 修改时间
|
||||
console.log(ruleForm.useTime);
|
||||
if (!ruleForm.useTime) {
|
||||
ElMessage.error("请选择定时上下架时间");
|
||||
return;
|
||||
}
|
||||
ruleForm.startTime = ruleForm.useTime[0];
|
||||
ruleForm.endTime = ruleForm.useTime[1];
|
||||
// 拿到sku数据
|
||||
ruleForm.skuList = (specificationAttributeRef.value as any)?.getdata();
|
||||
// 多规格 selectSpecInfo 添加
|
||||
@@ -924,7 +796,7 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
||||
}
|
||||
}
|
||||
}
|
||||
ruleForm.days = ruleForm.days.join(",");
|
||||
ruleForm.days = ruleForm.days.join(',')
|
||||
setTimeout(() => {
|
||||
ruleForm.days = ruleForm.days.split(",");
|
||||
}, 200);
|
||||
@@ -1043,7 +915,7 @@ const resetForm = (formEl: FormInstance | undefined) => {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.showStyle:hover > .buttonstyle {
|
||||
.showStyle:hover>.buttonstyle {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user