<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
|
<link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
|
<link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
|
|
<!-- 富文本编辑器 -->
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.config.js}"></script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.all.js}">
|
</script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
|
|
|
<style>
|
.unitbox .el-col {
|
margin-left: 5px;
|
|
}
|
|
|
|
.measureInput {
|
width: 150px;
|
}
|
|
.tabs {
|
margin-bottom: 80px;
|
}
|
|
|
</style>
|
</head>
|
<body>
|
<div class="ibox-content" id="app" v-cloak @click="hidePanel">
|
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-form">
|
|
<el-tabs class="tabs" type="card" v-model="activeName" @tab-click="handleClick">
|
<el-tab-pane label="基础资料" name="tab1">
|
|
<p class="el-big-title">基础资料</p>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="商品名称" prop="name">
|
<el-input v-model="form.name"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="2" :span="10" >
|
<el-form-item label="商品编码" prop="code">
|
<el-input v-model="form.code"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="商品分类" prop="cateId">
|
<treeselect v-model="form.cateId"
|
:multiple="false"
|
:normalizer="normalizer"
|
:options="shoppingGoodscategoryTreeData"
|
placeholder="请选择商品分类"/>
|
</el-form-item>
|
</el-col>
|
|
<el-col :offset="2" :span="10" v-if="form.goodType=='家居产品'">
|
<el-form-item label="库存分类" prop="goodsSortId">
|
<treeselect v-model="form.goodsSortId"
|
:multiple="false"
|
:normalizer="normalizerGoodsTyps"
|
:options="goodsTypsTreeData"
|
placeholder="请选择库存分类"/>
|
</el-form-item>
|
</el-col>
|
|
<el-col :offset="2" :span="10" v-if="form.goodType!='家居产品'">
|
<el-form-item label="业绩规则" prop="achieveRuleId">
|
<el-select v-model="form.achieveRuleId" filterable placeholder="请选择业绩规则">
|
<el-option
|
v-for="item in achieveRulsList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
|
</el-row>
|
<el-row>
|
<el-col :span="10" v-if="form.goodType=='家居产品'">
|
<el-form-item label="规格" class="unitbox" prop="unit">
|
|
<el-col :span="2" style="text-align: center">
|
<span>一</span>
|
</el-col>
|
<el-col :span="5">
|
|
<el-form-item label="" prop="unit">
|
<el-select v-model="form.unit" filterable placeholder="件单位">
|
<el-option
|
v-for="item in unitList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="2" style="text-align: center">
|
<span>等于</span>
|
</el-col>
|
<el-col :span="5">
|
<el-form-item label="" prop="volume">
|
<el-input v-model="form.volume"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="5">
|
<el-form-item label="" prop="measure">
|
<el-select v-model="form.measure" filterable placeholder="容量单位">
|
<el-option
|
v-for="item in measureList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-form-item>
|
</el-col>
|
|
<el-col :offset="2" :span="10" v-if="form.goodType=='家居产品'">
|
<el-form-item label="条形码">
|
<el-input v-model="form.goodsNo"></el-input>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="成本价">
|
<el-input v-model="form.price"></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :offset="2" :span="10" v-if="form.goodType=='家居产品'">
|
<el-form-item label="批发价">
|
<el-input v-model="form.wholesale"></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :offset="2" :span="10" v-if="form.goodType=='项目'">
|
<el-form-item label="服务时长" prop="timeLength">
|
<el-input v-model="form.timeLength">
|
<template slot="append">分钟</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
|
|
<el-row v-if="form.goodType=='家居产品'">
|
<el-col :span="10">
|
<el-form-item label="往来单位">
|
<el-select v-model="form.supplierId" filterable placeholder="请选择往来单位">
|
<el-option
|
v-for="item in supplierList"
|
:key="item.id"
|
:label="item.supplName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="2" :span="10">
|
<el-form-item label="库存警戒值">
|
<el-input v-model="form.alarmNum"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
|
<el-row v-if="form.goodType=='套餐'">
|
<el-col :span="10">
|
<el-form-item label="套餐类型" prop="isCourse">
|
<el-radio-group v-model="form.isCourse">
|
<el-radio label="N">固定套餐(会员可以消费套餐内项目的固定次数)</el-radio>
|
<el-radio label="Y">任选套餐(设定一个套餐总次数,会员可在次数内消费套餐中任意项目)</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="2" :span="3">
|
<el-form-item label="是否无限次数" v-if="form.isCourse=='Y'">
|
<el-radio-group v-model="form.isInfinite">
|
<el-radio label="N">否</el-radio>
|
<el-radio label="Y">是</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="1" :span="5">
|
<el-form-item prop="carUseCount" label-width="120px" label="最大使用次数" v-if="form.isCourse=='Y' && form.isInfinite=='N'">
|
<el-input v-model="form.carUseCount"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row v-if="form.goodType=='充值卡'">
|
<el-col :span="10">
|
<el-form-item label="充值卡使用范围" label-width="150px" prop="isCourse">
|
<el-radio-group v-model="form.carIsAll">
|
<el-radio label="是" value="是">所有产品</el-radio>
|
<el-radio label="否" value="是">部分产品(设置部分产品则充值卡内的金额只能消费指定范围的产品)</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="2" :span="10">
|
<el-form-item label-width="120px" label="最大使用次数">
|
<el-input v-model="form.carUseCount"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="是否合作项目">
|
<el-radio-group v-model="form.isCooperate">
|
<el-radio label="2">否</el-radio>
|
<el-radio label="1">是</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
|
<p class="el-big-title">销售设置</p>
|
|
<el-row>
|
<el-col :span="10">
|
|
<el-form-item v-if="form.goodType!='充值卡'" label="销售价" prop="sealPice">
|
<el-input v-model="form.sealPice">
|
<template slot="append">元</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item v-if="form.goodType=='充值卡'" label="充值金额" prop="sealPice">
|
<el-input v-model="form.sealPice">
|
<template slot="append">元</template>
|
</el-input>
|
</el-form-item>
|
|
</el-col>
|
<el-col :offset="2" :span="10">
|
<el-form-item label="是否赠送">
|
<el-radio-group v-model="form.isPresent">
|
<el-radio label="否">不可以赠送</el-radio>
|
<el-radio label="是">可以赠送</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="form.goodType=='充值卡'">
|
<el-col :span="10">
|
<el-form-item label="赠送金额">
|
<el-input v-model="form.referencePice">
|
<template slot="append">元</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="上架状态">
|
<el-radio-group v-model="form.staus">
|
<el-radio label="上架"></el-radio>
|
<el-radio label="下架"></el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
|
|
</el-tab-pane>
|
<el-tab-pane label="关联产品设置" name="tab2">
|
|
<p class="el-big-msg" v-if="form.goodType=='家居产品'">家居产品不需要设置关联产品</p>
|
|
<!-- 项目绑定产品 -->
|
<div class="mixSearchBox" v-if="form.goodType=='项目'">
|
<p class="el-big-title">项目消耗产品设置</p>
|
<div class="listenDiv">
|
<!-- 搜索框 -->
|
<el-input class="searchInput" @input="searchGoods()" v-model="queryKey"
|
placeholder="搜索添加产品"></el-input>
|
<el-button icon="el-icon-search" type="primary" @click="searchGoods()">搜索</el-button>
|
<div class="searchResultTable" v-show="showSearchTable">
|
<!-- 搜索加载数据表格 -->
|
<el-table
|
v-loading="loading"
|
element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:max-height="400"
|
@selection-change="handleSelectionChange"
|
:data="searchTableData"
|
style="width: 100%">
|
<el-table-column
|
type="selection"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
prop="sealPice"
|
label="售价">
|
</el-table-column>
|
<el-table-column
|
prop="goodType"
|
label="类型">
|
</el-table-column>
|
<el-table-column
|
prop="cateName"
|
label="分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
size="mini"
|
@click="handleEdit(scope.$index, scope.row)">选择
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-row class="btn-box" >
|
<el-button size="mini" type="danger" @click="closeXm()">关闭</el-button>
|
<el-button size="mini" type="primary" @click="chouseGoods()">确认</el-button>
|
|
</el-row>
|
</div>
|
</div>
|
<el-row class="mt-20 mb-20">
|
<el-col :span="20">
|
<el-table
|
border
|
:height="500"
|
:data="form.assembleGoods"
|
style="width: 100%">
|
<el-table-column
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="shoppingGoods.name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
<el-table-column
|
label="容量">
|
<template slot-scope="scope">
|
{{ scope.row.shoppingGoods.volume }}{{ scope.row.shoppingGoods.measure }}
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="推荐用量">
|
<template slot-scope="scope">
|
<el-input class="measureInput" v-model="scope.row.total">
|
<template slot="append" >{{ scope.row.shoppingGoods.measure }}</template>
|
</el-input>
|
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="danger"
|
size="mini"
|
@click="removeItem(scope.$index, scope.row)">删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- 项目绑定产品end -->
|
|
<!-- 套餐绑定项目 -->
|
<div class="mixSearchBox" v-if="form.goodType=='套餐'">
|
<p class="el-big-title">套餐项目权益<code>(设置此套餐支持的服务项目和可用次数)</code></p>
|
<div class="listenDiv">
|
<!-- 搜索框 -->
|
<el-input class="searchInput" @input="searchProjInfo()" v-model="queryKey_taocan"
|
placeholder="搜索添加项目"></el-input>
|
<el-button icon="el-icon-search" type="primary" @click="searchProjInfo()">搜索</el-button>
|
<div class="searchResultTable" v-show="showSearchTable_taocan">
|
<!-- 搜索加载数据表格 -->
|
<el-table
|
v-loading="loading_taocan"
|
element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:max-height="400"
|
:data="searchTableData_taocan"
|
style="width: 100%">
|
<el-table-column
|
prop="code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
prop="sealPice"
|
label="售价">
|
</el-table-column>
|
<el-table-column
|
prop="goodType"
|
label="类型">
|
</el-table-column>
|
<el-table-column
|
prop="cateName"
|
label="分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
size="mini"
|
@click="handleEdit_taocan(scope.$index, scope.row)">选择
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
<el-row class="mt-20 mb-20">
|
<el-col :span="20">
|
<el-table
|
border
|
:height="500"
|
:data="form.assembleProj"
|
style="width: 100%">
|
<el-table-column
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="shoppingGoods.name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
label="次数">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.total"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="单次扣款">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.price"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column>
|
<template slot="header" slot-scope="scope">
|
<el-tooltip content="会员每消费一次扣除可以扣除总次数几次" placement="top">
|
<span>单次扣减次数<i class="el-icon-question"></i></span>
|
</el-tooltip>
|
</template>
|
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.deductionNum"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="danger"
|
size="mini"
|
@click="removeItem_taocan(scope.$index, scope.row)">删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- 套餐绑定项目end -->
|
|
|
<!-- 套餐绑定产品 -->
|
<div class="mixSearchBox" v-if="form.goodType=='套餐'">
|
<p class="el-big-title">套餐产品权益<code>(设置此套餐中包含的家居产品)</code></p>
|
<div class="listenDiv">
|
<!-- 搜索框 -->
|
<el-input class="searchInput" @input="searchJJGoods()" v-model="queryKey_jjcp"
|
placeholder="搜索添加项目"></el-input>
|
<el-button icon="el-icon-search" type="primary" @click="searchJJGoods()">搜索</el-button>
|
<div class="searchResultTable" v-show="showSearchTable_jjcp">
|
<!-- 搜索加载数据表格 -->
|
<el-table
|
v-loading="loading_taocan"
|
element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:max-height="400"
|
:data="searchTableData_jjcp"
|
style="width: 100%">
|
<el-table-column
|
prop="code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
prop="sealPice"
|
label="售价">
|
</el-table-column>
|
<el-table-column
|
prop="goodType"
|
label="类型">
|
</el-table-column>
|
<el-table-column
|
prop="cateName"
|
label="分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
size="mini"
|
@click="handleEdit_jjcp(scope.$index, scope.row)">选择
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
<el-row class="mt-20 mb-20">
|
<el-col :span="20">
|
<el-table
|
border
|
:height="500"
|
:data="form.assembleGoods"
|
style="width: 100%">
|
<el-table-column
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="shoppingGoods.name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.cateName"
|
width="280"
|
label="商品分类">
|
</el-table-column>
|
|
<el-table-column
|
label="产品数量">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.total"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="danger"
|
size="mini"
|
@click="removeItem(scope.$index, scope.row)">删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- 套餐绑定产品end -->
|
|
<!-- 卡项绑定产品 -->
|
<div class="mixSearchBox" v-if="form.goodType=='充值卡'">
|
<p class="el-big-title">卡项产品权益<code>(设置此卡项可以消费的产品范围)</code></p>
|
|
<el-row>
|
<el-col :span="5">
|
<h4>按分类设置</h4>
|
<el-tree
|
:data="shoppingGoodscategoryTreeData"
|
:default-checked-keys="defaultCates"
|
ref="tree"
|
:default-expand-all="true"
|
show-checkbox
|
node-key="id"
|
:props="defaultProps">
|
</el-tree>
|
</el-col>
|
<el-col :offset="2" :span="17">
|
<div class="listenDiv">
|
<!-- 搜索框 -->
|
<el-input class="searchInput" @input="searchCardGoods()" v-model="queryKey_card"
|
placeholder="搜索添加商品"></el-input>
|
<el-button icon="el-icon-search" type="primary" @click="searchCardGoods()">搜索</el-button>
|
<div class="searchResultTable" v-show="showSearchTable_card">
|
<!-- 搜索加载数据表格 -->
|
<el-table
|
v-loading="loading_taocan"
|
element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:max-height="400"
|
:data="searchTableData_card"
|
style="width: 100%">
|
<el-table-column
|
prop="code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
prop="sealPice"
|
label="售价">
|
</el-table-column>
|
<el-table-column
|
prop="goodType"
|
label="类型">
|
</el-table-column>
|
<el-table-column
|
prop="cateName"
|
label="分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
size="mini"
|
@click="handleEdit_card(scope.$index, scope.row)">选择
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
|
<el-row class="mt-20 mb-20">
|
<el-col :span="20">
|
<el-table
|
border
|
:height="500"
|
:data="form.cardAssembles"
|
style="width: 100%">
|
<el-table-column
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="shoppingGoods.name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.cateName"
|
width="280"
|
label="商品分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="danger"
|
size="mini"
|
@click="removeItem_card(scope.$index, scope.row)">删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
</el-row>
|
</el-col>
|
</el-row>
|
|
|
</div>
|
<!-- 卡项绑定产品end -->
|
|
|
<!-- 综合卡绑定产品 -->
|
<div class="mixSearchBox" v-if="form.goodType=='综合卡'">
|
<p class="el-big-title">综合卡<code>(综合卡绑定的产品)</code></p>
|
|
<el-row>
|
<el-col :span="17">
|
<div class="listenDiv">
|
<!-- 搜索框 -->
|
<el-input class="searchInput" @input="searchZhkGoods()" v-model="queryKey_zhk"
|
placeholder="搜索添加商品"></el-input>
|
<el-button icon="el-icon-search" type="primary" @click="searchZhkGoods()">搜索</el-button>
|
<div class="searchResultTable" v-show="showSearchTable_zhk">
|
<!-- 搜索加载数据表格 -->
|
<el-table
|
v-loading="loading_zhk"
|
element-loading-text="拼命加载中"
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:max-height="400"
|
:data="searchTableData_zhk"
|
style="width: 100%">
|
<el-table-column
|
prop="code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
|
<el-table-column
|
prop="sealPice"
|
label="售价">
|
</el-table-column>
|
<el-table-column
|
prop="goodType"
|
label="类型">
|
</el-table-column>
|
<el-table-column
|
prop="cateName"
|
label="分类">
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
size="mini"
|
@click="handleEdit_zhk(scope.$index, scope.row)">选择
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
<el-row class="mt-20 mb-20">
|
<el-col :span="20">
|
<el-table
|
border
|
:height="500"
|
:data="form.assembleGoods"
|
style="width: 100%">
|
<el-table-column
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.code"
|
label="产品编号"
|
width="100">
|
</el-table-column>
|
|
<el-table-column
|
prop="shoppingGoods.name"
|
width="280"
|
label="产品名称">
|
</el-table-column>
|
<el-table-column
|
prop="shoppingGoods.cateName"
|
width="280"
|
label="商品分类">
|
</el-table-column>
|
<el-table-column
|
label="产品数量">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.total"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="操作">
|
<template slot-scope="scope">
|
<el-button type="danger"
|
size="mini"
|
@click="removeItem(scope.$index, scope.row)">删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
</el-row>
|
</el-col>
|
</el-row>
|
|
|
</div>
|
<!-- 综合卡绑定产品end -->
|
|
|
</el-tab-pane>
|
<el-tab-pane label="描述设置" name="tab3">
|
|
<p class="el-big-title">产品图片</p>
|
<el-row class="mb-20">
|
<el-col :span="20">
|
<el-upload
|
action="/admin/multipleUploadFile/doUpload"
|
:file-list="fileList"
|
list-type="picture-card"
|
:on-preview="handlePictureCardPreview"
|
:on-remove="handleRemove"
|
:on-success="handleUploadSuccess"
|
>
|
<i class="el-icon-plus"></i>
|
</el-upload>
|
<el-dialog :visible.sync="dialogVisible">
|
<img width="100%" :src="dialogImageUrl" alt="">
|
</el-dialog>
|
</el-col>
|
</el-row>
|
|
|
<p class="el-big-title">商品详情</p>
|
<script style="width: 100%; height: 500px" id="description" name="description"
|
type="text/plain"></script>
|
|
</el-tab-pane>
|
<el-tab-pane label="高级设置" name="tab4">
|
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="最大销售数量">
|
<el-input v-model="form.carMaxSaleCount"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :offset="2" :span="10">
|
<el-form-item label="每人限购次数">
|
<el-input v-model="form.isOnce"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="自动下架时间">
|
<el-date-picker
|
v-model="form.saleOffTime"
|
type="date"
|
placeholder="选择日期">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="form.goodType!='家居产品'">
|
<el-form-item label="购买有效期">
|
<el-col :span="4">
|
<el-form-item label="" prop="isNum">
|
<el-input v-model.number="form.buyDateNum"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="2">
|
<el-form-item lable="">
|
<el-select v-model="form.buyDateUnit" placeholder="请选择">
|
<el-option
|
v-for="item in dateList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6" style="margin-left: 10px; color: #C0C4CC;">
|
<span>用户从购买日开始计算多长时间自动失效</span>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
<el-row v-if="form.goodType!='家居产品'">
|
<el-form-item label="消耗有效期">
|
<el-col :span="4">
|
<el-form-item label="" prop="isNum">
|
<el-input v-model.number="form.useDateNum"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="2">
|
<el-select v-model="form.useDateUnit" placeholder="请选择">
|
<el-option
|
v-for="item in dateList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="margin-left: 10px; color: #C0C4CC;">
|
<span>用户从第一次使用后开始计算多长时间自动生效</span>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
<el-row v-if="form.goodType!='家居产品'">
|
<el-form-item label="统一到期时间">
|
<el-col :span="6">
|
<el-date-picker
|
v-model="form.invalidTime"
|
type="date"
|
placeholder="选择日期">
|
</el-date-picker>
|
</el-col>
|
<el-col :span="10" style="margin-left: 10px; color: #C0C4CC;">
|
<span>在指定日期所有购买过本商品的统一失效,且在统一失效时间之后产品会自动下架</span>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
<p class="el-big-title">支付方式</p>
|
<el-row>
|
<el-col :offset="1">
|
<el-checkbox-group v-model="payMethodList">
|
<el-checkbox label="1">充值本金</el-checkbox>
|
<el-checkbox label="2">赠送金额</el-checkbox>
|
<el-checkbox label="3">积分</el-checkbox>
|
</el-checkbox-group>
|
</el-col>
|
</el-row>
|
<el-row v-if="shopInfo.shopType==1">
|
<el-col :span="10">
|
<p class="el-big-title">产品可用门店<code>不选默认为所有门店可用</code></p>
|
<el-select :multiple="true" v-model="form.useShop" >
|
<el-option
|
v-for="item in shopList"
|
:key="item.id"
|
:label="item.shopName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-col>
|
</el-row>
|
</el-tab-pane>
|
</el-tabs>
|
<el-form-item class="foot_bar">
|
<el-button :loading="submiting" type="primary" @click="submitForm('form')" v-if="albleEdit" >保存</el-button>
|
<el-button @click="closeFram()">关闭</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
</body>
|
<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
|
<script th:src="@{/plugin/vue-treeselect/vue-treeselect.umd.min.js}"></script>
|
<link rel="stylesheet" th:href="@{/plugin/vue-treeselect/vue-treeselect.min.css}">
|
|
|
<script>
|
var id = $.query.get("id");
|
var goodType = $.query.get("goodType");
|
|
//百度编辑器
|
var ue = {};
|
//校验方法
|
var ValidatorFactory = {
|
validateUseCount: function (rule, value, callback) {
|
|
|
}
|
};
|
|
Vue.component('ValidatorFactory', ValidatorFactory);
|
Vue.component('treeselect', VueTreeselect.Treeselect)
|
|
var app = new Vue({
|
el: '#app',
|
data: {
|
payMethodList : ['1', '2', '3'],
|
dateList : [{value : 'Y', label : '年'}, {value : 'M', label : '月'}, { value : 'D' , label : '日' }],
|
selectTreeParam: {
|
holder: '请选择商品类型',
|
treeData: [],
|
defaultCheckedKeys: [],
|
nodeKey: 'id',
|
defaultProps: {
|
children: 'children',
|
label: 'name'
|
},
|
},
|
//是否可以编辑
|
albleEdit:true,
|
//当前门店信息
|
shopInfo: {},
|
//所有非总部门店列表
|
shopList:[],
|
|
/*****项目表格数据*********/
|
//搜索关键词
|
queryKey: '',
|
//是否展示搜索表格
|
showSearchTable: false,
|
//搜索表格数据
|
searchTableData: [],
|
//表格加载效果
|
loading: false,
|
/******项目表格数据END********/
|
|
|
/******套餐表格数据********/
|
//搜索关键词
|
queryKey_taocan: '',
|
//是否展示搜索表格
|
showSearchTable_taocan: false,
|
//搜索表格数据
|
searchTableData_taocan: [],
|
//表格加载效果
|
loading_taocan: false,
|
/******套餐表格数据END********/
|
|
/******套餐家居产品表格数据********/
|
//搜索关键词
|
queryKey_jjcp: '',
|
//是否展示搜索表格
|
showSearchTable_jjcp: false,
|
//搜索表格数据
|
searchTableData_jjcp: [],
|
//表格加载效果
|
loading_jjcp: false,
|
/******套餐家居产品表格数据END********/
|
|
/******充值卡产品表格数据********/
|
//搜索关键词
|
queryKey_card: '',
|
//是否展示搜索表格
|
showSearchTable_card: false,
|
//搜索表格数据
|
searchTableData_card: [],
|
//表格加载效果
|
loading_card: false,
|
/******充值卡表格数据END********/
|
|
/******综合卡产品表格数据********/
|
//搜索关键词
|
queryKey_zhk: '',
|
//是否展示搜索表格
|
showSearchTable_zhk: false,
|
//搜索表格数据
|
searchTableData_zhk: [],
|
//表格加载效果
|
loading_zhk: false,
|
/******综合卡表格数据END********/
|
|
//提成规则
|
achieveRulsList:[],
|
|
//默认充值卡选中项
|
defaultCates: [],
|
|
//是否提交完
|
submiting: false,
|
|
activeName: 'tab1',
|
//充值卡树形展示商品分类
|
shoppingGoodscategoryTreeData: [],
|
defaultProps: {
|
children: 'children',
|
label: 'name'
|
},
|
|
|
//库存分类
|
goodsTypsTreeData: [],
|
//单位数据字典
|
unitList: [],
|
//容量数据字典
|
measureList: [],
|
//往来单位列表
|
supplierList: [],
|
|
//产品主图上传相关变量
|
dialogImageUrl: '',
|
dialogVisible: false,
|
fileList: [{}],
|
|
//表单数据
|
form: {
|
isPresent: '否',
|
isCooperate: '2',
|
staus: '上架',
|
//产品组合
|
assembleGoods: [],
|
//项目组合
|
assembleProj: [],
|
//充值卡绑定
|
cardAssembles: [],
|
//充值卡绑定产品分类
|
isCourse: 'N',
|
isInfinite : 'N',
|
carIsAll: '否',
|
useDateNum : '',
|
buyDateNum : '',
|
payMethods : '',
|
achieveRuleId:'',
|
|
},
|
submitUrl: '/admin/shoppinggoods/addShoppingGoods',
|
modifySubmitUrl: '/admin/shoppinggoods/modifyShoppingGoods',
|
//校验规则
|
rules: {
|
name: [{required: true, message: '请输入商品名称', trigger: 'blur'}],
|
code: [{required: true, message: '请输入商品编码', trigger: 'blur'}],
|
cateId: [{required: true, message: '请选择商品分类', trigger: 'blur'}],
|
sealPice: [{required: true, message: '请填写售价', trigger: 'blur'}],
|
},
|
|
},
|
|
/**
|
* 初始化数据表
|
*/
|
created: function () {
|
let _this = this;
|
this.getShoppinggoodscategory();
|
this.getGoodstype();
|
this.getDictionary();
|
this.getShopInfo();
|
this.getAchieveRule();
|
if(goodType=='家居产品'){
|
this.getSupplierList();
|
}
|
//初始化编辑器
|
ue = UE.getEditor('description');
|
if (id) {
|
ue.ready(function () {
|
//加载产品信息
|
_this.loadShoppingGoodsInfo(id);
|
})
|
//修改提交地址
|
this.submitUrl = this.modifySubmitUrl;
|
} else {
|
this.form.goodType = goodType;
|
}
|
},
|
|
methods: {
|
|
/**
|
* 获取规则
|
*/
|
getAchieveRule(){
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
data: {pageNum:1,pageSize:1000},
|
url: basePath + "/admin/achieveRule/selectList",
|
callback: function (data) {
|
_this.achieveRulsList=data.rows;
|
}
|
});
|
},
|
|
/**
|
* 商品分类树形组件格式化
|
*/
|
normalizer(node) {
|
return {
|
id: node.id,
|
label: node.name,
|
children: node.children,
|
}
|
},
|
|
/**
|
* 库存分类树形组件格式化
|
*/
|
normalizerGoodsTyps(node) {
|
return {
|
id: node.id,
|
label: node.typeName,
|
children: node.children,
|
}
|
},
|
|
|
/**
|
* 搜索套餐绑定的项目信息
|
* */
|
searchProjInfo() {
|
let _this = this;
|
if (this.queryKey_taocan && this.queryKey_taocan.trim().length > 0) {
|
this.showSearchTable_taocan = true;
|
this.loading_taocan = true;
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data: {name: _this.queryKey_taocan, goodType: '项目',limit:10000},
|
url: basePath + "/admin/shoppinggoods/showList",
|
callback: function (data) {
|
_this.searchTableData_taocan = data.rows;
|
_this.loading_taocan = false;
|
}
|
});
|
} else {
|
this.showSearchTable_taocan = false;
|
}
|
},
|
|
/**
|
* 搜索套餐绑定的项目信息
|
* */
|
searchJJGoods() {
|
let _this = this;
|
if (this.queryKey_jjcp && this.queryKey_jjcp.trim().length > 0) {
|
this.showSearchTable_jjcp = true;
|
this.loading_jjcp = true;
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data: {name: _this.queryKey_jjcp, goodType: '家居产品',limit:10000},
|
url: basePath + "/admin/shoppinggoods/showList",
|
callback: function (data) {
|
_this.searchTableData_jjcp = data.rows;
|
_this.loading_jjcp = false;
|
}
|
});
|
} else {
|
this.showSearchTable_jjcp = false;
|
}
|
},
|
/**
|
* 搜索综合卡绑定的项目信息
|
* */
|
searchZhkGoods() {
|
let _this = this;
|
if (this.queryKey_zhk && this.queryKey_zhk.trim().length > 0) {
|
this.showSearchTable_zhk = true;
|
this.loading_zhk = true;
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data: {name: _this.queryKey_zhk,queryNoGoodsype:'综合卡',limit:10000},
|
url: basePath + "/admin/shoppinggoods/showList",
|
callback: function (data) {
|
_this.searchTableData_zhk = data.rows;
|
_this.loading_zhk = false;
|
}
|
});
|
} else {
|
this.showSearchTable_zhk = false;
|
}
|
},
|
|
/**
|
* 选择套餐产品
|
* */
|
handleEdit_jjcp(index, row) {
|
let assembleGoods = this.form.assembleGoods;
|
if (!assembleGoods) {
|
assembleGoods = new Array();
|
this.form.assembleGoods = assembleGoods;
|
}
|
//是否已经被选择了
|
let selected = false;
|
this.form.assembleGoods.forEach(item => {
|
if (item.shoppingGoods.id == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
this.form.assembleGoods.push({
|
assembleGoodId: row.id,
|
total: 1,
|
shoppingGoods: row
|
});
|
}
|
// this.showSearchTable_jjcp = false;
|
},
|
/**
|
* 选择综合卡产品
|
* */
|
handleEdit_zhk(index, row) {
|
let assembleGoods = this.form.assembleGoods;
|
if (!assembleGoods) {
|
assembleGoods = new Array();
|
this.form.assembleGoods = assembleGoods;
|
}
|
//是否已经被选择了
|
let selected = false;
|
this.form.assembleGoods.forEach(item => {
|
if (item.shoppingGoods.id == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
this.form.assembleGoods.push({
|
assembleGoodId: row.id,
|
total: 1,
|
shoppingGoods: row
|
});
|
}
|
// this.showSearchTable_zhk = false;
|
},
|
|
|
/**
|
* 搜索项目绑定的产品信息
|
*/
|
searchGoods() {
|
let _this = this;
|
if (this.queryKey && this.queryKey.trim().length > 0) {
|
this.showSearchTable = true;
|
this.loading = true;
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data: {name: _this.queryKey, goodType: '家居产品',limit:10000},
|
url: basePath + "/admin/shoppinggoods/showList",
|
callback: function (data) {
|
_this.searchTableData = data.rows;
|
_this.loading = false;
|
}
|
});
|
} else {
|
this.showSearchTable = false;
|
}
|
},
|
|
|
/**
|
* 搜索套餐绑定的项目信息
|
* */
|
searchCardGoods() {
|
let _this = this;
|
if (this.queryKey_card && this.queryKey_card.trim().length > 0) {
|
this.showSearchTable_card = true;
|
this.loading_card = true;
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data: {name: _this.queryKey_card, limit: 10000},
|
url: basePath + "/admin/shoppinggoods/showList",
|
callback: function (data) {
|
_this.searchTableData_card = data.rows;
|
_this.loading_card = false;
|
}
|
});
|
} else {
|
this.showSearchTable_card = false;
|
}
|
},
|
|
/**
|
* 选择充值卡产品
|
* */
|
handleEdit_card(index, row) {
|
|
let cardAssembles = this.form.cardAssembles;
|
if (!cardAssembles) {
|
cardAssembles = new Array();
|
this.form.cardAssembles = cardAssembles;
|
}
|
//是否已经被选择了
|
let selected = false;
|
cardAssembles.forEach(item => {
|
if (item.goodsId == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
this.form.cardAssembles.push({
|
goodsId: row.id,
|
shoppingGoods: row,
|
type: '商品'
|
});
|
}
|
// this.showSearchTable_card = false;
|
},
|
|
|
/**
|
* 删除组合产品
|
*/
|
removeItem_card(index, row) {
|
this.form.cardAssembles.splice(index, 1);
|
},
|
|
/**
|
* 删除组合产品
|
*/
|
removeItem(index, row) {
|
this.form.assembleGoods.splice(index, 1);
|
},
|
/**
|
* 删除套餐绑定项目
|
*/
|
removeItem_taocan(index, row) {
|
this.form.assembleProj.splice(index, 1);
|
},
|
|
/**
|
* 项目选择家居产品
|
* */
|
handleEdit(index, row) {
|
let assembleGoods = this.form.assembleGoods;
|
if (!assembleGoods) {
|
assembleGoods = new Array();
|
this.form.assembleGoods = assembleGoods;
|
}
|
//是否已经被选择了
|
let selected = false;
|
this.form.assembleGoods.forEach(item => {
|
if (item.shoppingGoods.id == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
this.form.assembleGoods.push({
|
total: 1,
|
assembleGoodId: row.id,
|
shoppingGoods: row
|
});
|
}
|
// this.showSearchTable = false;
|
|
},
|
//点击多选
|
handleSelectionChange(val){
|
this.multipleSelection = val;
|
},
|
closeXm(){
|
this.showSearchTable = false;
|
},
|
//确认多选
|
chouseGoods(){
|
let assembleGoods = this.form.assembleGoods;
|
if (!assembleGoods) {
|
assembleGoods = new Array();
|
this.form.assembleGoods = assembleGoods;
|
}
|
|
for(let i=0;i<this.multipleSelection.length;i++){
|
var row=this.multipleSelection[i];
|
//是否已经被选择了
|
let selected = false;
|
this.form.assembleGoods.forEach(item => {
|
if (item.shoppingGoods.id == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
this.form.assembleGoods.push({
|
total: 1,
|
assembleGoodId: row.id,
|
shoppingGoods: row
|
});
|
}
|
}
|
this.showSearchTable = false;
|
},
|
|
|
/**
|
* 套餐选择产品
|
* */
|
handleEdit_taocan(index, row) {
|
let assembleProj = this.form.assembleProj;
|
if (!assembleProj) {
|
assembleProj = new Array();
|
this.form.assembleProj = assembleProj;
|
}
|
//是否已经被选择了
|
let selected = false;
|
this.form.assembleProj.forEach(item => {
|
if (item.shoppingGoods.id == row.id) {
|
selected = true;
|
return;
|
}
|
});
|
if (!selected) {
|
//设置默认值
|
this.form.assembleProj.push({
|
total: 1,
|
deductionNum: 1,
|
price: row.sealPice,
|
assembleGoodId: row.id,
|
shoppingGoods: row
|
});
|
}
|
// this.showSearchTable_taocan = false;
|
},
|
|
|
handleClick(tab, event) {
|
console.log(tab, event);
|
},
|
|
/**
|
* 提交表单
|
* */
|
submitForm(formName) {
|
this.submiting = true;
|
|
let _this = this;
|
|
if (this.fileList.length > 0) {
|
this.form.img = this.fileList[0].url;
|
}
|
|
this.form.description = ue.getContent();
|
|
if (_this.form.goodType == '充值卡') {
|
//获取充值卡绑定的分类
|
this.buildCardAssembleCates();
|
}
|
if(_this.form.useShop){
|
_this.form.useShop=_this.form.useShop.join(",");
|
}
|
|
if (_this.payMethodList.length != 0) {
|
_this.form.payMethods = this.payMethodList.join(",");
|
} else {
|
_this.form.payMethods = '';
|
}
|
|
if (this.validFormData()) {
|
|
this.$refs[formName].validate((valid) => {
|
console.log(valid);
|
if (valid) {
|
|
|
if ( _this.form.goodType == '套餐' && _this.form.isCourse == 'Y' && _this.form.isInfinite == 'N') {
|
if (!_this.form.carUseCount) {
|
this.$message.error('请输入套餐最大使用次数!');
|
_this.submiting = false;
|
return false;
|
}
|
}
|
|
if (_this.form.goodType == '套餐' && _this.form.isCourse == 'Y' && _this.form.isInfinite == 'Y') {
|
_this.form.carUseCount = 999;
|
}
|
|
|
AjaxProxy.requst({
|
app: _this,
|
data: _this.form,
|
url: basePath + _this.submitUrl,
|
callback: function (data) {
|
_this.$message({
|
message: data.info,
|
duration: 1000,
|
type: 'success',
|
onClose: function () {
|
_this.submiting = false;
|
_this.closeFram();
|
}
|
});
|
parent.myGrid.serchData();
|
},
|
fail: function () {
|
_this.submiting = false;
|
}
|
});
|
} else {
|
this.$message.error('提交数据有误,请核对后再提交!');
|
this.activeName = 'tab1';
|
_this.submiting = false;
|
return false;
|
}
|
});
|
} else {
|
_this.submiting = false;
|
}
|
},
|
|
|
/**
|
* 验证表单中的信息,这是关联验证
|
* */
|
validFormData() {
|
let form = this.form;
|
if (form.goodType == '套餐') {
|
if (form.assembleProj.length < 1) {
|
this.$message.error('套餐产品至少需要绑定一个项目');
|
this.activeName = 'tab2';
|
this.submiting = false;
|
return false;
|
}
|
} else if (form.goodType == '充值卡' && form.carIsAll == '否') {
|
if (form.cardAssembles.length < 1) {
|
this.$message.error('充值卡至少绑定一个产品');
|
this.activeName = 'tab2';
|
this.submiting = false;
|
return false;
|
}
|
} else if (form.goodType == '综合卡') {
|
if (form.assembleGoods.length < 1) {
|
this.$message.error('综合卡至少绑定一个产品');
|
this.activeName = 'tab2';
|
this.submiting = false;
|
return false;
|
}
|
}
|
return true;
|
},
|
|
/**
|
* 加载产品信息
|
* */
|
loadShoppingGoodsInfo(id) {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/admin/shoppinggoods/findShoppingGoods?id=' + id,
|
callback: function (data) {
|
_this.form = data.rows[0];
|
if (_this.form.description) {
|
console.log(_this.form.description);
|
ue.setContent(_this.form.description, true);
|
}
|
_this.form.useShop=MTools.strToArray(_this.form.useShop,",",true);
|
_this.payMethodList = MTools.strToArray(_this.form.payMethods,",",false);
|
_this.fileList[0].url = _this.form.img;
|
_this.defaultCates = data.mapInfo.cates;
|
_this.userAdbleEdit();
|
|
//如果是总产品加载总部分类信息
|
// _this.getShoppinggoodscategory(1);
|
_this.getGoodstype(1);
|
}
|
});
|
},
|
|
/**
|
* 判断用户是否可以编辑产品
|
*/
|
userAdbleEdit(){
|
console.log(this.form.id,
|
this.shopInfo.shopType,
|
this.shopInfo.id,
|
this.form.shopId)
|
|
if(this.form.id
|
&& this.shopInfo.shopType!=1
|
&& this.shopInfo.id!=this.form.shopId){
|
this.albleEdit=false;
|
}
|
|
},
|
/**
|
* 获取商品分类
|
* isZb 1 表示加载总部分类信息
|
*/
|
getShoppinggoodscategory(isZb) {
|
|
let url = '/admin/shoppinggoodscategory/all';
|
|
let _this = this;
|
|
let shopId=null;
|
if(_this.form){
|
shopId=_this.form.shopId;
|
}
|
console.log("shopId",shopId);
|
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
url: basePath +url,
|
data:{shopId:shopId},
|
callback: function (data) {
|
_this.shoppingGoodscategoryTreeData = MTools.createTreeModel(data.rows);
|
_this.selectTreeParam.treeData = _this.shoppingGoodscategoryTreeData;
|
}
|
});
|
},
|
|
/**
|
* 获取库存分类
|
* isZb 1 表示加载总部分类信息
|
*/
|
getGoodstype(isZb) {
|
let _this = this;
|
let url = '/admin/goodstype/all';
|
|
|
let shopId=null;
|
if(_this.form){
|
shopId=_this.form.shopId;
|
}
|
|
AjaxProxy.requst({
|
app: _this,
|
contentType: 'application/x-www-form-urlencoded',
|
data:{shopId:shopId},
|
url: basePath + url,
|
callback: function (data) {
|
_this.goodsTypsTreeData = MTools.createTreeModel(data.rows);
|
}
|
});
|
},
|
/**
|
* 获取当前门店信息
|
* */
|
getShopInfo() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/hiveErp/shopInfo/findMyShop',
|
callback: function (data) {
|
_this.shopInfo = data.rows[0];
|
_this.userAdbleEdit();
|
|
}
|
});
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/hiveErp/shopInfo/findShops',
|
callback: function (data) {
|
_this.shopList = data.rows;
|
}
|
});
|
},
|
/**
|
* 获取数据字典
|
*/
|
getDictionary() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
data: {type: '存货单位'},
|
url: basePath + '/admin/dataDictionary/v2/showDataDictionary',
|
callback: function (data) {
|
_this.unitList = data.rows;
|
}
|
});
|
AjaxProxy.requst({
|
app: _this,
|
data: {type: '计量单位'},
|
url: basePath + '/admin/dataDictionary/v2/showDataDictionary',
|
callback: function (data) {
|
_this.measureList = data.rows;
|
}
|
});
|
|
},
|
/**
|
* 加载往来单位
|
*/
|
getSupplierList() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/admin/supplier/all',
|
callback: function (data) {
|
_this.supplierList = data.rows;
|
_this.form.supplierId = data.rows[0].id;
|
}
|
});
|
},
|
/**
|
* 删除上传图片
|
*/
|
handleRemove(file, fileList) {
|
var list = this.fileList;
|
for (let i = 0; i < list.length; i++) {
|
if (list[i].url == file.url) {
|
list.splice(i, 1);
|
break;
|
}
|
}
|
this.fileList = list;
|
console.log(list);
|
|
},
|
|
handlePictureCardPreview(file) {
|
this.dialogImageUrl = file.url;
|
this.dialogVisible = true;
|
},
|
|
handleUploadSuccess(response, file, fileList) {
|
this.fileList.push({name: response.fileName, url: response.path});
|
console.log(this.fileList);
|
},
|
|
closeFram: function () {
|
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
},
|
|
/**
|
* 把充值卡绑定分类数据修改数据结构为后台需要的结构
|
*/
|
buildCardAssembleCates() {
|
let cates = this.$refs.tree.getCheckedNodes();
|
if (cates.length > 0) {
|
let cardAssembles = this.form.cardAssembles;
|
if (!cardAssembles) {
|
cardAssembles = new Array();
|
}
|
cates.forEach(item => {
|
cardAssembles.push({
|
cateId: item.id,
|
type: '分类'
|
});
|
});
|
}
|
},
|
hidePanel : function (event) {
|
let _this = this;
|
let searchBox = document.getElementsByClassName("listenDiv");
|
if (searchBox && searchBox.length != 0) {
|
if(searchBox.length > 1) {
|
if (_this.showSearchTable_taocan) {
|
if (!searchBox[0].contains(event.target)) {
|
_this.showSearchTable_taocan = false;
|
}
|
}
|
|
if (_this.showSearchTable_jjcp) {
|
if (!searchBox[1].contains(event.target)) {
|
_this.showSearchTable_jjcp = false;
|
}
|
}
|
} else {
|
|
if (!searchBox[0].contains(event.target)) {
|
_this.showSearchTable = false;
|
_this.showSearchTable_card = false;
|
_this.showSearchTable_zhk = false;
|
}
|
|
}
|
}
|
}
|
}
|
|
})
|
</script>
|
|
</body>
|
</html>
|