web-base-admin/src/views/goodsManage/productRelease/jcsz.vue

890 lines
26 KiB
Vue
Raw Normal View History

2025-03-23 09:18:42 +08:00
<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-10-28 09:02:23
-->
<template>
<div class="page">
<div class="topbox">
<div
v-for="(item, index) in topList"
:key="index"
class="levelList_i"
:class="tabActive == item.id ? 'act' : ''"
2025-03-23 09:18:42 +08:00
@click.prevent="handleLink(item.id)"
>
{{ item.name }}
</div>
</div>
<div class="main">
<div class="contain">
<el-form ref="form" :rules="rules" :model="form" label-width="auto">
<div v-show="tabActive == 0">
<el-row :gutter="10">
<el-col class="el-col-40">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'产品名称'" prop="productName">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.productName"
clearable
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
/>
2025-03-23 09:18:42 +08:00
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'产品编码'" prop="productCode">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.productCode"
clearable
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
/>
2025-03-23 09:18:42 +08:00
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'划线价'" prop="retailPrice">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.retailPrice"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
/>
2025-03-23 09:18:42 +08:00
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'发货类型'" prop="shippingChannel">
<el-select v-model="form.shippingChannel" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in fhTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'保质期'" prop="shelfLife">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.shelfLife"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
2025-04-01 23:46:26 +08:00
<i slot="suffix" class="neibu">{{ '天' }} </i>
2025-03-23 09:18:42 +08:00
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'单位'" prop="unit">
<el-select v-model="form.unit" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in dwList"
:key="item.pkId"
:label="item.name"
:value="item.pkId"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'重量'" prop="weight">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.weight"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
<i slot="suffix" class="neibu">KG </i>
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'邮费重量'" prop="postageWeight">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.postageWeight"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
<i slot="suffix" class="neibu">KG </i>
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'产品属性'" prop="productAttr">
<el-select v-model="form.productAttr" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in productTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'所属分类'" prop="pkClassify">
<el-select v-model="form.pkClassify" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in classifyList"
:key="item.pkId"
:label="item.name"
:value="item.pkId"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'排列序号'" prop="sort">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.sort"
2025-03-23 09:18:42 +08:00
clearable
oninput="value = value.replace(/[^\d]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
/>
2025-03-23 09:18:42 +08:00
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'长'" prop="length">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.length"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
<i slot="suffix" class="neibu">CM </i>
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'宽'" prop="width">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.width"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
<i slot="suffix" class="neibu">CM </i>
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'高'" prop="height">
2025-03-23 09:18:42 +08:00
<el-input
v-model="form.height"
2025-03-23 09:18:42 +08:00
clearable
oninput="value=value.replace(/[^\d.]/g,'')"
2025-04-01 23:46:26 +08:00
:placeholder="'请输入'"
2025-03-23 09:18:42 +08:00
>
<i slot="suffix" class="neibu">CM </i>
</el-input>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'复购类型'">
<el-select v-model="form.repurchaseType" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in repurchaseTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'上架状态'" prop="isPutOn">
<el-select v-model="form.isPutOn" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
<el-form-item label="供应商" prop="pkCubasdoc">
<el-select
v-model="form.pkCubasdoc"
2025-03-23 09:18:42 +08:00
clearable
2025-04-01 23:46:26 +08:00
:placeholder="'请选择'"
2025-03-23 09:18:42 +08:00
>
<el-option
v-for="item in supplierList"
:key="item.pkId"
:label="item.custName"
:value="item.pkId"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'产品主图'" prop="cover">
2025-03-23 09:18:42 +08:00
<!-- <el-upload :headers="headers"
:class="{ uploadIconOne: showImg, uploadIcon: noneUploadImg }"
:action="uploadImgUrl"
:on-success="handlePictureSuccess"
:on-change="uploadImgChange"
list-type="picture-card"
:limit="1"
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload> -->
<imageUpload v-model="form.cover" />
2025-04-01 23:46:26 +08:00
<div class="jy">{{ '建议尺寸452×452大小为200K' }}</div>
2025-03-23 09:18:42 +08:00
</el-form-item>
</el-col>
2025-05-13 16:24:19 +08:00
<el-col class="el-col-20">
<el-form-item label="仓储编号" prop="wmsCode">
<el-input v-model="form.wmsCode" />
</el-form-item>
2025-05-13 16:24:19 +08:00
</el-col>
2025-03-23 09:18:42 +08:00
</el-row>
</div>
<div v-show="tabActive == 1">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'规格'" prop="pkSpecsType">
2025-03-23 09:18:42 +08:00
<el-tag
v-for="(item, index) in ggList"
v-show="item.checked"
:key="item.pkId"
2025-03-23 09:18:42 +08:00
closable
class="elTag"
:disable-transitions="false"
@close="handleClose(item.pkId)"
>
{{ item.typeName }}
</el-tag>
<el-button
class="button-new-tag"
size="small"
@click="openDiag = true"
>{{ '添加' }}</el-button>
2025-03-23 09:18:42 +08:00
</el-form-item>
</div>
<div v-show="tabActive == 2">
<el-row>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'抽奖礼品'" prop="isPrize">
<el-select v-model="form.isPrize" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'特惠礼品'" prop="isGift">
<el-select v-model="form.isGift" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'提货商品'" prop="isPickUp">
<el-select v-model="form.isPickUp" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'合并发货'" prop="isMerge">
<el-select v-model="form.isMerge" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'冷链运输'" prop="isFresh">
<el-select v-model="form.isFresh" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'追溯编号'" prop="isBarCode">
<el-select v-model="form.isBarCode" clearable>
2025-03-23 09:18:42 +08:00
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
/>
2025-03-23 09:18:42 +08:00
</el-select>
</el-form-item>
</el-col>
<el-col class="el-col-20">
2025-04-01 23:46:26 +08:00
<el-form-item :label="'运输方式'" prop="ysList">
2025-03-23 09:18:42 +08:00
<el-checkbox-group v-model="form.ysList" @change="changeYsfs">
<el-checkbox
v-for="(item, index) in transportTypeList"
:key="item.value"
:label="item.value"
>{{ item.label }}</el-checkbox>
2025-03-23 09:18:42 +08:00
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
<div class="footer">
<el-button size="small" class="cancelBtn">
{{ '取消' }}</el-button>
2025-03-23 09:18:42 +08:00
<el-button
v-hasButtons="['ProductReleaseConfirm']"
size="small"
2025-03-23 09:18:42 +08:00
style="background: #c8161d; border: none"
class="sureBtn"
@click="submit('form')"
2025-03-23 09:18:42 +08:00
>
{{ '确认' }}</el-button>
2025-03-23 09:18:42 +08:00
</div>
</div>
2025-03-23 09:18:42 +08:00
<!-- 规格 -->
<el-dialog
2025-04-01 23:46:26 +08:00
:title="'添加'"
2025-03-23 09:18:42 +08:00
:visible.sync="openDiag"
:close-on-click-modal="false"
width="30%"
center
>
<div class="addCheck">
<el-checkbox-group v-model="form.checkList" class="check">
<el-checkbox
v-for="(item, index) in ggList"
:key="item.pkId"
class="check_i"
2025-03-23 09:18:42 +08:00
:label="item.pkId"
>{{ item.typeName }}</el-checkbox>
2025-03-23 09:18:42 +08:00
</el-checkbox-group>
</div>
<span slot="footer" class="dialog-footer">
2025-04-01 23:46:26 +08:00
<el-button @click="openDiag = false">{{ '取消' }}</el-button>
2025-03-23 09:18:42 +08:00
<el-button type="primary" @click="checkTrue">{{
2025-04-01 23:46:26 +08:00
'确认'
2025-03-23 09:18:42 +08:00
}}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { getToken } from '@/utils/auth'
import * as api from '@/api/product.js'
import ImageUpload from '@/components/ImageUpload'
import * as supply from '@/api/supply.js'
2025-03-23 09:18:42 +08:00
export default {
name: 'Jcsz',
2025-03-23 09:18:42 +08:00
components: {
ImageUpload
2025-03-23 09:18:42 +08:00
},
data() {
return {
selectData: {},
select: {},
2025-03-23 09:18:42 +08:00
total: 0,
dialogVisible: false,
2025-03-23 09:18:42 +08:00
rules: {
shippingChannel: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请输入发货类型',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
unit: [{ required: true, message: '请选择单位', trigger: 'change' }],
2025-03-23 09:18:42 +08:00
productName: [
{ required: true, message: '请输入产品名称', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
retailPrice: [
{ required: true, message: '请输入划线价', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
shelfLife: [
{ required: true, message: '请输入保质期', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
weight: [{ required: true, message: '请输入重量', trigger: 'blur' }],
2025-03-23 09:18:42 +08:00
productCode: [
{ required: true, message: '请输入产品编号', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
postageWeight: [
{ required: true, message: '请输入邮费重量', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
productAttr: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请选择产品属性',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
isPutOn: [
{ required: true, message: '请选择', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
pkClassify: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请选择所属分类',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
sort: [
{ required: true, message: '请输入排列序号', trigger: 'blur' }
2025-03-23 09:18:42 +08:00
],
length: [{ required: true, message: '请输入长', trigger: 'blur' }],
width: [{ required: true, message: '请输入宽', trigger: 'blur' }],
height: [{ required: true, message: '请输入高', trigger: 'blur' }],
2025-03-23 09:18:42 +08:00
cover: [
{ required: true, message: '请上传产品主图', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
pkSpecsType: [
{ required: true, message: '请选择规格', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
isPrize: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '抽奖礼品',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
isGift: [
{ required: true, message: '请选择特惠礼品', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
isPickUp: [
{ required: true, message: '请选择提货商品', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
isMerge: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请选择合并发货',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
isFresh: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请选择冷链运输',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
pkCubasdoc: [
{
required: true,
2025-04-01 23:46:26 +08:00
message: '请选择',
trigger: 'change'
}
2025-03-23 09:18:42 +08:00
],
isBarCode: [
{ required: true, message: '请选择条码管理', trigger: 'change' }
2025-03-23 09:18:42 +08:00
],
ysList: [
{ required: true, message: '请选择运输方式', trigger: 'change' }
2025-05-13 16:24:19 +08:00
],
wmsCode: [
{ required: true, message: '请输入仓储编号', trigger: 'blur' }
]
2025-03-23 09:18:42 +08:00
},
ggList: [],
// 规格名称弹框
openDiag: false,
showImg: true, // 默认展示
2025-03-23 09:18:42 +08:00
noneUploadImg: false, //
uploadImgUrl: process.env.VUE_APP_BASE_API + '/system/upload',
2025-03-23 09:18:42 +08:00
headers: {
Authorization: getToken()
2025-03-23 09:18:42 +08:00
},
form: {
productCode: '',
sptw: '',
2025-03-23 09:18:42 +08:00
checkList: [],
ysList: [],
sort: '',
postageWeight: '',
height: '',
width: '',
length: '',
weight: '',
shelfLife: '',
retailPrice: ''
2025-03-23 09:18:42 +08:00
},
tabActive: 0,
agreeList: [
{
2025-04-01 23:46:26 +08:00
text: '允许',
val: 0
2025-03-23 09:18:42 +08:00
},
{
2025-04-01 23:46:26 +08:00
text: '禁止',
val: 1
}
2025-03-23 09:18:42 +08:00
],
topList: [
{
2025-04-01 23:46:26 +08:00
name: '基础设置',
id: 0
2025-03-23 09:18:42 +08:00
},
{
2025-04-01 23:46:26 +08:00
name: '规格明细',
id: 1
2025-03-23 09:18:42 +08:00
},
{
2025-04-01 23:46:26 +08:00
name: '拓展设置',
id: 2
}
2025-03-23 09:18:42 +08:00
],
productTypeList: [],
fhTypeList: [],
dwList: [],
classifyList: [],
transportTypeList: [],
repurchaseTypeList: [],
productList: [],
supplierList: []
}
2025-03-23 09:18:42 +08:00
},
mounted() {
// 获取规格list
this.getGg()
2025-03-23 09:18:42 +08:00
// // 产品属性枚举
this.getProductType()
2025-03-23 09:18:42 +08:00
// 发货类型
this.getShipping()
2025-03-23 09:18:42 +08:00
// 单位
this.getUnit()
2025-03-23 09:18:42 +08:00
// 复购类型
this.getRepurchaseType()
2025-03-23 09:18:42 +08:00
// 所属分类
this.getClassifyAll()
2025-03-23 09:18:42 +08:00
// 运输方式
this.getTransportType()
2025-03-23 09:18:42 +08:00
// 获取产品编号
this.getProductCode()
2025-03-23 09:18:42 +08:00
// 获取排序
this.getSort()
2025-03-23 09:18:42 +08:00
},
methods: {
sureProduct() {
2025-03-23 09:18:42 +08:00
this.form.pkProductBas = this.selectData.pkId
this.dialogVisible = false
},
onSelectAll() {
this.$refs.multipleTable.clearSelection()
2025-03-23 09:18:42 +08:00
},
selected(selection, row) {
this.$refs.multipleTable.clearSelection()
if (selection.length == 0) return
this.$refs.multipleTable.toggleRowSelection(row, true)
this.selectData = row
2025-03-23 09:18:42 +08:00
},
getRepurchaseType() {
api.repurchaseType().then((res) => {
this.repurchaseTypeList = res.data
})
2025-03-23 09:18:42 +08:00
supply.supplierList().then((res) => {
this.supplierList = res.rows
})
2025-03-23 09:18:42 +08:00
},
getSort() {
api.getMaxSort().then((res) => {
this.form.sort = res.data
})
2025-03-23 09:18:42 +08:00
},
getProductCode() {
api.getProductCode().then((res) => {
this.form.productCode = res.msg
2025-05-13 16:24:19 +08:00
this.form.wmsCode = res.msg
})
2025-03-23 09:18:42 +08:00
},
// 运输方式单独三个字段
changeYsfs(val) {
// 有陆运
if (val.indexOf(1) > -1) {
this.form.isLandTrans = 0
2025-03-23 09:18:42 +08:00
} else {
this.form.isLandTrans = 1
2025-03-23 09:18:42 +08:00
}
// 有空运
if (val.indexOf(2) > -1) {
this.form.isAirTrans = 0
2025-03-23 09:18:42 +08:00
} else {
this.form.isAirTrans = 1
2025-03-23 09:18:42 +08:00
}
// 海运
if (val.indexOf(3) > -1) {
this.form.isOceanTrans = 0
2025-03-23 09:18:42 +08:00
} else {
this.form.isOceanTrans = 1
2025-03-23 09:18:42 +08:00
}
},
// 运输方式
getTransportType() {
api.transportType().then((res) => {
this.transportTypeList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 所属分类
getClassifyAll() {
api.classifyAll().then((res) => {
this.classifyList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 选完规格
checkTrue() {
this.ggList.forEach((item) => {
item.checked = false
})
2025-03-23 09:18:42 +08:00
this.ggList.forEach((item) => {
this.form.checkList.forEach((child) => {
if (item.pkId == child) {
item.checked = true
2025-03-23 09:18:42 +08:00
}
})
})
this.openDiag = false
this.form.pkSpecsType = this.form.checkList
2025-03-23 09:18:42 +08:00
},
// 获取规格
getGg() {
api.findAll().then((res) => {
res.data.forEach((item) => {
item.checked = false
})
this.ggList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 产品属性枚举
getProductType() {
api.productType().then((res) => {
this.productTypeList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 发货类型
getShipping() {
api.getShipping().then((res) => {
this.fhTypeList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 单位
getUnit() {
api.unitAll().then((res) => {
this.dwList = res.data
})
2025-03-23 09:18:42 +08:00
},
// 移除规格
handleClose(pkId) {
// 引藏全规格中选中字段
this.ggList.forEach((item) => {
if (item.pkId == pkId) {
item.checked = false
2025-03-23 09:18:42 +08:00
}
})
2025-03-23 09:18:42 +08:00
// 移除表单选中
this.form.checkList.splice(this.form.checkList.indexOf(pkId), 1)
this.$forceUpdate()
2025-03-23 09:18:42 +08:00
},
submit(form) {
this.$refs[form].validate((valid) => {
console.log(valid, '....valid')
2025-03-23 09:18:42 +08:00
if (valid) {
api.productSave(this.form).then((res) => {
if (res.code == 200) {
this.$message({
2025-04-01 23:46:26 +08:00
message: '添加成功',
type: 'success'
})
2025-03-23 09:18:42 +08:00
this.$router.replace({
path: '/goodsManage/productList'
})
2025-03-23 09:18:42 +08:00
} else {
this.$message({
message: res.msg,
type: 'warning',
duration: 3000
})
2025-03-23 09:18:42 +08:00
}
})
2025-03-23 09:18:42 +08:00
} else {
return false
2025-03-23 09:18:42 +08:00
}
})
2025-03-23 09:18:42 +08:00
},
// 切换tab
handleLink(id) {
this.tabActive = id
2025-03-23 09:18:42 +08:00
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row'
} else if (rowIndex % 2 == 0) {
return 'success-row'
}
return ''
}
2025-03-23 09:18:42 +08:00
// uploadImgChange(file, fileList) {
// this.noneUploadImg = fileList.length > 0
// this.$refs.form.clearValidate('cover')
// },
// 图片上传成功后的回调
2025-03-23 09:18:42 +08:00
// handlePictureSuccess(res, file) {
// this.form.cover = res.data.url
// },
// 图片上传删除
2025-03-23 09:18:42 +08:00
// handleRemove(file, fileList) {
// this.form.cover = ''
// this.noneUploadImg = fileList.length > 0
// },
}
}
2025-03-23 09:18:42 +08:00
</script>
<style scoped lang="scss">
::v-deep .el-select {
width: 100%;
}
.uploadIcon ::v-deep .el-upload--picture-card {
display: none !important; /* 上传按钮隐藏 */
}
.el-col-20 {
width: 20%;
}
.el-col-60 {
width: 60%;
}
.el-col-40 {
width: 40%;
}
.page {
padding-top: 20px;
background: #f9f9f9;
}
.topbox {
align-items: center;
padding: 0px 0 0px 0;
display: flex;
// background: skyblue;
.levelList_i {
margin-left: 20px;
position: relative;
cursor: pointer;
// padding: 0 5px;
// width: 88px;
// height: 34px;
border-radius: 17px;
border: 1px solid #cccccc;
font-size: 12px;
font-family: MicrosoftYaHei;
text-align: center;
padding: 4px 15px;
// line-height: 32px;
}
.act {
color: #ffffff;
background: #c8161d;
}
.act1 {
border-bottom: 3px solid #1890ff !important;
}
.cha {
font-size: 16px;
color: #606266;
position: absolute;
top: 10px;
}
.li {
width: 40px;
margin: 0 auto;
border-bottom: 3px solid transparent;
}
}
.main {
display: flex;
flex-direction: column;
}
.contain {
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
margin: 0px 0px 0 0px;
flex: 1;
padding: 10px;
}
.footer {
height: 68px;
background: #ffffff;
box-shadow: 0px -3px 20px 0px rgba(204, 204, 204, 0.5);
margin: 0 0px;
display: flex;
justify-content: center;
align-items: center;
}
.thebtn1 {
background: #48b2fd;
color: #ffffff;
padding: 9px 45px;
}
.thebtn2 {
background: #f9f9f9;
color: #333;
padding: 9px 45px;
}
.neibu {
margin-right: 10px;
color: #666666;
font-style: normal;
}
.elTag {
margin-right: 10px;
}
.check {
display: flex;
flex-wrap: wrap;
text-align: center;
// justify-content: center;
.check_i {
width: 50%;
text-align: left;
margin-bottom: 10px;
margin-right: 0 !important;
}
}
.jy {
font-size: 10px;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
.addCheck {
padding-left: 20px;
}
::v-deep .el-dialog__body {
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
::v-deep .el-form-item {
margin-bottom: 15px !important;
}
</style>