Commit 9b8b1645 authored by 黄奎's avatar 黄奎

新增页面

parent bfc0df20
......@@ -3,7 +3,8 @@
<template v-if="storesIsShowAdd">
<div class="head-title">
门店管理
<el-button @click="storesIsShowAdd=false,clearMsg()" style="float:right;margin-top: -5px;" size="small" type="primary">
<el-button @click="storesIsShowAdd=false,clearMsg()" style="float:right;margin-top: -5px;" size="small"
type="primary">
添加门店
</el-button>
</div>
......@@ -24,7 +25,8 @@
</el-table-column>
<el-table-column label="封面图" width="110">
<template slot-scope="scope">
<img :src="getIconLink(scope.row.CoverImg)" style="width:80px;height:80px;"/>
<el-image :src="getIconLink(scope.row.CoverImg)" style="width:80px;height:80px;"
:preview-src-list="[getIconLink(scope.row.CoverImg)]"></el-image>
</template>
</el-table-column>
<el-table-column prop="Tel" label="联系方式" width="120">
......@@ -35,8 +37,7 @@
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<img @click="EditstoreManage(scope.row)" class="operatImg" src="../../assets/img/userman/edit.png"
alt="">
<img @click="EditstoreManage(scope.row)" class="operatImg" src="../../assets/img/userman/edit.png" alt="">
<img @click="RemovestoreManage(scope.row)" class="operatImg" src="../../assets/img/userman/del.png"
alt="">
</template>
......@@ -58,10 +59,12 @@
<div class="el-row">
<div class="el-col el-col-12">
<el-form-item label="门店名称" prop="Name">
<el-input type="text" placeholder="请输入门店名称" v-model="addMsg.Name" maxlength="50" size="small"></el-input>
<el-input type="text" placeholder="请输入门店名称" v-model="addMsg.Name" maxlength="50" size="small">
</el-input>
</el-form-item>
<el-form-item label="联系电话" prop="Tel">
<el-input type="text" placeholder="请输入门店联系电话" v-model="addMsg.Tel" maxlength="20" size="small"></el-input>
<el-input type="text" placeholder="请输入门店联系电话" v-model="addMsg.Tel" maxlength="20" size="small">
</el-input>
</el-form-item>
<el-form-item label="门店地址" prop="Address">
<el-input type="text" placeholder="请输入门店地址" v-model="addMsg.Address" size="small"></el-input>
......@@ -98,11 +101,12 @@
<el-button size="mini" @click="choicImg=true,commonIndex=1">选择图片</el-button>
</el-tooltip>
<div class="customize-share-title">
<div class="zk_pic_box" @click="choicImg=true,commonIndex=1" flex="main:center cross:center" style="width:80px;height:80px;"
<div class="zk_pic_box" @click="choicImg=true,commonIndex=1" flex="main:center cross:center"
style="width:80px;height:80px;"
:style="{backgroundImage:'url(' + getIconLink(addMsg.CoverImg) + ')'}">
<i v-if="addMsg.CoverImg==''" class="el-icon-picture-outline"></i>
<el-button type="danger" v-if="addMsg.CoverImg!=''" class="image-delete" size="mini"
icon="el-icon-close" @click.stop="addMsg.CoverImg=''" circle></el-button>
icon="el-icon-close" @click.stop="addMsg.CoverImg=''" circle></el-button>
</div>
</div>
</el-form-item>
......@@ -111,22 +115,27 @@
<el-button size="mini" @click="choicImg=true,commonIndex=2">选择图片</el-button>
</el-tooltip>
<div class="customize-share-title">
<div class="zk_pic_box" @click="choicImg=true,commonIndex=2" flex="main:center cross:center" style="width:80px;height:80px;"
<div class="zk_pic_box" @click="choicImg=true,commonIndex=2" flex="main:center cross:center"
style="width:80px;height:80px;"
:style="{backgroundImage:'url(' + getIconLink(addMsg.NavImg) + ')'}">
<i v-if="addMsg.NavImg==''" class="el-icon-picture-outline"></i>
<el-button type="danger" v-if="addMsg.NavImg!=''" class="image-delete" size="mini"
icon="el-icon-close" @click.stop="addMsg.NavImg=''" circle></el-button>
icon="el-icon-close" @click.stop="addMsg.NavImg=''" circle></el-button>
</div>
</div>
</el-form-item>
<el-form-item label="营业时间">
<el-time-select placeholder="起始时间" v-model="addMsg.StartTime" :disabled="checked" size="small" :picker-options="{
<el-checkbox v-model="checked" @change="checked==true? addMsg.IsAllDay=1:addMsg.IsAllDay=0">全天营业
</el-checkbox>
<el-time-select placeholder="起始时间" v-model="addMsg.StartTime" :disabled="checked" size="small"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45'
}">
</el-time-select>
<el-time-select placeholder="结束时间" v-model="addMsg.EndTime" :disabled="checked" size="small" :picker-options="{
<el-time-select placeholder="结束时间" v-model="addMsg.EndTime" :disabled="checked" size="small"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45',
......@@ -134,8 +143,10 @@
}">
</el-time-select>
</el-form-item>
<el-form-item label="">
<el-checkbox v-model="checked" @change="checked==true? addMsg.IsAllDay=1:addMsg.IsAllDay=0">全天营业</el-checkbox>
<el-form-item label="服务项目" prop="ServiceProject">
<div style="line-height:normal;">
<UE :defaultMsg="addMsg.ServiceProject" :config="config" ref="ue2" @input="getService"></UE>
</div>
</el-form-item>
</div>
</div>
......@@ -153,8 +164,6 @@
<el-dialog title="地图展示" :visible.sync="isShowMap" width="960px">
<commonMap @map-submit="mapEvent"></commonMap>
</el-dialog>
</div>
</template>
<script>
......@@ -172,8 +181,8 @@
//是否线下链接弹窗
loading: false,
choicImg: false,
isShowMap:false,
checked:false,
isShowMap: false,
checked: false,
dataList: [],
msg: {
pageIndex: 1,
......@@ -195,6 +204,7 @@
StartTime: "00:00", //营业开始时间
EndTime: "24:00", //营业结束时间
IsAllDay: 0, //是否全天营业(1-是)
ServiceProject: "", //服务项目
},
config: {
initialFrameWidth: null,
......@@ -202,43 +212,42 @@
},
commonIndex: -1,
rules: {
Name: [{
required: true,
message: '请输入门店名称',
trigger: 'change'
}],
Tel: [{
required: true,
message: '请输入门店联系方式',
trigger: 'change'
}],
Address: [{
required: true,
message: '请输入门店地址',
trigger: 'change'
}],
LngLat: [{
required: true,
message: '请输入门店经纬度',
trigger: 'change'
}],
Intro: [{
required: true,
message: '请输入门店描述',
trigger: 'change'
}],
CoverImg: [{
required: true,
message: '请添加门店封面图',
trigger: 'change'
}],
NavImg: [{
required: true,
message: '请添加门店轮播图',
trigger: 'change'
}],
Name: [{
required: true,
message: '请输入门店名称',
trigger: 'change'
}],
Tel: [{
required: true,
message: '请输入门店联系方式',
trigger: 'change'
}],
Address: [{
required: true,
message: '请输入门店地址',
trigger: 'change'
}],
LngLat: [{
required: true,
message: '请输入门店经纬度',
trigger: 'change'
}],
Intro: [{
required: true,
message: '请输入门店描述',
trigger: 'change'
}],
CoverImg: [{
required: true,
message: '请添加门店封面图',
trigger: 'change'
}],
NavImg: [{
required: true,
message: '请添加门店轮播图',
trigger: 'change'
}],
},
};
},
created() {
......@@ -296,7 +305,8 @@
this.addMsg.StartTime = '';
this.addMsg.EndTime = '';
this.addMsg.IsAllDay = 0;
this.checked=false;
this.addMsg.ServiceProject = "";
this.checked = false;
},
//修改
EditstoreManage(item) {
......@@ -318,8 +328,9 @@
this.addMsg.StartTime = jsonData.StartTime;
this.addMsg.EndTime = jsonData.EndTime;
this.addMsg.IsAllDay = jsonData.IsAllDay;
if(this.addMsg.IsAllDay==1){
this.checked=true;
this.addMsg.ServiceProject = jsonData.ServiceProject;
if (this.addMsg.IsAllDay == 1) {
this.checked = true;
}
} else {
this.Info(res.data.message);
......@@ -357,9 +368,14 @@
}
})
},
//门店描述
input(obj) {
this.addMsg.Intro = obj;
},
//服务项目
getService(obj) {
this.addMsg.ServiceProject = obj;
},
//选择图片
SelectId(msg) {
if (this.commonIndex == 1) {
......@@ -373,9 +389,8 @@
mapEvent(e) {
this.addMsg.LngLat = e.lat + ',' + e.long;
this.addMsg.Address = e.address;
this.isShowMap=false;
this.isShowMap = false;
},
},
mounted() {
this.getList();
......
......@@ -175,7 +175,9 @@
<li class="menu_item" :class="{'Fchecked':isChecked=='/osCardrelease'}" @click="isChecked='/osCardrelease',CommonJump('osCardrelease')">
<i class="el-icon-menu"></i><span>套餐卡自动发放</span>
</li>
<li class="menu_item" :class="{'Fchecked':isChecked=='/serviceProductList'}" @click="isChecked='/serviceProductList',CommonJump('serviceProductList')">
<i class="el-icon-menu"></i><span>服务产品</span>
</li>
</ul>
</div>
</div>
......
<template>
<div class="serviceProduct">
<div class="head-title">
商品列表
<el-button @click="Export" style="float:right;margin-top: -5px;margin-left:20px;" size="small" type="primary">商品导出
</el-button>
<el-button @click="CommonJump('serviceProductEdit',{hpState:hpState,FxState:FxState})"
style="float:right;margin-top: -5px;margin-left:20px;" size="small" type="primary">添加商品</el-button>
</div>
<div class="content">
<div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane :dataId="0" label="全部" name="first"></el-tab-pane>
<el-tab-pane :dataId="1" label="上架中" name="second"></el-tab-pane>
<el-tab-pane :dataId="2" label="下架中" name="third"></el-tab-pane>
<el-tab-pane :dataId="3" label="售罄" name="fourth"></el-tab-pane>
</el-tabs>
</div>
<div>
<span>
分类筛选
</span>
<el-select v-model="showCategoryName" placeholder="请选择" multiple clearable collapse-tags @change="selectChange">
<el-option :value="chooseCategroyArray" style="height: auto">
<el-tree :data="categoryTreeData" show-checkbox node-key="Id" ref="tree" highlight-current
:props="defaultProps" @check-change="categoryCheckChange"></el-tree>
</el-option>
</el-select>
<span>添加时间:</span>
<el-date-picker v-model="dateList" @change="msg.pageIndex=1,getList()" size="small" type="datetimerange"
range-separator="至" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
<div class="searchInput" style="width:250px;margin-right: 0px;">
<el-input @keyup.enter.native="msg.pageIndex=1,getList()" style="display:inline-block;width:225px;height:30px"
placeholder="请输入名称搜索" v-model="msg.Name" @clear="msg.pageIndex=1,getList()" size="small" clearable>
</el-input>
<span @click="msg.pageIndex=1,getList()" class="el-icon-search"
style="color:#979dad;font-size:14px;position:relative;top:1px"></span>
</div>
<div class="searchInput" style="width:250px">
<el-input @keyup.enter.native="msg.pageIndex=1,getList()" style="display:inline-block;width:225px;height:30px"
placeholder="请输入ID搜索" v-model="msg.Id" @clear="msg.pageIndex=1,getList()" size="small" clearable>
</el-input>
<span @click="msg.pageIndex=1,getList()" class="el-icon-search"
style="color:#979dad;font-size:14px;position:relative;top:1px"></span>
</div>
<span @click="Clearconditions" v-if="msg.Name!='' || msg.CategoryIds!='' || (dateList && dateList.length>0)"
class='blue point'>清空筛选条件</span>
</div>
<div style="margin-top:15px">
<el-button @click="tableSet(4)" style="margin-left:10px;" size="mini">上架</el-button>
<el-button @click="tableSet(5)" style="margin-left:10px;" size="mini">下架</el-button>
<el-button @click="tableSet(6)" style="margin-left:10px;" size="mini">删除</el-button>
<el-button @click="plsetBtn" style="margin-left:10px;" size="mini">批量设置</el-button>
</div>
<el-table :data="tableData" v-loading="loading" border sortable='custom' @sort-change='getSort'
@selection-change="tableSelect" style="width: 100%;margin:20px 0">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column prop="Id" width="80" sortable label="ID">
</el-table-column>
<el-table-column prop="address" sortable label="排序">
<template slot-scope="scope">
<template v-if="!scope.row.editsort">
<span>{{scope.row.Sort}}</span>
<img @click="scope.row.editsort=true,scope.row.SortNew=scope.row.Sort"
style="width:15px;height:15px;margin-left:7px" src="../../assets/img/userman/edit1.png" alt="">
</template>
<template v-else>
<el-input v-model="scope.row.SortNew" type="number" min="1" size="small"
style="display:inline-block;width:70px"></el-input>
<span @click="scope.row.editsort=false" class="el-icon-error" style="color: rgb(245, 108, 108);"></span>
<span @click="Edit(scope.row,1)" class="el-icon-success" style="color:#67c23a"></span>
</template>
</template>
</el-table-column>
<el-table-column prop="Remark" label="分类">
<template slot-scope="scope">
<el-tag size="mini" v-if="scope.row.CategoryList && scope.row.CategoryList.length>0">
{{scope.row.CategoryList[0].CategoryName}}</el-tag>
<el-tooltip class="item" effect="dark" placement="top">
<div slot="content">
<span v-for="(item,index) in scope.row.CategoryList" :key="index">{{item.CategoryName}} </span>
</div>
<span v-if="scope.row.CategoryList.length>1 && index==0" v-for="(item,index) in scope.row.CategoryList"
:key="index">...</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column prop="address" width="300" label="商品名称">
<template slot-scope="scope">
<div flex="box:first">
<el-image title="点击查看大图" style="width:50px;height:50px;margin-right:1px" :src="scope.row.CoverImage"
:preview-src-list="scope.row.CarouselImageList">
</el-image>
<template v-if="!scope.row.editname">
<div flex="cross:top" style="display:inline-flex">
<div flex="dir:left">
<el-tooltip class="item" effect="dark" :content="scope.row.Name" placement="top">
<div class="vue-line-clamp" style="word-break: break-all; -webkit-line-clamp: 2;">
<span>{{scope.row.Name}}</span>
</div>
</el-tooltip>
<img @click="scope.row.editname=true,scope.row.NameNew=scope.row.Name"
style="width:15px;height:15px;margin-left:7px" src="../../assets/img/userman/edit1.png" alt="">
</div>
</div>
</template>
<template v-else>
<el-input v-model="scope.row.NameNew" size="small" style="display:inline-block;width:150px"></el-input>
<span @click="scope.row.editname=false" class="el-icon-error"
style="margin-left:5px;color: rgb(245, 108, 108);position: relative;top: 9px;"></span>
<span @click="Edit(scope.row,2)" class="el-icon-success"
style="color:#67c23a;position: relative;top: 9px;"></span>
</template>
</div>
<div flex="dir:left" style="margin-top:5px;color:#F56C6C;font-size:12px;" v-if="scope.row.Remark">
<div style="width:38px;">备注:</div>
<el-tooltip class="item" effect="dark" :content="scope.row.Remark" placement="top">
<div class="vue-line-clamp"
style="word-break: break-all; -webkit-line-clamp: 2;width:90%;margin-left:0;">
<span>{{scope.row.Remark}}</span>
</div>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column prop="SellingPrice" width="100" sortable label="售价">
</el-table-column>
<el-table-column prop="InventoryNum" width="100" sortable label="库存">
<template slot-scope="scope">
<span v-if="scope.row.InventoryNum==0" style="color:red">售罄</span>
<span v-else>{{scope.row.InventoryNum}}</span>
</template>
</el-table-column>
<el-table-column width="120">
<template slot="header">
已出售量
<el-tooltip effect="dark" content="已出售量=实际销量+虚拟销量,按实际销量排序" placement="top">
<i class="el-icon-info"></i>
</el-tooltip>
</template>
<template slot-scope="scope">
<span>{{scope.row.GoodsBuyNum}}+{{scope.row.SalesNum}}</span>
</template>
</el-table-column>
<el-table-column prop="UpdateDate" width="110" label="是否加入快速购买">
<template slot-scope="scope">
<el-switch @change="Edit(scope.row,10)" v-model="scope.row.IsQuickBuy" active-color="#409EFF"
:active-value="1" :inactive-value="0">
</el-switch>
</template>
</el-table-column>
<el-table-column prop="CreateDate" width="160" label="添加时间">
</el-table-column>
<el-table-column prop="UpdateDate" width="100" label="状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.GoodsStatus==1" type="success">销售中</el-tag>
<el-tag v-if="scope.row.GoodsStatus==2" type="warning">下架中</el-tag>
</template>
</el-table-column>
<el-table-column prop="address" width="200" label="操作">
<template slot-scope="scope">
<img @click="goGoodsEdit(scope.row.Id)" style="width:32px;height:32px;margin:0 10px"
src="../../assets/img/userman/edit.png" alt="">
<img @click="Delete(scope.row)" style="width:32px;height:32px;margin:0 10px"
src="../../assets/img/userman/del.png" alt="">
</template>
</el-table-column>
</el-table>
<el-pagination style="text-align:right" background @current-change="handleCurrentChange" :page-size="msg.pageSize"
layout="prev, pager, next" :current-page.sync="msg.pageIndex" :total="total">
</el-pagination>
</div>
<!-- 批量修改 -->
<el-dialog custom-class="plxg" title="批量修改" :visible.sync="isShowBatchEdit" width="960px">
<span class="absoSpan">已选商品{{GoodsIds.length}}个</span>
<div class="batch-remark c99 f14">注:每次只能修改一项,修改后点击确定即可生效。如需修改多项,需多次操作。</div>
<div style="margin-top:15px" flex="dir:left box:first">
<div flex="dir:top" class="batch-box-left">
<div flex="main:center" @click="ClearSelect(7)" :class="plszMsg.Type==7?'batch-div-active':''">运费</div>
<div flex="main:center" @click="ClearSelect(8)" :class="plszMsg.Type==8?'batch-div-active':''">限购</div>
<div flex="main:center" @click="ClearSelect(9)" :class="plszMsg.Type==9?'batch-div-active':''">积分</div>
<div flex="main:center" @click="ClearSelect(10)" :class="plszMsg.Type==10?'batch-div-active':''">快速购买</div>
<div flex="main:center" @click="ClearSelect(11)" :class="plszMsg.Type==11?'batch-div-active':''">面议</div>
<div flex="main:center" @click="ClearSelect(12)" :class="plszMsg.Type==12?'batch-div-active':''">供应商</div>
</div>
<div class="batch-box-right">
<el-form class="app-batch" :model="addMsg" :rules="rules" ref="addMsg" label-width="100px">
<el-form-item v-if="plszMsg.Type==7" label="运费设置">
<el-tag v-if="ruleSelect.RulesName" @close="plszMsg.FreightId=0,ruleSelect={}" closable>
{{ruleSelect.RulesName}}</el-tag>
<el-button @click="isShowFreight=true" style="margin-left:10px;" size="small">选择运费</el-button>
</el-form-item>
<el-form-item v-if="plszMsg.Type==8" label="每人限购">
<el-form-item label-width="50px" label="商品">
<el-input :disabled="BuyGoodsNumState" v-model="plszMsg.LimitBuyGoodsNum"
style="width:254px;margin-left:15px" type="number" min="1" size="small" placeholder="请输入内容"
class="input-with-select">
<el-button slot="append"></el-button>
</el-input>
<el-checkbox @change="goodChange(BuyGoodsNumState,1)" style="margin-left:10px"
v-model="BuyGoodsNumState">不限制</el-checkbox>
</el-form-item>
<el-form-item label-width="50px" label="订单">
<el-input :disabled="BuyOrderNumState" v-model="plszMsg.LimitBuyOrderNum"
style="width:254px;margin-left:15px" type="number" min="1" size="small" placeholder="请输入内容"
class="input-with-select">
<el-button slot="append"></el-button>
</el-input>
<el-checkbox @change="goodChange(BuyOrderNumState,2)" style="margin-left:10px"
v-model="BuyOrderNumState">不限制</el-checkbox>
</el-form-item>
</el-form-item>
<template v-if="plszMsg.Type==9">
<el-form-item label="积分赠送">
<el-tooltip class="item" effect="dark" placement="top" style="position: absolute;left: -10px;top:12px">
<div slot="content">
用户购物赠送的积分, 如果不填写或填写0,则默认为不赠送积分<br />
如果为百分比则为按成交价格的比例计算积分<br />
如: 购买2件,设置10 积分, 不管成交价格是多少, 则购买后获得20积分<br />
如: 购买2件,设置10%积分, 成交价格2 * 200= 400, 则购买后获得 40 积分(400*10%)<br />
</div>
<i class="el-tooltip el-icon-info"></i>
</el-tooltip>
<el-input v-model="plszMsg.IntegralPresent" style="width:670px;margin-left:15px" type="number" min="1"
size="small" placeholder="请输入内容" class="input-with-select">
<el-button slot="append">
<el-radio v-model="plszMsg.IntegralPresentType" :label="2">固定值</el-radio>
<el-radio v-model="plszMsg.IntegralPresentType" :label="1">百分比</el-radio>
</el-button>
</el-input>
</el-form-item>
<el-form-item label="积分抵扣">
<el-tooltip class="item" effect="dark" content="如果设置0,则不支持积分抵扣 如果带%则为按成交价格的比例计算抵扣多少元" placement="top"
style="position: absolute;left: -10px;top:12px">
<i class="el-tooltip el-icon-info"></i>
</el-tooltip>
<el-input v-model="plszMsg.PointsDeduction" style="width:670px;margin-left:15px" type="number" min="1"
size="small" placeholder="请输入内容" class="input-with-select">
<template slot="prepend">最多抵扣</template>
<el-button slot="append">
<el-radio v-model="plszMsg.PointsDeductionType" :label="2">固定值</el-radio>
<el-radio v-model="plszMsg.PointsDeductionType" :label="1">百分比</el-radio>
</el-button>
</el-input>
</el-form-item>
<el-form-item label-width="110px">
<el-checkbox v-model="plszMsg.IsMultipleDeduction" :true-label="1" :false-label="2">允许多件抵扣</el-checkbox>
</el-form-item>
</template>
<el-form-item v-if="plszMsg.Type==10" label-width="160px" label="是否加入快速购买">
<el-switch v-model="plszMsg.IsQuickBuy" active-color="#409EFF" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item class="spmy" v-if="plszMsg.Type==11" label-width="160px" label="是否加入商品面议">
<el-tooltip class="item" effect="dark" content="如果开启面议,则商品无法在线支付" placement="top"
style="position: absolute;left: -22px;top:12px">
<i class="el-tooltip el-icon-info"></i>
</el-tooltip>
<el-switch v-model="plszMsg.IsGoodsNegotiable" active-color="#409EFF" :active-value="1"
:inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item class="spmy" v-if="plszMsg.Type==12" label-width="160px" label="供应商">
<el-select class="w150" style="margin-right: 10px;" v-model="plszMsg.SupplierId" size="small"
placeholder="请选择" @change='changeSupplier'>
<el-option v-for="item in SupplierList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="isShowBatchEdit = false">取 消</el-button>
<el-button @click="batchSetting" size="small" type="primary">确 定</el-button>
</span>
</el-dialog>
<!-- 选择运费 -->
<el-dialog title="选择运费" top="2%" :modal="false" :modal-append-to-body='false' :visible.sync="isShowFreight"
width="25%">
<div>
<el-radio-group v-model="val">
<el-radio @change="chooseFreight" class="yfradio" v-for="(item,index) in freightRuleList" :key="index"
:label="item">
{{item.RulesName}}</el-radio>
</el-radio-group>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="isShowFreight = false,ruleSelect={},plszMsg.FreightId=0">取 消</el-button>
<el-button size="small" @click="isShowFreight = false" type="primary">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
name: "quickBuy",
data() {
return {
isShowFreight: false, //是否显示运费设置弹窗
isShowBatchEdit: false, //是否显示批量设置弹窗
val: '',
dateList: [], //查询时间段
activeName: 'first',
msg: {
pageIndex: 1,
pageSize: 15,
Name: '',
GoodsStatus: 0,
IsSelectSellOut: 0,
CategoryIds: '',
Id: '',
StartTime: '',
EndTime: '',
OrderBy: 0,
},
total: 0,
tableData: [],
//分类树默认属性
defaultProps: {
children: 'ChildList',
label: 'Name'
},
loading: false,
//供应商列表
SupplierList: [],
addMsg: {
Id: 0,
Sort: '',
Name: '',
IsDefault: 1,
Remark: '',
UpdateType: 1,
},
rules: {
CategoryIdNew: [{
required: true,
message: '分类不能为空',
trigger: 'change'
}],
Sort: [{
required: true,
message: '请输入排序',
trigger: 'blur'
}],
},
categoryTreeData: [], //分类树形表
GoodsIds: [], //列表选中的商品编号
plszMsg: {
GoodsIds: '',
Type: 7,
FreightId: 0,
LimitBuyGoodsNum: -1,
LimitBuyOrderNum: -1,
IntegralPresent: 0,
IntegralPresentType: 2,
PointsDeduction: 0,
PointsDeductionType: 2,
IsMultipleDeduction: 2,
IsQuickBuy: 2,
IsGoodsNegotiable: 2,
SupplierId: ''
},
freightRuleList: [], //运费规则列表
ruleSelect: {},
keepGoodsIds: '',
BuyGoodsNumState: true,
BuyOrderNumState: true,
hpState: 0,
FxState: 0,
chooseCategroyArray: [],
showCategoryName: "",
}
},
created() {
this.getList();
this.getTree();
this.getRule();
this.getHpState();
this.getFxState();
this.getSupplierList() //获取供应商
},
methods: {
//商品分类下拉框改变
selectChange(e) {
var arrNew = [];
var dataLength = this.chooseCategroyArray.length;
var eleng = e.length;
for (let i = 0; i < dataLength; i++) {
for (let j = 0; j < eleng; j++) {
if (e[j] === this.chooseCategroyArray[i].Name) {
arrNew.push(this.chooseCategroyArray[i])
}
}
}
this.$refs.tree.setCheckedNodes(arrNew); //设置勾选的值
this.getList();
},
//商品分类选中
categoryCheckChange() {
let res = this.$refs.tree.getCheckedNodes(true, true);
let arrLabel = [];
let arr = [];
res.forEach(item => {
arrLabel.push(item.Name);
arr.push(item);
});
this.chooseCategroyArray = arr;
this.showCategoryName = arrLabel;
this.getList();
},
//获取是否开启和平返佣
getHpState() {
this.apipost("/api/user/GetHpDistributorIsEnabled", {}, res => {
if (res.data.resultCode == 1) {
this.hpState = res.data.data;
}
})
},
//是否开启粉象返佣
getFxState() {
this.apipost("/api/user/GetIsEnableFXDistributorGrade", {}, res => {
if (res.data.resultCode == 1) {
this.FxState = res.data.data;
}
})
},
goodChange(val, num) {
if (!val) {
if (num == 1) {
this.plszMsg.LimitBuyGoodsNum = 0;
} else if (num == 2) {
this.plszMsg.LimitBuyOrderNum = 0;
}
}
},
//商品导出
Export() {
let msg = this.msg;
if (msg.Id == '') {
msg.Id = 0
}
msg = JSON.parse(JSON.stringify(msg));
msg.pageSize = 999;
this.GetLocalFile(
"/api/product/GetProductGoodsListToExcel",
msg,
"商品列表.xls"
);
},
//批量设置保存
batchSetting() {
if (this.plszMsg.Type == 7) {
}
if (this.plszMsg.Type == 8) {
if (this.plszMsg.BuyGoodsNumState) {
this.plszMsg.LimitBuyGoodsNum = -1
}
if (this.plszMsg.BuyOrderNumState) {
this.plszMsg.LimitBuyOrderNum = -1
}
}
let mall_userInfo = JSON.parse(localStorage.mall_userInfo)
if (mall_userInfo.TenantId == 1 && mall_userInfo.MallBaseId == 1) {
if (this.plszMsg.SupplierId == '') {
this.Error("请选择供应商!");
return
} else {
this.commonSet(this.plszMsg);
}
} else {
if (this.plszMsg.SupplierId == '') {
this.plszMsg.SupplierId = 0
this.commonSet(this.plszMsg)
} else {
this.commonSet(this.plszMsg);
}
}
},
//显示批量设置弹窗
plsetBtn() {
if (this.GoodsIds.length == 0) {
this.Error("请先勾选要设置的商品!");
return;
}
let idList = [];
this.GoodsIds.forEach(item => {
idList.push(item.Id)
})
this.keepGoodsIds = idList.join(',');
this.plszMsg.GoodsIds = this.keepGoodsIds;
this.plszMsg.SupplierId = ''
this.isShowBatchEdit = true;
},
ClearSelect(type) {
this.plszMsg = {
GoodsIds: this.keepGoodsIds,
Type: type,
FreightId: 0,
LimitBuyGoodsNum: -1,
LimitBuyOrderNum: -1,
IntegralPresent: 0,
IntegralPresentType: 2,
PointsDeduction: 0,
PointsDeductionType: 2,
IsMultipleDeduction: 2,
IsQuickBuy: 2,
IsGoodsNegotiable: 2,
SupplierId: ''
}
},
//运费选中
chooseFreight(val) {
this.ruleSelect = val;
this.plszMsg.FreightId = val.ID;
},
//表格选中
tableSelect(val) {
this.GoodsIds = val;
},
// 上架 下架 删除
tableSet(num) {
if (this.GoodsIds.length == 0) {
this.Error("请先勾选要设置的商品!");
return;
}
let idList = [];
this.GoodsIds.forEach(item => {
idList.push(item.Id)
})
let GoodsIds = idList.join(',');
let msg = {
GoodsIds: GoodsIds,
Type: num,
}
let str = "";
if (num == 4) {
str = "批量上架,是否继续";
}
if (num == 5) {
str = "批量下架,是否继续";
}
if (num == 6) {
str = "是否确认删除选中的商品?";
}
let that = this;
that.$confirm(str, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.commonSet(msg);
}).catch(() => {});
},
Edit(row, num) {
let editMsg = {
GoodsIds: row.Id,
Type: num,
Sort: row.SortNew,
GoodsName: row.NameNew,
IsQuickBuy: row.IsQuickBuy
};
this.commonSet(editMsg)
},
commonSet(data) {
this.apipost('/api/product/SetProductGoodsQuickUpdate', data,
res => {
if (res.data.resultCode === 1) {
this.getList();
this.Success(res.data.message)
this.isShowBatchEdit = false;
} else {
this.Error(res.data.message);
}
},
null
);
},
//清空查询条件
Clearconditions() {
this.msg.Name = '';
this.msg.CategoryIds = '';
this.dateList = [];
this.getList();
},
//分类切换
handleClick(val) {
let dataId = val.$attrs.dataId;
if (dataId == 0) {
this.msg.GoodsStatus = 0;
this.msg.IsSelectSellOut = 0;
}
if (dataId == 1) {
this.msg.GoodsStatus = 1;
this.msg.IsSelectSellOut = 0;
}
if (dataId == 2) {
this.msg.GoodsStatus = 2;
this.msg.IsSelectSellOut = 0;
}
if (dataId == 3) {
this.msg.GoodsStatus = 0;
this.msg.IsSelectSellOut = 1;
}
this.msg.pageIndex = 1
this.getList();
},
//删除商品
Delete(item) {
let that = this;
that.Confirm('是否删除', function () {
that.apipost('/api/product/DelProcudtGoodsInfo', {
GoodsId: item.Id
},
res => {
if (res.data.resultCode === 1) {
that.getList();
that.Success(res.data.message)
} else {
that.Error(res.data.message);
}
},
null
);
})
},
//分页切换
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
//获取商品列表
getList() {
this.msg.CategoryIds = "";
var tempCategory = "";
if (this.chooseCategroyArray && this.chooseCategroyArray.length > 0) {
this.chooseCategroyArray.forEach(item => {
tempCategory += item.Id + ",";
})
}
this.msg.CategoryIds = tempCategory.substring(0, tempCategory.lastIndexOf(','));
if (this.dateList && this.dateList.length > 0) {
this.msg.StartTime = this.dateList[0];
this.msg.EndTime = this.dateList[1];
} else {
this.msg.StartTime = '';
this.msg.EndTime = '';
}
let msg = JSON.parse(JSON.stringify(this.msg))
if (msg.Id == '') {
msg.Id = 0;
}
this.loading = true;
this.apipost("/api/product/GetProductGoodsPageList", msg, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
let pageData = res.data.data.pageData;
pageData.forEach(item => {
item.SortNew = item.Sort;
item.NameNew = item.Name;
item.editsort = false;
item.editname = false;
})
this.tableData = pageData;
}
})
},
//获取商品分类
getTree() {
let msg1 = {
Id: 0,
Name: '',
Tier: 0,
ParentId: 0,
Enabled: 1,
IsShow: 1,
}
this.apipost("/api/product/GetProductCategoryTreeList", msg1, res => {
if (res.data.resultCode == 1) {
let pageData = res.data.data;
this.categoryTreeData = pageData;
}
})
},
getRule() {
let qRuleMsg = {
pageIndex: 1,
pageSize: 999,
RulesName: '',
}
this.apipost("/api/MallBase/GetLogisticsRulesPage", qRuleMsg, res => {
if (res.data.resultCode == 1) {
this.freightRuleList = res.data.data.pageData;
}
})
},
//
changeSupplier(val) {
},
//获取供应商列表
getSupplierList() {
this.apipost("/api/Supplier/GetSupplierAllList", {}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.SupplierList = res.data.data;
}
});
},
getSort(val) { //列表的升序降序
if (val.prop == 'Id') {
if (val.order == 'ascending') {
this.msg.OrderBy = 1
} else if (val.order == 'descending') {
this.msg.OrderBy = 2
} else {
this.msg.OrderBy = 0
}
} else if (val.prop == 'address') {
if (val.order == 'ascending') {
this.msg.OrderBy = 3
} else if (val.order == 'descending') {
this.msg.OrderBy = 4
} else {
this.msg.OrderBy = 0
}
} else if (val.prop == 'SellingPrice') {
if (val.order == 'ascending') {
this.msg.OrderBy = 5
} else if (val.order == 'descending') {
this.msg.OrderBy = 6
} else {
this.msg.OrderBy = 0
}
} else if (val.prop == 'InventoryNum') {
if (val.order == 'ascending') {
this.msg.OrderBy = 7
} else if (val.order == 'descending') {
this.msg.OrderBy = 8
} else {
this.msg.OrderBy = 0
}
}
this.getList()
},
//新窗口跳转
goGoodsEdit(Id) {
let routeData = this.$router.resolve({
name: 'serviceProductEdit',
query: {
GoodsId: Id,
hpState: this.hpState,
FxState: this.FxState
}
});
window.open(routeData.href, "_blank");
}
},
};
</script>
<style>
.plxg .spmy .el-form-item__label {
padding-right: 26px;
}
.yfradio {
display: block;
padding: 10px;
}
.plxg .batch-div-active {
background-color: #e2e2e2;
}
.plxg .batch-box-left div {
padding: 5px 0;
margin: 5px 0;
cursor: pointer;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.plxg .batch-box-left {
width: 120px;
border-right: 1px solid #e2e2e2;
padding: 0 20px;
}
.plxg .el-dialog__body {
padding-top: 10px !important;
}
.plxg .absoSpan {
position: absolute;
top: 22px;
left: 100px;
}
.app-add-cat .el-checkbox-group {
font-size: 14px !important;
}
.app-add-cat .el-checkbox {
margin-right: 0;
}
.app-add-cat .el-dialog__body {
padding: 10px 20px !important;
}
.app-add-cat .tag-box .tag-item {
margin-right: 5px;
}
.app-add-cat .tag-box {
margin: 20px 0;
}
.app-add-cat .app-goods-cat-list .active {
background: #FAFAFA;
}
.app-add-cat .app-goods-cat-list .cat-item {
cursor: pointer;
padding: 5px 10px;
}
.app-add-cat .app-goods-cat-list {
border: 1px solid #E8EAEE;
border-radius: 5px;
margin-top: -5px;
padding: 10px 0;
overflow: scroll;
height: 400px;
}
.serviceProduct .vue-line-clamp {
display: block;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
.serviceProduct .content {
background: #fff;
margin-top: 10px;
padding: 20px;
box-sizing: border-box;
}
</style>
......@@ -59,9 +59,9 @@ export default {
// domainUrl = "http://192.168.1.27:8200";
//domainUrl = "http://192.168.1.13:8088";
domainUrl = "http://192.168.1.21";
domainUrl = "http://192.168.1.27:8200";
//domainUrl = "https://localhost:5001";
domainUrl = "https://localhost:5001";
let vtUploadUrl = "http://192.168.1.214:8120";
let vtViewUrl = "http://192.168.1.214:8130";
......
......@@ -374,6 +374,12 @@ export default new Router({
name: 'osedgrantCouPon',
component: resolve => require(['@/components/offlineService/osedgrantCouPon'], resolve),
},
//线下服务产品列表
{
path: '/serviceProductList',
name: 'serviceProductList',
component: resolve => require(['@/components/offlineService/serviceProductList'], resolve),
},
]
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment