web-retail-admin/src/views/goodsManage/goodsRelease/jcsz.vue

1659 lines
50 KiB
Vue
Raw Normal View History

2025-03-23 10:03:12 +08:00
<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-10-26 17:12:12
-->
<template>
<div class="page">
<div class="topbox">
<div
class="levelList_i"
:class="tabActive == item.id ? 'act' : ''"
v-for="(item, index) in topList"
:key="index"
@click.prevent="handleLink(item.id)"
>
{{ item.name }}
</div>
</div>
<div class="main">
<div class="contain" ref="box">
<div v-show="tabActive == 0">
<el-form
ref="form"
:rules="rules"
:model="form"
style="width: 1200px"
label-width="auto"
>
<el-row :gutter="40">
<el-col :span="16">
<el-form-item :label="$t('w_0078')" prop="waresName">
<el-input
clearable
maxlength="100"
v-model="form.waresName"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1152')" prop="waresCode">
<el-input
v-model="form.waresCode"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :label="$t('MN_F_T_1153')" prop="sellingPoints">
<el-input
clearable
v-model="form.sellingPoints"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_451')" prop="sales">
<el-input
clearable
oninput="value=value.replace(/[^\d]/g,'')"
v-model="form.sales"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1042')" prop="waresPrice">
<el-input
clearable
v-model="form.waresPrice"
type="number"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
:label="$t('w_0080') + `(${isLocals()})`"
prop="waresAchieve"
>
<el-input
clearable
v-model="form.waresAchieve"
type="number"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item :label="$t('MN_F_T_1136')"
prop="sort">
<el-input clearable
v-model="form.sort"
oninput="value = value.replace(/[^\d]/g,'')"
:placeholder="$t('S_C_70')"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_612')" prop="specialArea">
<el-select
clearable
v-model="form.specialArea"
@change="selSpecial"
>
<el-option
v-for="item in areaList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_61')" prop="pkAreaClassifys">
<!-- <el-select clearable v-model="form.pkAreaClassify">
<el-option v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"></el-option>
</el-select> -->
<el-cascader
@change="flChange"
:show-all-levels="false"
v-model="form.pkAreaClassifys"
:options="hierarchyList"
></el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_622')" prop="isPutOn">
<el-select clearable v-model="form.isPutOn">
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_253')" prop="preSaleStatus">
<el-select clearable v-model="form.preSaleStatus">
<el-option
v-for="item in presaleList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_250')" prop="operateScope">
<el-select clearable v-model="form.operateScope">
<el-option
v-for="item in gyList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1154')" prop="isSale">
<el-select clearable v-model="form.isSale">
<el-option
v-for="item in xsList"
:key="item.val"
:label="item.text"
:value="item.val"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1044')" prop="isSingle">
<el-select clearable v-model="form.isSingle">
<el-option
v-for="item in tcList"
:key="item.val"
:label="item.text"
:value="item.val"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1155')">
<el-select clearable v-model="form.isRecommend">
<el-option
v-for="item in isTj"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('ENU_TAG_TYPE_1')">
<el-select clearable v-model="form.pkPrefixLabel">
<el-option
v-for="item in qzList"
:key="item.pkId"
:label="item.label"
:value="item.pkId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('ENU_TAG_TYPE_2')">
<el-select clearable v-model="form.pkCoolLabel">
<el-option
v-for="item in kxList"
:key="item.pkId"
:label="item.label"
:value="item.pkId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('w_1032')">
<el-select clearable v-model="form.isMakerGift">
<el-option
v-for="item in waresTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="支付比例">
<el-select clearable v-model="form.pkSpecialCurrency">
<el-option
v-for="item in specialCurrency"
:key="item.pkId"
:label="item.tempName"
:value="item.pkId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否预售">
<el-select clearable v-model="form.isPreSale">
<el-option
v-for="item in agreeList"
:key="item.val"
:label="item.text"
:value="item.val"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预售数量">
<el-input
clearable
v-model="form.preSaleQuantity"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="商品排序" prop="sortStatus">
<el-select clearable v-model="form.sortStatus">
<el-option
v-for="item in sortList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="form.specialArea == 3">
<el-form-item label="发起人收益">
<el-input
clearable
v-model="form.makerIncome"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('ENU_TAG_TYPE_3')">
<el-checkbox-group v-model="form.pkGuaranteeLabel">
<el-checkbox
v-for="(item, index) in bzList"
:key="item.pkId"
:label="item.pkId"
>{{ item.label }}</el-checkbox
>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('ENU_TAG_TYPE_4')">
<el-select clearable multiple v-model="form.pkSellingPoint">
<el-option
v-for="item in mdList"
:key="item.pkId"
:label="item.label"
:value="item.pkId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1156')">
<el-select clearable v-model="form.pkAgreement">
<el-option
v-for="item in agreementList"
:key="item.pkId"
:label="item.title"
:value="item.pkId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_664')" prop="isFreeMail">
<el-select clearable v-model="form.isFreeMail">
<el-option
v-for="item in postList"
:key="item.val"
:label="item.text"
:value="item.val"
></el-option>
</el-select>
</el-form-item>
<div v-if="form.isFreeMail == 1" class="baoyou">
<el-checkbox-group
v-model="form.checkList"
@change="getTrans"
>
<el-checkbox
v-for="(item, index) in transportTypeList"
:key="item.value"
:label="item.value"
>
<div>{{ item.label }}</div>
<el-select
clearable
v-show="item.value == 1"
v-model="form.pkLandPostage"
>
<el-option
v-for="item in postMoneyList1"
:key="item.pkId"
:label="item.tempName"
:value="item.pkId"
></el-option>
</el-select>
<el-select
clearable
v-show="item.value == 2"
v-model="form.pkAirPostage"
>
<el-option
v-for="item in postMoneyList2"
:key="item.pkId"
:label="item.tempName"
:value="item.pkId"
></el-option>
</el-select>
<el-select
clearable
v-show="item.value == 3"
v-model="form.pkOceanPostage"
>
<el-option
v-for="item in postMoneyList3"
:key="item.pkId"
:label="item.tempName"
:value="item.pkId"
></el-option>
</el-select>
</el-checkbox>
</el-checkbox-group>
</div>
</el-col>
</el-row>
<el-row :gutter="40">
<el-col :span="8">
<el-form-item :label="$t('w_0434')">
<el-date-picker
v-model="form.putOnTime"
type="datetime"
:placeholder="$t('CK_KS_38')"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('w_0435')">
<el-date-picker
v-model="form.putOffTime"
type="datetime"
:placeholder="$t('CK_KS_38')"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1159')">
<el-date-picker
v-model="form.arrivalTime"
type="datetime"
:placeholder="$t('CK_KS_38')"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('MN_F_T_1160')">
<el-input
clearable
v-model="form.warnMessage"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1161')" prop="videoUrl">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg1"
@delImg="delImg1"></UpDataImg> -->
<imageUpload v-model="form.videoUrl" :isVideo="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_1162')" prop="cover">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg2"
@delImg="delImg2"></UpDataImg> -->
<imageUpload v-model="form.cover" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')" prop="cover1">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg3"
@delImg="delImg3"></UpDataImg> -->
<imageUpload v-model="form.cover1" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')" prop="cover2">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg4"
@delImg="delImg4"></UpDataImg> -->
<imageUpload v-model="form.cover2" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')" prop="cover3">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg5"
@delImg="delImg5"></UpDataImg> -->
<imageUpload v-model="form.cover3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')" prop="cover4">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg6"
@delImg="delImg6"></UpDataImg> -->
<imageUpload v-model="form.cover4" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg7"
@delImg="delImg7"></UpDataImg> -->
<imageUpload v-model="form.cover5" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('MN_F_T_351')">
<!-- <el-input clearable v-model="form.name"
:placeholder="$t('S_C_70')"></el-input> -->
<!-- <UpDataImg :maxLength="1"
ref="upImg"
@getImg="getImg8"
@delImg="delImg8"></UpDataImg> -->
<imageUpload v-model="form.cover6" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('w_0115')" prop="details">
<editor
ref="sptwEditor1"
v-model="form.details"
:min-height="196"
:uploadUrl="uploadImgUrl"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="规格与包装">
<el-row v-for="item,index in form.waresSpecsPackList"
:key="index">
<el-col :span="10"
style="margin-right:20px">
<el-input clearable v-model="item.key"
placeholder="规格名称"></el-input>
</el-col>
<el-col :span="10"
style="margin-right:10px">
<el-input clearable v-model="item.value"
placeholder="规格内容"></el-input>
</el-col>
<el-col :span="2"
v-show="index == form.waresSpecsPackList.length-1">
<i class="el-icon-circle-plus-outline addIcon"
@click="addGg"></i>
</el-col>
<el-col :span="2"
v-show="index != form.waresSpecsPackList.length-1">
<i class="el-icon-remove-outline addIcon"
@click="removeGg(index)"></i>
</el-col>
</el-row>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item :label="$t('w_0125')" prop="afterGuarantee">
<editor
ref="sptwEditor3"
v-model="form.afterGuarantee"
:min-height="196"
:uploadUrl="uploadImgUrl"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 产品明细 -->
<div v-show="tabActive == 1">
<Cpmx ref="cpmx" @getTableList="getTableList"></Cpmx>
</div>
<!-- 规格明细 -->
<div v-show="tabActive == 2">
<Ggmx ref="ggmxed" @getGoodList="getGoodList"></Ggmx>
</div>
<!-- 团队配置 -->
<div v-show="tabActive == 3" class="teamPz">
<div class="tit">{{ $t("MN_F_T_1163") }}</div>
<div class="xian"></div>
<el-form
ref="team"
:model="form"
style="width: 1200px; padding: 0 20px"
label-width="auto"
>
<el-row
:gutter="20"
v-for="(item, index) in form.waresAuthorityList"
:key="index"
>
<el-col :span="10">
<el-form-item :label="$t('MN_F_T_1165')">
<el-select
clearable
v-model="item.authorityType"
@change="getTeamList(item.authorityType)"
>
<el-option
v-for="cld in xyList"
v-show="!(index > 0 && cld.value == 5)"
:key="cld.value"
:label="cld.label"
:value="cld.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="10"
v-show="form.waresAuthorityList[index].authorityType != 5"
>
<el-form-item :label="$t('MN_F_T_362')">
<el-input
clearable
v-model="item.memberCode"
:placeholder="$t('S_C_70')"
></el-input>
</el-form-item>
</el-col>
<el-col
v-show="
form.waresAuthorityList[index].authorityType != 5 &&
index !== form.waresAuthorityList.length - 1
"
:span="4"
>
<i
class="el-icon-remove-outline addIcon"
@click="removeTeamPz(index)"
></i>
</el-col>
<el-col
v-show="
form.waresAuthorityList[index].authorityType != 5 &&
index == form.waresAuthorityList.length - 1
"
:span="4"
>
<i
class="el-icon-circle-plus-outline addIcon"
@click="addTeamPz"
></i>
</el-col>
</el-row>
</el-form>
<!-- <Ggmx ref="ggmxed"></Ggmx> -->
</div>
<!-- 级差配置 -->
<div v-show="tabActive == 4">
<Jcpz ref="jcpzed" @getRangList="getRangList"></Jcpz>
</div>
<!-- 等级配置 -->
<div v-show="tabActive == 5" class="teamPz">
<div class="djpz">
<div class="tit">{{ $t("MN_F_T_1166") }}</div>
<div class="djpz_i">{{ $t("MN_F_T_1167") }}</div>
</div>
<div class="xian"></div>
<el-form
ref="team"
:model="form"
style="width: 1200px; padding: 0 20px"
label-width="auto"
>
<div class="djpz_a">
<el-checkbox v-model="levelAll" @change="getLevel">{{
$t("ENU_ACHIEVEMENT_TYPE_1")
}}</el-checkbox>
<div class="djpz_g">
<el-checkbox-group
v-model="form.waresGradeIds"
@change="getLevelAll"
>
<el-checkbox
v-for="item in levelList"
:key="item.pkId"
:label="item.pkId"
>{{ item.gradeName }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
</el-form>
<!-- <Ggmx ref="ggmxed"></Ggmx> -->
</div>
<!-- 奖衔配置 -->
<div v-show="tabActive == 6" class="teamPz">
<div class="djpz">
<div class="tit">{{ $t("MN_F_T_109") }}</div>
<!-- <div class="djpz_i">{{$t('MN_F_T_1167')}}</div> -->
</div>
<div class="xian"></div>
<el-form
ref="team"
:model="form"
style="width: 1200px; padding: 0 20px"
label-width="auto"
>
<div class="djpz_a">
<el-checkbox v-model="gradeAll" @change="getGrade">{{
$t("ENU_ACHIEVEMENT_TYPE_1")
}}</el-checkbox>
<div class="djpz_g">
<el-checkbox-group
v-model="form.waresAwardsIds"
@change="getGradeAll"
>
<el-checkbox
v-for="item in awardsList"
:key="item.pkId"
:label="item.pkId"
>{{ item.awardsName }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
</el-form>
</div>
<!-- 商品权限 -->
<div v-show="tabActive == 7" class="teamPz">
<div class="djpz">
<div class="tit">商品权限</div>
<!-- <div class="djpz_i">{{$t('MN_F_T_1167')}}</div> -->
</div>
<div class="xian"></div>
<el-form
ref="team"
:model="form"
style="width: 1200px; padding: 0 20px"
label-width="auto"
>
<div class="djpz_a">
<div class="djpz_g">
<el-checkbox-group v-model="form.waresMemberAuthorizeList">
<el-checkbox
v-for="item in authorityList"
:key="item.value"
:label="item.value"
>{{ item.label }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
</el-form>
</div>
</div>
<div class="footer">
<el-button size="small" class="cancelBtn" @click="goBack">
{{ $t("ENU_P_TYPE0") }}</el-button
>
<el-button
size="small"
v-hasButtons="['GoodsReleaseConfirm']"
@click="submit('form')"
style="background-color: #c8161d; border-color: #c8161d"
class="sureBtn"
>
{{ $t("MN_F_32") }}</el-button
>
</div>
</div>
</div>
</template>
<script>
import Editor from "@/components/Editor";
import Cpmx from "@/views/goodsManage/goodsRelease/cpmx.vue";
import Ggmx from "@/views/goodsManage/goodsRelease/ggmx.vue";
import Jcpz from "@/views/goodsManage/goodsRelease/jcpz.vue";
import { getToken } from "@/utils/auth";
import UpDataImg from "@/components/upDataImg";
import * as api from "@/api/product.js";
import { specialArea } from "@/api/configManage";
import ImageUpload from "@/components/ImageUpload";
import { isLocals } from "@/utils/numberToCurrency";
import { getAwardsListChiose, getAwardsNewListChiose } from "@/api/level";
export default {
name: "Jcsz",
components: {
ImageUpload,
Editor,
UpDataImg,
Jcpz,
Cpmx,
Ggmx,
},
data() {
return {
levelAll: false,
gradeAll: false,
// 产品明细
cpList: [],
uploadImgUrl: process.env.VUE_APP_BASE_API + "/system/upload",
headers: {
Authorization: getToken(),
},
dialogImageUrl: "",
dialogVisible: false,
form: {
isMakerGift: 1,
waresGradeIds: [],
waresAwardsIds: [],
sales: "",
sortStatus: 0,
waresCode: "",
sort: "",
sptw: "",
ysList: [],
bzList: [],
pkGuaranteeLabel: [],
specialArea: "",
checkList: [],
waresMemberAuthorizeList: [],
waresAuthorityList: [
{
authorityType: 5,
memberCode: "",
},
],
waresSpecsPackList: [{ key: "", value: "" }],
},
moren: "/goodsManage/goodsRelease/jcsz",
tabActive: 0,
agreeList: [
{
text: this.$t("ENU_POPUP_TYPE_1"),
val: 0,
},
{
text: this.$t("ENU_POPUP_TYPE_2"),
val: 1,
},
],
// 套餐类型
tcList: [
{
text: this.$t("MN_F_T_1047"),
val: 0,
},
{
text: this.$t("MN_F_T_1046"),
val: 1,
},
],
postList: [
{
text: this.$t("MN_F_T_666"),
val: 0,
},
{
text: this.$t("MN_F_T_667"),
val: 1,
},
],
isTj: [
{
label: this.$t("MN_F_T_450"),
value: 0,
},
{
label: this.$t("MN_F_T_1170"),
value: 1,
},
],
xsList: [
{
text: this.$t("MN_F_T_1168"),
val: 0,
},
{
text: this.$t("MN_F_T_1169"),
val: 1,
},
],
topList: [
{
name: this.$t("MN_F_T_1122"),
id: 0,
},
{
name: this.$t("MN_F_T_1164"),
id: 1,
},
{
name: this.$t("MN_F_T_617"),
id: 2,
},
{
name: this.$t("MN_F_T_1163"),
id: 3,
},
// {
// name: this.$t("MN_F_T_623"),
// id: 4,
// },
{
name: this.$t("MN_F_T_1166"),
id: 5,
},
{
name: this.$t("MN_F_T_109"),
id: 6,
},
{
name: "商品权限",
id: 7,
},
],
goodList: [],
copyArr: [],
// 血缘列表
xyList: "",
// 海陆空
transportTypeList: [],
//商品分类
hierarchyList: [],
// 所属专区
areaList: [],
// 预售状态
presaleList: [],
//供应方式
gyList: [],
// 前缀标签
qzList: [],
// 酷炫标签
kxList: [],
// 保障标签
bzList: [],
// 卖点标签
mdList: [],
// 协议
agreementList: [],
//邮费模板
postMoneyList1: [],
postMoneyList2: [],
postMoneyList3: [],
levelList: [],
rules: {
waresName: [
{ required: true, message: this.$t("w_0253"), trigger: "blur" },
],
sortStatus: [{ required: true, message: "请选择", trigger: "change" }],
waresCode: [
{ required: true, message: "请输入商品编码", trigger: "blur" },
],
sellingPoints: [
{ required: true, message: "请输入商品卖点", trigger: "blur" },
],
sales: [{ required: true, message: "请输入商品销量", trigger: "blur" }],
waresPrice: [
{ required: true, message: this.$t("MN_F_T_1043"), trigger: "blur" },
],
waresAchieve: [
{ required: true, message: "请输入商品业绩", trigger: "blur" },
],
sort: [
{ required: true, message: this.$t("MN_F_T_1137"), trigger: "blur" },
],
pkAreaClassifys: [
{ required: true, message: this.$t("MN_F_T_457"), trigger: "change" },
],
specialArea: [
{ required: true, message: "请选择所属专区", trigger: "change" },
],
isPutOn: [
{ required: true, message: "请选择上架状态", trigger: "change" },
],
operateScope: [
{ required: true, message: "请选择供应方式", trigger: "change" },
],
preSaleStatus: [
{
required: true,
message: this.$t("MN_F_T_1104"),
trigger: "change",
},
],
isSale: [
{ required: true, message: "请选择销售状态", trigger: "change" },
],
isSingle: [
{
required: true,
message: this.$t("MN_F_T_1045"),
trigger: "change",
},
],
pkAgreement: [
{ required: true, message: "请选择补充协议", trigger: "change" },
],
isFreeMail: [
{ required: true, message: "请选择包邮类型", trigger: "change" },
],
videoUrl: [
{ required: true, message: "请上传商品视频", trigger: "blur" },
],
cover: [{ required: true, message: "请上传视频主图", trigger: "blur" }],
cover1: [
{ required: true, message: this.$t("MN_F_T_356"), trigger: "blur" },
],
cover2: [
{ required: true, message: this.$t("MN_F_T_356"), trigger: "blur" },
],
cover3: [
{ required: true, message: this.$t("MN_F_T_356"), trigger: "blur" },
],
cover4: [
{ required: true, message: this.$t("MN_F_T_356"), trigger: "blur" },
],
details: [
{ required: true, message: "请输入商品详情", trigger: "blur" },
],
afterGuarantee: [
{ required: true, message: "请输入售后保障", trigger: "blur" },
],
},
yesNo: [],
waresTypeList: [],
specialCurrency: [],
awardsList: [],
authorityList: [],
isTrue: false,
sortList: [],
};
},
mounted() {
// 血缘关系
this.getXYList();
// 商品编码
this.getWaresCode();
// 运输方式
this.getTransportType();
//查询分类父子级关系
this.get_hierarchy_list();
// 获取专区
this.getArea();
// 供应方式
this.supply_way();
// 查询预售状态
this.presale_status();
//四个标签
this.labelAll();
// 协议接口
this.getAgreementList();
// 邮费模板
this.getPostageList();
// 排序
// this.getWaresSort()
this.getOther();
this.$refs.box.scrollTop = 0;
this.$store.commit("settings/GGMX_SETTING", []);
// 获取极差列表
this.getRangeList();
},
methods: {
isLocals,
getOther() {
api.get_sort().then((res) => {
this.sortList = res.data;
});
api.yes_no().then((res) => {
this.yesNo = res.data;
});
api.wares_type().then((res) => {
this.waresTypeList = res.data;
});
api.special_currency().then((res) => {
this.specialCurrency = res.data;
});
getAwardsNewListChiose().then((res) => {
this.awardsList = res.rows;
});
api.ERegistrationAuthority().then((res) => {
this.authorityList = res.data;
});
},
// getWaresSort() {
// api.waresSort().then((res) => {
// this.form.sort = res.data
// })
// },
getLevel(e) {
if (e) {
let levelArr = this.levelList.map((item) => {
return item.pkId;
});
this.form.waresGradeIds = levelArr;
} else {
this.form.waresGradeIds = [];
}
},
getLevelAll(e) {
if (e.length == this.levelList.length) {
this.levelAll = true;
} else {
this.levelAll = false;
}
},
getGrade(e) {
if (e) {
let gradeArr = this.awardsList.map((item) => {
return item.pkId;
});
this.form.waresAwardsIds = gradeArr;
} else {
this.form.waresAwardsIds = [];
}
},
getGradeAll(e) {
if (e.length == this.awardsList.length) {
this.gradeAll = true;
} else {
this.gradeAll = false;
}
},
getRangeList() {
api.rangeNewList().then((res) => {
this.levelList = res.data;
});
},
getWaresCode() {
api.getWaresCode().then((res) => {
this.form.waresCode = res.msg;
});
},
goBack() {
this.$router.go(-1);
},
addGg() {
this.form.waresSpecsPackList.push({ key: "", value: "" });
},
submit() {
if (!this.form.waresSpecsSkuList) {
this.$message({
message: this.$t("MN_F_T_1172"),
type: "warning",
});
return false;
}
this.$refs["form"].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: "努力提交中",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
this.$store.commit("settings/GGMX_SETTING", []);
api.waresSave(this.form).then((res) => {
loading.close();
if (res.code == 200) {
this.$message({
message: this.$t("MN_F_T_477"),
type: "success",
});
this.$router.replace({
path: "/goodsManage/goodsList/goodsList",
});
} else {
this.$message({
message: res.msg,
type: "warning",
duration: 3000,
});
}
});
} else {
return false;
}
});
},
getTrans(data) {
this.form.isLandTrans = "";
this.form.isAirTrans = "";
this.form.isOceanTrans = "";
data.forEach((item) => {
if (item == 1) {
this.form.isLandTrans = 0;
} else if (item == 2) {
this.form.isAirTrans = 0;
} else if (item == 3) {
this.form.isOceanTrans = 0;
}
});
},
getTeamList(val) {
if (val == 5) {
this.form.waresAuthorityList = [
{
authorityType: 5,
memberCode: "",
},
];
}
},
getPostageList() {
// 陆运
api.getPostageList({ tranType: 1 }).then((res) => {
this.postMoneyList1 = res.data;
});
// 空运
api.getPostageList({ tranType: 2 }).then((res) => {
this.postMoneyList2 = res.data;
});
// 海运
api.getPostageList({ tranType: 3 }).then((res) => {
this.postMoneyList3 = res.data;
});
},
getAgreementList() {
api.getAgreementList().then((res) => {
this.agreementList = res.data;
});
},
//四个标签
labelAll() {
// 前缀标签
api.labelAll({ labelType: 1 }).then((res) => {
this.qzList = res.data;
});
// 酷炫标签
api.labelAll({ labelType: 2 }).then((res) => {
this.kxList = res.data;
});
// 保障标签
api.labelAll({ labelType: 3 }).then((res) => {
this.bzList = res.data;
});
// 卖点标签
api.labelAll({ labelType: 4 }).then((res) => {
this.mdList = res.data;
});
},
// 供应方式
supply_way() {
api.supply_way().then((res) => {
this.gyList = res.data;
});
},
// 查询预售状态
presale_status() {
api.presale_status().then((res) => {
this.presaleList = res.data;
});
},
// 获取专区
getArea() {
specialArea().then((res) => {
this.areaList = res.data;
});
},
// 商品分类赋值
flChange(value) {
console.log(
"%c [ form.pkAreaClassifys ]-770",
"font-size:13px; background:#42289a; color:#866cde;",
this.form.pkAreaClassifys
);
this.form.pkAreaClassify = value[value.length - 1];
},
selSpecial(e) {
this.get_hierarchy_list(e);
if (
e == 3 ||
e == 26 ||
e == 12 ||
e == 22 ||
e == 14 ||
e == 43 ||
e == 44
) {
this.$set(this, "topList", [
{
name: this.$t("MN_F_T_1122"),
id: 0,
},
{
name: this.$t("MN_F_T_1164"),
id: 1,
},
{
name: this.$t("MN_F_T_617"),
id: 2,
},
{
name: this.$t("MN_F_T_1163"),
id: 3,
},
{
name: this.$t("MN_F_T_623"),
id: 4,
},
{
name: this.$t("MN_F_T_1166"),
id: 5,
},
{
name: this.$t("MN_F_T_109"),
id: 6,
},
{
name: "商品权限",
id: 7,
},
]);
} else {
this.$set(this, "topList", [
{
name: this.$t("MN_F_T_1122"),
id: 0,
},
{
name: this.$t("MN_F_T_1164"),
id: 1,
},
{
name: this.$t("MN_F_T_617"),
id: 2,
},
{
name: this.$t("MN_F_T_1163"),
id: 3,
},
{
name: this.$t("MN_F_T_1166"),
id: 5,
},
{
name: this.$t("MN_F_T_109"),
id: 6,
},
{
name: "商品权限",
id: 7,
},
]);
}
},
// 查询分类父子级关系
get_hierarchy_list(val) {
api
.get_hierarchy_list({
specialArea: val || null,
})
.then((res) => {
this.hierarchyList = res.data;
});
},
// 运输方式
getTransportType() {
api.transportType().then((res) => {
this.transportTypeList = res.data;
});
},
getXYList() {
api.getEWaresPermissionTypeList().then((res) => {
console.log(
"%c [ res ]-451",
"font-size:13px; background:#73d160; color:#b7ffa4;",
res
);
this.xyList = res.data;
});
},
addTeamPz() {
this.form.waresAuthorityList.push({
kjlx: "",
teamOrder: "",
});
},
removeGg(index) {
this.form.waresSpecsPackList.splice(index, 1);
},
removeTeamPz(index) {
this.form.waresAuthorityList.splice(index, 1);
},
getRangList(data) {
this.form.waresRangeList = data;
},
// 切换tab
handleLink(id) {
if (id == 2) {
if (this.cpList.length == 0) {
this.$message({
message: this.$t("MN_F_T_1171"),
type: "warning",
});
} else {
if (this.isTrue) {
this.$message({
message: "产品明细存在相同销售类型,请核对",
type: "warning",
});
} else {
this.tabActive = id;
this.$refs.box.scrollTop = 0;
this.$refs.ggmxed.getData(this.cpList, this.form.specialArea);
}
}
} else if (id == 4) {
this.tabActive = id;
this.$refs.box.scrollTop = 0;
this.$refs.jcpzed.getAllData(
this.goodList,
this.copyArr,
this.form.specialArea
);
} else {
this.tabActive = id;
this.$refs.box.scrollTop = 0;
}
// this.tabActive = id
// this.$refs.box.scrollTop = 0
},
getGoodList(goodList, copyArr) {
this.goodList = goodList;
this.copyArr = copyArr;
let waresSpecsSkuList = [];
this.goodList.forEach((item) => {
if (item.showList) {
waresSpecsSkuList.push(...item.showList);
}
});
this.form.waresSpecsSkuList = waresSpecsSkuList;
},
// // 保证
// bzChange(val) {
// this.form.pkGuaranteeLabel = this.form.pkGuaranteeLabels
// },
// // 卖点
// mdChange(val) {
// console.log('%c [ val ]-828', 'font-size:13px; background:#f8a68c; color:#ffead0;', val)
// this.form.pkSellingPoint = val
// },
// 多选框
changeYsfs() {},
// 获取产品明细数组内容
getTableList(data, isTrue) {
console.log(
"%c [ data ]-1313",
"font-size:13px; background:#442827; color:#886c6b;",
data
);
this.isTrue = isTrue;
this.form.waresDetailList = data;
this.cpList = data.map((item) => {
return {
pkProduct: item.pkProduct,
isGift: item.isGift,
quantity: item.quantity,
};
});
},
getImg1(data) {
this.form.videoUrl = data;
},
delImg1() {},
getImg2(data) {
this.form.cover = data;
},
delImg2() {},
getImg3(data) {
this.form.cover1 = data;
},
delImg3() {},
getImg4(data) {
this.form.cover2 = data;
},
delImg4() {},
getImg5(data) {
this.form.cover3 = data;
},
delImg5() {},
getImg6(data) {
this.form.cover4 = data;
},
delImg6() {},
getImg7(data) {
this.form.cover5 = data;
},
delImg7() {},
getImg8(data) {
this.form.cover6 = data;
},
delImg8() {},
},
};
</script>
<style scoped lang="scss">
::v-deep .el-select,
.el-cascader {
width: 100%;
}
::v-deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100%;
}
.topbox {
align-items: center;
padding: 3px 0 3px 0;
display: flex;
// background: skyblue;
.levelList_i {
margin-left: 20px;
position: relative;
cursor: pointer;
padding: 4px 15px;
// width: 88px;
// height: 34px;
border-radius: 17px;
border: 1px solid #cccccc;
font-size: 14px;
font-family: MicrosoftYaHei;
text-align: center;
// 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;
}
}
.page {
height: calc(100vh - 50px);
overflow: hidden;
background: #f9f9f9;
padding-top: 20px;
}
.main {
display: flex;
flex-direction: column;
height: calc(100vh - 124px);
overflow: hidden;
}
.contain {
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
margin: 0px 20px 0 20px;
height: 100%;
overflow-y: auto;
padding: 0 10px;
overflow-x: hidden;
}
.footer {
height: 68px;
background: #ffffff;
box-shadow: 0px -3px 20px 0px rgba(204, 204, 204, 0.5);
margin: 0 20px;
display: flex;
justify-content: center;
align-items: center;
.thebtn1 {
background: #3181e5;
color: #ffffff;
padding: 9px 45px;
}
.thebtn2 {
background: #cccccc;
color: #ffffff;
padding: 9px 45px;
}
}
.addIcon {
font-size: 22px;
line-height: 40px;
}
.teamPz {
margin: 0 -20px;
overflow-x: hidden;
.xian {
height: 1px;
background: rgba(0, 0, 0, 0.1);
margin-bottom: 20px;
}
.tit {
font-size: 14px;
font-weight: bold;
color: #333333;
padding: 0 20px;
border-left: 5px solid #c8161d;
margin: 15px 0;
margin-right: -20px;
}
}
.baoyou {
::v-deep .el-checkbox {
display: flex;
align-items: center;
margin-right: 0px;
margin-bottom: 10px;
}
::v-deep .el-checkbox__label {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
}
::v-deep .el-input {
width: auto;
}
::v-deep .el-select {
width: auto;
}
}
.djpz {
display: flex;
align-items: center;
}
.djpz_i {
margin-left: 10px;
font-size: 10px;
font-weight: 400;
color: #999999;
}
.djpz_a {
display: flex;
align-items: center;
.djpz_g {
display: inline-block;
margin-left: 20px;
}
}
::v-deep .el-form-item {
margin-bottom: 15px;
}
</style>