|
@@ -0,0 +1,595 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="goodsForm">
|
|
|
|
+ <div class="button-container" v-if="model != 'detail'">
|
|
|
|
+ <el-button type="primary" size="small" :loading="btnLoading" @click="submitForm">提 交</el-button>
|
|
|
|
+ <el-button size="small" @click="init">重 置</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form_center" v-loading="formLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
|
|
|
|
+ <el-form v-if="model !== 'detail'" ref="form" :model="form" :rules="rules" label-position="left" label-width="110px" :class="model == 'detail'?'pointer_events_none':''">
|
|
|
|
+ <el-form-item label="名称:" prop="goodName">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="form.goodName"
|
|
|
|
+ placeholder="请输入商品名称"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="类型:" prop="goodType">
|
|
|
|
+ <el-select v-model="form.goodType" placeholder="请选择商品类型" @change="changeGoodsType" style="width: 100%;">
|
|
|
|
+ <el-option v-for="(item, key) in goodTypes" :key="key" :label="item" :value="Number(key)"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- 会员/功能清单 -->
|
|
|
|
+ <template v-if="form.goodType">
|
|
|
|
+ <div class="vipOrFunList">
|
|
|
|
+ <div class="warp">
|
|
|
|
+ <template v-if="form.goodType == 1">
|
|
|
|
+ <p class="title">
|
|
|
|
+ 会员清单
|
|
|
|
+ </p>
|
|
|
|
+ <div style="height:calc(100% - 50px)">
|
|
|
|
+ <div>
|
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
|
|
|
|
+ <el-form-item label="会员名称" prop="vipTypeName">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="queryParams.vipTypeName"
|
|
|
|
+ placeholder="请输入会员名称"
|
|
|
|
+ clearable
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleCurrentChange(1)">搜索</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ <vipTable :tableData="tableData" :queryParams="queryParams" :loading="loading" :canChoose="true" :showCreateMessage="false">
|
|
|
|
+ <template slot="start_column" v-if="model != 'detail'">
|
|
|
|
+ <el-table-column type="index" label="序号" align="center" width="80px">
|
|
|
|
+ <template slot-scope="scope" v-if="reload">
|
|
|
|
+ <el-radio-group v-model="goodId1" >
|
|
|
|
+ <el-radio :label="scope.row.id">{{(scope.$index + 1) + ((queryParams.current - 1) * queryParams.size)}}</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+ </vipTable>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <!-- 功能清单 -->
|
|
|
|
+ <template v-if="form.goodType == 2">
|
|
|
|
+ <p class="title">
|
|
|
|
+ 功能清单
|
|
|
|
+ </p>
|
|
|
|
+ <div style="height:calc(100% - 20px)">
|
|
|
|
+ <div>
|
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
|
|
|
|
+ <el-form-item label="功能名称" prop="name">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="queryParams.name"
|
|
|
|
+ placeholder="请输入功能名称"
|
|
|
|
+ clearable
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleCurrentChange(1)">搜索</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ <functionTable :tableData="tableData1" :loading="loading" :expandAll="true">
|
|
|
|
+ <template slot="start_column" v-if="model != 'detail'">
|
|
|
|
+ <template slot="start_column">
|
|
|
|
+ <el-table-column type="index" label="序号" align="center" width="80px">
|
|
|
|
+ <template slot-scope="scope" v-if="!scope.row.children || scope.row.children == 0">
|
|
|
|
+ <el-radio-group v-model="goodId2" v-if="reload">
|
|
|
|
+ <el-radio :label="scope.row.id">{{ }}</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+ </template>
|
|
|
|
+ </functionTable>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="pagination" style="margin-top:10px">
|
|
|
|
+ <el-pagination background layout="total, prev, pager, next"
|
|
|
|
+ :current-page.sync="queryParams.current"
|
|
|
|
+ @current-change="handleCurrentChange" :total="total">
|
|
|
|
+ </el-pagination>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <el-form-item label="商品单位:" prop="goodUnit">
|
|
|
|
+ <el-select v-model="form.goodUnit" placeholder="请选择商品单位" style="width: 100%;">
|
|
|
|
+ <el-option v-for="(item, key) in goodsUnits" :key="key" :label="item" :value="Number(key)"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="单次售卖数量:" prop="goodCount">
|
|
|
|
+ <el-input-number v-model="form.goodCount" controls-position="right" :min="1" style="width: 100%;"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="单价(元):" prop="price">
|
|
|
|
+ <el-input-number v-model="form.price" :precision="2" controls-position="right" :min="0" style="width: 100%;"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="购买限制:" prop="goodLimits">
|
|
|
|
+ <el-select v-model="form.goodLimits" clearable multiple placeholder="请选择购买限制" style="width: 100%;">
|
|
|
|
+ <el-option v-for="(item, index) in goodsLimit" :key="index" :label="item.limitName" :value="item.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="营销策略:" prop="goodStrategies">
|
|
|
|
+ <el-select v-model="form.goodStrategies" clearable multiple placeholder="请选择营销策略" style="width: 100%;">
|
|
|
|
+ <el-option v-for="(item, index) in goodsStrategy" :key="index" :label="item.strategyName" :value="item.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="售卖时间:">
|
|
|
|
+ <div class="saleTime">
|
|
|
|
+ <myDateRangePicker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="dataRange" customStyle="width:220px;" :startClearable="false" startPlaceholder="开始售卖时间" endPlaceholder="截止售卖时间"></myDateRangePicker>
|
|
|
|
+ <div class="description">截止售卖时间可不填,不填为永久</div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="是否上架:" prop="status">
|
|
|
|
+ <el-radio-group v-model="form.status">
|
|
|
|
+ <el-radio :label="0">下架</el-radio>
|
|
|
|
+ <el-radio :label="1">上架</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="备注:" prop="remark">
|
|
|
|
+ <el-input type="textarea"
|
|
|
|
+ v-model="form.remark"
|
|
|
|
+ placeholder="请输入备注"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <el-form v-else ref="form" :model="form" :rules="rules" label-position="left" label-width="110px">
|
|
|
|
+ <el-form-item label="名称:" prop="goodName">
|
|
|
|
+ <div>{{ form.goodName }}</div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="类型:" prop="goodType">
|
|
|
|
+ <div>{{ form.goodTypeStr }}</div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- 会员清单 -->
|
|
|
|
+ <el-form-item label="商品信息:" prop="goodType">
|
|
|
|
+ <div v-if="form.goodType == 1">
|
|
|
|
+ <div v-if="form.vipMessage">
|
|
|
|
+ <div v-if="form.vipMessage.vipTypeName"><b>会员名称:</b>{{ form.vipMessage.vipTypeName }}</div>
|
|
|
|
+ <div v-if="form.vipMessage.remark"><b>备注:</b> {{ form.vipMessage.remark }}</div>
|
|
|
|
+ <div v-if="form.vipMessage.functions && form.vipMessage.functions.length">
|
|
|
|
+ <b>会员功能:</b>{{ getFunctionNames(form.vipMessage.functions) }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="form.goodType == 2">
|
|
|
|
+ <div v-if="form.functionMessage">
|
|
|
|
+ <div v-if="form.functionMessage.name"><b>功能名称:</b>{{ form.functionMessage.name }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item label="单次售卖:" prop="goodCount">
|
|
|
|
+ <div>{{ form.goodCount }}{{ form.goodUnitStr }}</div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="单价:" prop="price">
|
|
|
|
+ <div v-if="form.price">
|
|
|
|
+ {{ form.price }}元
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="购买限制:" prop="goodLimits">
|
|
|
|
+ <div v-if="form.goodByLimitVos && form.goodByLimitVos.length">
|
|
|
|
+ {{ form.goodByLimitVos.map(item=>item.limitName).join('、') }}
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="营销策略:" prop="goodStrategies">
|
|
|
|
+ <div v-if="form.goodStrategyVos && form.goodStrategyVos.length">
|
|
|
|
+ {{ form.goodStrategyVos.map(item=>item.strategyName).join('、') }}
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="售卖时间:">
|
|
|
|
+ <div v-if="form.startSaleTime">
|
|
|
|
+ {{ form.startSaleTime }} 至 {{ form.expireTime || '永久' }}
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ 永久
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="商品状态:" prop="status">
|
|
|
|
+ <div>{{ form.statusStr }}</div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="备注:" prop="remark">
|
|
|
|
+ <div>{{ form.remark }}</div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+const currentForm = {
|
|
|
|
+ id:null,
|
|
|
|
+ goodName:'',
|
|
|
|
+ goodType:1,
|
|
|
|
+ goodId:null,
|
|
|
|
+ startSaleTime:'',
|
|
|
|
+ expireTime:'',
|
|
|
|
+ goodCount:1,
|
|
|
|
+ price:1.00,
|
|
|
|
+ goodUnit:2,
|
|
|
|
+ goodLimits:[],
|
|
|
|
+ goodStrategies:[],
|
|
|
|
+ status:1,
|
|
|
|
+ remark:''
|
|
|
|
+}
|
|
|
|
+import commonData from '../mixins/commonData'
|
|
|
|
+import {formatDate } from "@/utils";
|
|
|
|
+import vipTable from '@/views/backStageManage/application/vipType/components/views/table.vue'
|
|
|
|
+import functionTable from '@/views/backStageManage/application/vision/components/functionTable.vue'
|
|
|
|
+export default {
|
|
|
|
+ components: {
|
|
|
|
+ vipTable,
|
|
|
|
+ functionTable
|
|
|
|
+ },
|
|
|
|
+ mixins:[commonData],
|
|
|
|
+ props: {
|
|
|
|
+ id:"",
|
|
|
|
+ model:{
|
|
|
|
+ type:String,
|
|
|
|
+ default:"add"
|
|
|
|
+ },
|
|
|
|
+ type:{
|
|
|
|
+ type:Number,
|
|
|
|
+ default:null
|
|
|
|
+ },
|
|
|
|
+ goodId:{
|
|
|
|
+ type:Number,
|
|
|
|
+ default:null
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ formLoading:false,
|
|
|
|
+ btnLoading: false,
|
|
|
|
+ // 表单参数
|
|
|
|
+ form: {},
|
|
|
|
+ // 表单校验
|
|
|
|
+ rules: {},
|
|
|
|
+ tableData:[],
|
|
|
|
+ goodId1:null,
|
|
|
|
+ goodId2:null,
|
|
|
|
+ tableData1:{},
|
|
|
|
+ goodsLimit:[],
|
|
|
|
+ goodsStrategy:[],
|
|
|
|
+ dataRange:{
|
|
|
|
+ startDate:null,
|
|
|
|
+ endDate:null
|
|
|
|
+ },
|
|
|
|
+ queryParams:{
|
|
|
|
+ current:1,
|
|
|
|
+ size:10
|
|
|
|
+ },
|
|
|
|
+ total:0,
|
|
|
|
+ loading:false,
|
|
|
|
+ reload:true
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ id(){
|
|
|
|
+ if(this.$route.path != '/administrator/editGoods'){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if(this.form.id == this.id){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ type(){
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ goodId(){
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ computed: {},
|
|
|
|
+ created() {},
|
|
|
|
+ async mounted() {
|
|
|
|
+ if(this.model !== 'detail'){
|
|
|
|
+ await this.queryGoodsLimit()
|
|
|
|
+ await this.queryGoodsStrategy()
|
|
|
|
+ }
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ //获取当前时间
|
|
|
|
+ getCurrentDate(){
|
|
|
|
+ return formatDate(new Date(),'YYYY-MM-DD HH:mm:ss')
|
|
|
|
+ },
|
|
|
|
+ //初始化当前页面
|
|
|
|
+ async init(){
|
|
|
|
+ this.formLoading = true
|
|
|
|
+ if(this.model == 'add'){
|
|
|
|
+ this.resetForm()
|
|
|
|
+ }else if(this.model == 'edit' || this.model == 'detail'){
|
|
|
|
+ await this.getById()
|
|
|
|
+ }
|
|
|
|
+ await this.changeGoodsType()
|
|
|
|
+ this.formLoading = false
|
|
|
|
+ },
|
|
|
|
+ //获取商品营销策略
|
|
|
|
+ async queryGoodsStrategy(){
|
|
|
|
+ await this.$api.queryGoodsStrategy().then(response=>{
|
|
|
|
+ if(response.code == 200){
|
|
|
|
+ this.goodsStrategy = response.data
|
|
|
|
+ }
|
|
|
|
+ }).catch(error=>{
|
|
|
|
+ this.goodsStrategy = []
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //获取商品购买限制
|
|
|
|
+ async queryGoodsLimit(){
|
|
|
|
+ await this.$api.queryGoodsLimit().then(response=>{
|
|
|
|
+ if(response.code == 200){
|
|
|
|
+ this.goodsLimit = response.data
|
|
|
|
+ }
|
|
|
|
+ }).catch(error=>{
|
|
|
|
+ this.goodsLimit = []
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //切换类型
|
|
|
|
+ changeGoodsType(){
|
|
|
|
+ this.queryParams = {
|
|
|
|
+ current:1,
|
|
|
|
+ size:10
|
|
|
|
+ }
|
|
|
|
+ this.getVipOrFunctionList()
|
|
|
|
+ },
|
|
|
|
+ //切换分页
|
|
|
|
+ handleCurrentChange(val){
|
|
|
|
+ this.queryParams.current = val
|
|
|
|
+ this.getVipOrFunctionList()
|
|
|
|
+ },
|
|
|
|
+ //获取会员或者功能列表
|
|
|
|
+ getVipOrFunctionList(){
|
|
|
|
+ if(this.form.goodType == 1){
|
|
|
|
+ this.getVipList()
|
|
|
|
+ }else if(this.form.goodType == 2){
|
|
|
|
+ this.getFunctionList()
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //获取会员列表
|
|
|
|
+ getVipList(){
|
|
|
|
+ this.loading = true
|
|
|
|
+ this.$api.getVipList(this.queryParams).then(response=>{
|
|
|
|
+ if(response.code == 200){
|
|
|
|
+ this.tableData = response.data.records
|
|
|
|
+ this.total = response.data.total || 0
|
|
|
|
+ this.loading = false
|
|
|
|
+ }
|
|
|
|
+ }).catch(error=>{
|
|
|
|
+ this.tableData = []
|
|
|
|
+ this.total = 0
|
|
|
|
+ this.loading = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //获取功能列表
|
|
|
|
+ getFunctionList(){
|
|
|
|
+ this.loading = true;
|
|
|
|
+ this.$api.queryQiaoBiFunctionApi(this.queryParams).then(response=>{
|
|
|
|
+ if(response.code == 200){
|
|
|
|
+ this.tableData1 = response.data
|
|
|
|
+ this.total = response.pageColumn.total || 0
|
|
|
|
+ var a = response.data.children
|
|
|
|
+ for(var j = 0;j<a.length;j++){
|
|
|
|
+ function l(data){
|
|
|
|
+ if(data.hasOwnProperty('children')){
|
|
|
|
+ for(var i = 0;i<data.children.length;i++){
|
|
|
|
+
|
|
|
|
+ if(data.hasOwnProperty('last')){
|
|
|
|
+ data.children[i].last=data.last+'/'+data.name
|
|
|
|
+ }else{
|
|
|
|
+ data.children[i].last=data.name
|
|
|
|
+ }
|
|
|
|
+ l(data.children[i])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ l(a[j])
|
|
|
|
+ }
|
|
|
|
+ this.loading = false
|
|
|
|
+ }
|
|
|
|
+ }).catch(error=>{
|
|
|
|
+ this.tableData1 = {}
|
|
|
|
+ this.total = 0
|
|
|
|
+ this.loading = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ //查询商品信息
|
|
|
|
+ async getById(){
|
|
|
|
+ if(!this.id){
|
|
|
|
+ this.$message.error('编辑缺少参数')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var params = {
|
|
|
|
+ ids: this.id,
|
|
|
|
+ };
|
|
|
|
+ await this.$api.queryGoods(params).then(response=>{
|
|
|
|
+ if(response.code == 200){
|
|
|
|
+ var data = response.data.records
|
|
|
|
+ if(data && data.length>0){
|
|
|
|
+ this.form = data[0]
|
|
|
|
+ if(this.model == 'details'){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //转载售卖时间
|
|
|
|
+ this.dataRange = {
|
|
|
|
+ startDate:this.form.startSaleTime || null,
|
|
|
|
+ endDate:this.form.expireTime || null
|
|
|
|
+ }
|
|
|
|
+ //装载购买限制
|
|
|
|
+ if(this.form.goodByLimitVos && this.form.goodByLimitVos.length>0){
|
|
|
|
+ this.form.goodLimits = this.form.goodByLimitVos.map(item=>{
|
|
|
|
+ return item.id
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.$set(this.form,'goodLimits',[])
|
|
|
|
+ }
|
|
|
|
+ //装载营销策略
|
|
|
|
+ if(this.form.goodStrategyVos && this.form.goodStrategyVos.length>0){
|
|
|
|
+ this.form.goodStrategies = this.form.goodStrategyVos.map(item=>{
|
|
|
|
+ return item.id
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.$set(this.form,'goodStrategies',[])
|
|
|
|
+ }
|
|
|
|
+ //装载状态
|
|
|
|
+ if(this.form.status != 0){
|
|
|
|
+ this.$set(this.form,'status',1)
|
|
|
|
+ }
|
|
|
|
+ //装载商品id
|
|
|
|
+ if(this.form.goodType == 1){
|
|
|
|
+ if(this.form.vipMessage && this.form.vipMessage.id){
|
|
|
|
+ this.$set(this,'goodId1',this.form.vipMessage.id)
|
|
|
|
+ }
|
|
|
|
+ }else if(this.form.goodType == 2){
|
|
|
|
+ if(this.form.functionMessage && this.form.functionMessage.id){
|
|
|
|
+ this.$set(this,'goodId2',this.form.functionMessage.id)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }).catch(error=>{
|
|
|
|
+ this.resetForm()
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //重置表单
|
|
|
|
+ resetForm(){
|
|
|
|
+ this.form = Object.assign({}, currentForm)
|
|
|
|
+ this.dataRange={
|
|
|
|
+ startDate:this.getCurrentDate(),
|
|
|
|
+ endDate:null
|
|
|
|
+ }
|
|
|
|
+ if(this.type){
|
|
|
|
+ this.$set(this.form,'goodType',this.type)
|
|
|
|
+ }
|
|
|
|
+ if(this.goodId){
|
|
|
|
+ if(this.type == 1){
|
|
|
|
+ this.$set(this,'goodId1',this.goodId)
|
|
|
|
+ }else if(this.type == 2){
|
|
|
|
+ this.$set(this,'goodId2',this.goodId)
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ this.$set(this,'goodId1',null)
|
|
|
|
+ this.$set(this,'goodId2',null)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.$refs['form'].resetFields();
|
|
|
|
+ this.reload = false
|
|
|
|
+ this.$nextTick(()=>{
|
|
|
|
+ this.reload = true
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ /** 提交按钮 */
|
|
|
|
+ submitForm: function() {
|
|
|
|
+ this.$refs['form'].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.form.startSaleTime = this.dataRange.startDate
|
|
|
|
+ this.form.expireTime = this.dataRange.endDate
|
|
|
|
+ if(this.form.goodType == 1){
|
|
|
|
+ this.form.goodId = this.goodId1
|
|
|
|
+ }else if(this.form.goodType == 2){
|
|
|
|
+ this.form.goodId = this.goodId2
|
|
|
|
+ }
|
|
|
|
+ this.btnLoading = true
|
|
|
|
+ var a = '添加'
|
|
|
|
+ var api = 'addGoods'
|
|
|
|
+ if(this.model == "edit"){
|
|
|
|
+ a = '编辑'
|
|
|
|
+ }
|
|
|
|
+ this.$api[api](this.form).then(response => {
|
|
|
|
+ if (response.code === 200) {
|
|
|
|
+ this.btnLoading = false
|
|
|
|
+ this.$message.success( a + '成功');
|
|
|
|
+ this.finish()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(error => {
|
|
|
|
+ this.$message.error(a + '失败')
|
|
|
|
+ this.btnLoading = false
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ finish(){
|
|
|
|
+ if(this.model == 'add'){
|
|
|
|
+ this.resetForm()
|
|
|
|
+ }else{
|
|
|
|
+ this.$store.commit('removeHistoryPath',this.$route.path);
|
|
|
|
+ this.$store.commit('removeHistory',this.$route.path);
|
|
|
|
+ this.$router.push(
|
|
|
|
+ {
|
|
|
|
+ path:'/administrator/goods'
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+<style lang="scss">
|
|
|
|
+.goodsForm{
|
|
|
|
+ .el-input-number{
|
|
|
|
+ .el-input__inner{
|
|
|
|
+ text-align: left !important;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+.form_center {
|
|
|
|
+ width: 900px;
|
|
|
|
+ margin: 0px auto;
|
|
|
|
+}
|
|
|
|
+.saleTime{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ .description{
|
|
|
|
+ color: red;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.button-container {
|
|
|
|
+ max-width: 1200px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content:flex-end;
|
|
|
|
+ margin: 10px auto;
|
|
|
|
+ position:sticky;
|
|
|
|
+ top:10px,
|
|
|
|
+}
|
|
|
|
+.form_item_title{
|
|
|
|
+ color: black;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ padding: 5px 0;
|
|
|
|
+ border-bottom: 1px solid white;
|
|
|
|
+}
|
|
|
|
+</style>
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+ .vipOrFunList{
|
|
|
|
+ border:1px solid white;
|
|
|
|
+ padding:10px;
|
|
|
|
+ margin:10px 0;
|
|
|
|
+ border-radius:8px;
|
|
|
|
+ .warp{
|
|
|
|
+ height: 550px;
|
|
|
|
+ position: relative;
|
|
|
|
+ .title{
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ margin: 0;
|
|
|
|
+ padding: 0 5px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top:-20px;
|
|
|
|
+ background: #c4c4df;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+</style>
|