云仓库
This commit is contained in:
parent
f8f2d75467
commit
59a58021c3
@ -142,6 +142,35 @@ export function categorySelectApi() {
|
|||||||
return request.get(`store/category/select`)
|
return request.get(`store/category/select`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**mer/store/category/topList
|
||||||
|
* @description 商品列表 -- 新商户分类
|
||||||
|
*/
|
||||||
|
export function newCategorySelectApi() {
|
||||||
|
return request.get(`store/category/topList`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**mer/store/category/topList
|
||||||
|
* @description 商品导入到云商城
|
||||||
|
*/
|
||||||
|
export function importApi(data) {
|
||||||
|
return request.post(`store/product/import`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**mer/store/category/topList
|
||||||
|
* @description 删除云商品
|
||||||
|
*/
|
||||||
|
export function deleteProductCloudApi(data) {
|
||||||
|
return request.post(`store/product/delCloudProduct`, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**mer/store/category/topList
|
||||||
|
* @description 云商城列表
|
||||||
|
*/
|
||||||
|
export function cloudProductListApi(data) {
|
||||||
|
return request.get(`store/product/cloudProductList`, data)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 商品列表 -- 平台分类
|
* @description 商品列表 -- 平台分类
|
||||||
*/
|
*/
|
||||||
@ -528,11 +557,11 @@ export function batchesTempApi(data) {
|
|||||||
}
|
}
|
||||||
/** 参数模板 -- 添加 */
|
/** 参数模板 -- 添加 */
|
||||||
export function productSpecs(data) {
|
export function productSpecs(data) {
|
||||||
return request.post(`store/params/temp/create`,data)
|
return request.post(`store/params/temp/create`, data)
|
||||||
}
|
}
|
||||||
/** 参数模板 -- 编辑 */
|
/** 参数模板 -- 编辑 */
|
||||||
export function specsUpdate(id, data) {
|
export function specsUpdate(id, data) {
|
||||||
return request.post(`store/params/temp/update/${id}`,data)
|
return request.post(`store/params/temp/update/${id}`, data)
|
||||||
}
|
}
|
||||||
/** 参数模板 -- 详情 */
|
/** 参数模板 -- 详情 */
|
||||||
export function productSpecsInfo(id) {
|
export function productSpecsInfo(id) {
|
||||||
@ -552,7 +581,7 @@ export function specsDetailApi(id) {
|
|||||||
}
|
}
|
||||||
/** 添加商品 -- 参数筛选 */
|
/** 添加商品 -- 参数筛选 */
|
||||||
export function specsSelectedApi(data) {
|
export function specsSelectedApi(data) {
|
||||||
return request.get(`store/params/temp/select`,data)
|
return request.get(`store/params/temp/select`, data)
|
||||||
}
|
}
|
||||||
/** 添加商品 -- 参数筛选详情 */
|
/** 添加商品 -- 参数筛选详情 */
|
||||||
export function productSpecsDetailApi(data) {
|
export function productSpecsDetailApi(data) {
|
||||||
@ -567,7 +596,7 @@ export function productBathSvipApi(data) {
|
|||||||
return request.post(`store/product/batch_svip`, data)
|
return request.post(`store/product/batch_svip`, data)
|
||||||
}
|
}
|
||||||
/** 商品列表 -- 立即生成规格 */
|
/** 商品列表 -- 立即生成规格 */
|
||||||
export function generateAttrApi(id,data) {
|
export function generateAttrApi(id, data) {
|
||||||
return request.post(`store/product/get_attr_value/${id}`, data)
|
return request.post(`store/product/get_attr_value/${id}`, data)
|
||||||
}
|
}
|
||||||
/** 商品列表 -- 系统表单下拉 */
|
/** 商品列表 -- 系统表单下拉 */
|
||||||
@ -580,11 +609,11 @@ export function associatedFormInfo(id) {
|
|||||||
}
|
}
|
||||||
/** 商品列表 -- 批量设置 */
|
/** 商品列表 -- 批量设置 */
|
||||||
export function batchSetProduct(data) {
|
export function batchSetProduct(data) {
|
||||||
return request.post(`store/product/batch_process`,data)
|
return request.post(`store/product/batch_process`, data)
|
||||||
}
|
}
|
||||||
/** 商品列表 -- 商品操作记录 */
|
/** 商品列表 -- 商品操作记录 */
|
||||||
export function operateRecordList(id,data) {
|
export function operateRecordList(id, data) {
|
||||||
return request.get(`store/product/get_operate_list/${id}`,data)
|
return request.get(`store/product/get_operate_list/${id}`, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
import Layout from '@/layout'
|
import Layout from '@/layout'
|
||||||
import { roterPre } from '@/settings'
|
import { roterPre } from '@/settings'
|
||||||
const productRouter =
|
const productRouter =
|
||||||
{
|
{
|
||||||
path: `${roterPre}/product`,
|
path: `${roterPre}/product`,
|
||||||
name: 'product',
|
name: 'product',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@ -82,6 +82,15 @@ const productRouter =
|
|||||||
},
|
},
|
||||||
component: () => import('@/views/product/specs/list.vue')
|
component: () => import('@/views/product/specs/list.vue')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'cloud',
|
||||||
|
name: 'productCloud',
|
||||||
|
meta: {
|
||||||
|
title: '云商品列表',
|
||||||
|
noCache: true,
|
||||||
|
},
|
||||||
|
component: () => import('@/views/product/cloud/index.vue')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'specs/create/:id?',
|
path: 'specs/create/:id?',
|
||||||
name: 'ProductSpecsCreate',
|
name: 'ProductSpecsCreate',
|
||||||
@ -103,6 +112,6 @@ const productRouter =
|
|||||||
component: () => import('@/views/product/productUnit')
|
component: () => import('@/views/product/productUnit')
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
export default productRouter
|
export default productRouter
|
||||||
|
1080
src/views/product/cloud/index.vue
Normal file
1080
src/views/product/cloud/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,10 +3,12 @@
|
|||||||
<div class="selCard">
|
<div class="selCard">
|
||||||
<el-form :model="tableFrom" ref="searchForm" size="small" label-width="95px" :inline="true">
|
<el-form :model="tableFrom" ref="searchForm" size="small" label-width="95px" :inline="true">
|
||||||
<el-form-item label="平台分类:" prop="cate_id">
|
<el-form-item label="平台分类:" prop="cate_id">
|
||||||
<el-cascader v-model="tableFrom.cate_id" class="selWidth" :options="categoryList" :props="props" clearable @change="getList(1)" />
|
<el-cascader v-model="tableFrom.cate_id" class="selWidth" :options="categoryList" :props="props" clearable
|
||||||
|
@change="getList(1)" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商户分类:" prop="mer_cate_id">
|
<el-form-item label="商户分类:" prop="mer_cate_id">
|
||||||
<el-select v-model="tableFrom.mer_cate_id" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
<el-select v-model="tableFrom.mer_cate_id" placeholder="请选择" class="filter-item selWidth" clearable
|
||||||
|
@change="getList(1)">
|
||||||
<el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -17,73 +19,45 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会员价:" prop="svip_price_type">
|
<el-form-item label="会员价:" prop="svip_price_type">
|
||||||
<el-select v-model="tableFrom.svip_price_type" placeholder="请选择" class="selWidth" clearable @change="getList(1)">
|
<el-select v-model="tableFrom.svip_price_type" placeholder="请选择" class="selWidth" clearable
|
||||||
|
@change="getList(1)">
|
||||||
<el-option label="未设置" value="0" />
|
<el-option label="未设置" value="0" />
|
||||||
<el-option label="默认设置" value="1" />
|
<el-option label="默认设置" value="1" />
|
||||||
<el-option label="自定义设置" value="2" />
|
<el-option label="自定义设置" value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品状态:" prop="us_status">
|
<el-form-item label="商品状态:" prop="us_status">
|
||||||
<el-select v-model="tableFrom.us_status" placeholder="请选择" class="filter-item selWidth" clearable @change="getList">
|
<el-select v-model="tableFrom.us_status" placeholder="请选择" class="filter-item selWidth" clearable
|
||||||
|
@change="getList">
|
||||||
<el-option v-for="item in productStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in productStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="标签:" prop="mer_labels">
|
<el-form-item label="标签:" prop="mer_labels">
|
||||||
<el-select
|
<el-select v-model="tableFrom.mer_labels" placeholder="请选择" class="filter-item selWidth" clearable filterable
|
||||||
v-model="tableFrom.mer_labels"
|
@change="getList(1)">
|
||||||
placeholder="请选择"
|
<el-option v-for="item in labelList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
class="filter-item selWidth"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
@change="getList(1)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in labelList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="运费模板:" prop="temp_id">
|
<el-form-item label="运费模板:" prop="temp_id">
|
||||||
<el-select
|
<el-select v-model="tableFrom.temp_id" placeholder="请选择" class="filter-item selWidth" clearable filterable
|
||||||
v-model="tableFrom.temp_id"
|
@change="getList(1)">
|
||||||
placeholder="请选择"
|
<el-option v-for="item in tempList" :key="item.shipping_template_id" :label="item.name"
|
||||||
class="filter-item selWidth"
|
:value="item.shipping_template_id" />
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
@change="getList(1)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in tempList"
|
|
||||||
:key="item.shipping_template_id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.shipping_template_id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="系统表单:" prop="form_id">
|
<el-form-item label="系统表单:" prop="form_id">
|
||||||
<el-select
|
<el-select v-model="tableFrom.form_id" placeholder="请选择" class="filter-item selWidth" clearable filterable
|
||||||
v-model="tableFrom.form_id"
|
@change="getList(1)">
|
||||||
placeholder="请选择"
|
<el-option v-for="item in formList" :key="item.form_id" :label="item.name" :value="item.form_id" />
|
||||||
class="filter-item selWidth"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
@change="getList(1)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in formList"
|
|
||||||
:key="item.form_id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.form_id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键字:" prop="keyword">
|
<el-form-item label="关键字:" prop="keyword">
|
||||||
<el-input v-model="tableFrom.keyword" placeholder="请输入商品名称,关键字" class="selWidth" clearable @keyup.enter.native="getList(1)" />
|
<el-input v-model="tableFrom.keyword" placeholder="请输入商品名称,关键字" class="selWidth" clearable
|
||||||
|
@keyup.enter.native="getList(1)" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品类型:" prop="is_ficti">
|
<el-form-item label="商品类型:" prop="is_ficti">
|
||||||
<el-select v-model="tableFrom.is_ficti" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
<el-select v-model="tableFrom.is_ficti" placeholder="请选择" class="filter-item selWidth" clearable
|
||||||
|
@change="getList(1)">
|
||||||
<el-option v-for="item in productTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in productTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -95,54 +69,63 @@
|
|||||||
</div>
|
</div>
|
||||||
<el-card class="mt14">
|
<el-card class="mt14">
|
||||||
<el-tabs v-model="tableFrom.type" @tab-click="getProduct">
|
<el-tabs v-model="tableFrom.type" @tab-click="getProduct">
|
||||||
<el-tab-pane v-for="(item,index) in headeNum" :key="index" :name="item.type.toString()" :label="item.name +'('+item.count +')' " />
|
<el-tab-pane v-for="(item, index) in headeNum" :key="index" :name="item.type.toString()"
|
||||||
|
:label="item.name + '(' + item.count + ')'" />
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div class="mt5 mb14">
|
<div class="mt5 mb14">
|
||||||
<router-link :to="{ path:`${roterPre}` + '/product/list/addProduct' }" class="mr10">
|
<router-link :to="{ path: `${roterPre}` + '/product/list/addProduct' }" class="mr10">
|
||||||
<el-button size="small" type="primary">添加商品</el-button>
|
<el-button size="small" type="primary">添加商品</el-button>
|
||||||
</router-link>
|
</router-link>
|
||||||
<el-button size="small" type="success" @click="onCopy">商品采集</el-button>
|
<el-button size="small" type="success" @click="onCopy">商品采集</el-button>
|
||||||
<el-button size="small" :disabled="checkedIds.length == 0 && !allCheck" type="default" @click="openBatch">批量设置</el-button>
|
<el-button size="small" :disabled="checkedIds.length == 0 && !allCheck" type="default"
|
||||||
<el-button size="small" :disabled="tableFrom.type != 1 || checkedIds.length == 0 && !allCheck" @click="batchOff">批量下架</el-button>
|
@click="openBatch">批量设置</el-button>
|
||||||
<el-button size="small" :disabled="tableFrom.type != 2 || checkedIds.length == 0 && !allCheck" @click="batchShelf">批量上架</el-button>
|
<el-button size="small" :disabled="tableFrom.type != 1 || checkedIds.length == 0 && !allCheck"
|
||||||
|
@click="batchOff">批量下架</el-button>
|
||||||
|
<el-button size="small" :disabled="tableFrom.type != 2 || checkedIds.length == 0 && !allCheck"
|
||||||
|
@click="batchShelf">批量上架</el-button>
|
||||||
|
<el-button size="small" @click="joinCloud">加入云仓</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-alert v-if="checkedIds.length>0 || allCheck" :title="allCheck ? `已选择 ${tableData.total} 项` : `已选择 ${checkedIds.length} 项`" type="info" show-icon class="mb10" />
|
<el-alert v-if="checkedIds.length > 0 || allCheck"
|
||||||
<el-table
|
:title="allCheck ? `已选择 ${tableData.total} 项` : `已选择 ${checkedIds.length} 项`" type="info" show-icon
|
||||||
v-loading="listLoading"
|
class="mb10" />
|
||||||
:data="tableData.data"
|
<el-table v-loading="listLoading" :data="tableData.data" size="small" :row-class-name="tableRowClassName"
|
||||||
size="small"
|
:row-key="(row) => { return row.product_id }" @selection-change="handleSelectionChange"
|
||||||
:row-class-name="tableRowClassName"
|
|
||||||
:row-key="(row) => { return row.product_id }"
|
|
||||||
@selection-change="handleSelectionChange"
|
|
||||||
@rowclick.stop="closeEdit">
|
@rowclick.stop="closeEdit">
|
||||||
<el-table-column width="50">
|
<el-table-column width="50">
|
||||||
<template slot="header" slot-scope="scope">
|
<template slot="header" slot-scope="scope">
|
||||||
<el-popover placement="top-start" width="100" trigger="hover" class="tabPop">
|
<el-popover placement="top-start" width="100" trigger="hover" class="tabPop">
|
||||||
<div>
|
<div>
|
||||||
<span class="spBlock onHand" :class="{'check': chkName === 'dan'}" @click="onHandle('dan',scope.$index)">选中本页</span>
|
<span class="spBlock onHand" :class="{ 'check': chkName === 'dan' }"
|
||||||
<span class="spBlock onHand" :class="{'check': chkName === 'duo'}" @click="onHandle('duo')">选中全部</span>
|
@click="onHandle('dan', scope.$index)">选中本页</span>
|
||||||
|
<span class="spBlock onHand" :class="{ 'check': chkName === 'duo' }"
|
||||||
|
@click="onHandle('duo')">选中全部</span>
|
||||||
</div>
|
</div>
|
||||||
<el-checkbox slot="reference" :value="(chkName === 'dan' && checkedPage.indexOf(tableFrom.page) > -1) || chkName === 'duo'" @change="changeType" />
|
<el-checkbox slot="reference"
|
||||||
|
:value="(chkName === 'dan' && checkedPage.indexOf(tableFrom.page) > -1) || chkName === 'duo'"
|
||||||
|
@change="changeType" />
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox :disabled="scope.row.cancel_time" :value="!scope.row.cancel_time && (checkedIds.indexOf(scope.row.product_id) > -1 || (chkName === 'duo' && noChecked.indexOf(scope.row.product_id) === -1))" @change="(v)=>changeOne(v,scope.row)" />
|
<el-checkbox :disabled="scope.row.cancel_time"
|
||||||
|
:value="!scope.row.cancel_time && (checkedIds.indexOf(scope.row.product_id) > -1 || (chkName === 'duo' && noChecked.indexOf(scope.row.product_id) === -1))"
|
||||||
|
@change="(v) => changeOne(v, scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<el-form label-position="left" inline class="demo-table-expand demo-table-expand1" label-width="90px">
|
<el-form label-position="left" inline class="demo-table-expand demo-table-expand1" label-width="90px">
|
||||||
<el-form-item label="平台分类:">
|
<el-form-item label="平台分类:">
|
||||||
<span>{{ props.row.storeCategory?props.row.storeCategory.cate_name:'-' }}</span>
|
<span>{{ props.row.storeCategory ? props.row.storeCategory.cate_name : '-' }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品分类:">
|
<el-form-item label="商品分类:">
|
||||||
<template v-if="props.row.merCateId.length">
|
<template v-if="props.row.merCateId.length">
|
||||||
<span v-for="(item, index) in props.row.merCateId" :key="index" class="mr10">{{ item.category.cate_name }}</span>
|
<span v-for="(item, index) in props.row.merCateId" :key="index" class="mr10">{{
|
||||||
|
item.category.cate_name }}</span>
|
||||||
</template>
|
</template>
|
||||||
<span v-else>-</span>
|
<span v-else>-</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="品牌:">
|
<el-form-item label="品牌:">
|
||||||
<span class="mr10">{{ props.row.brand?props.row.brand.brand_name:'其他' }}</span>
|
<span class="mr10">{{ props.row.brand ? props.row.brand.brand_name : '其他' }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="市场价格:">
|
<el-form-item label="市场价格:">
|
||||||
<span>{{ props.row.ot_price | filterEmpty }}</span>
|
<span>{{ props.row.ot_price | filterEmpty }}</span>
|
||||||
@ -169,7 +152,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="store_name" label="商品名称" min-width="230">
|
<el-table-column prop="store_name" label="商品名称" min-width="230">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div><span class="tags_name" :class="'name'+scope.row.spec_type">{{ scope.row.spec_type==0 ? '[单规格]' : '[多规格]' }}</span>{{ scope.row.store_name || '-' }}</div>
|
<div><span class="tags_name" :class="'name' + scope.row.spec_type">{{ scope.row.spec_type == 0 ? '[单规格]' :
|
||||||
|
'[多规格]' }}</span>{{ scope.row.store_name || '-' }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="price" label="商品售价" min-width="80" />
|
<el-table-column prop="price" label="商品售价" min-width="80" />
|
||||||
@ -178,14 +162,16 @@
|
|||||||
<el-table-column prop="sort" align="center" label="排序" min-width="80">
|
<el-table-column prop="sort" align="center" label="排序" min-width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.index === tabClickIndex">
|
<span v-if="scope.row.index === tabClickIndex">
|
||||||
<el-input v-model.number="scope.row['sort']" type="number" maxlength="300" size="mini" autofocus @blur="inputBlur(scope)" />
|
<el-input v-model.number="scope.row['sort']" type="number" maxlength="300" size="mini" autofocus
|
||||||
|
@blur="inputBlur(scope)" />
|
||||||
</span>
|
</span>
|
||||||
<span v-else @dblclick.stop="tabClick(scope.row)">{{ scope.row['sort'] }}</span>
|
<span v-else @dblclick.stop="tabClick(scope.row)">{{ scope.row['sort'] }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column v-if="Number(tableFrom.type) < 5" key="1" prop="status" label="上/下架" min-width="90">
|
<el-table-column v-if="Number(tableFrom.type) < 5" key="1" prop="status" label="上/下架" min-width="90">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch v-model="scope.row.is_show" :active-value="1" :inactive-value="0" :width="55" active-text="上架" inactive-text="下架" @change="onchangeIsShow(scope.row)" />
|
<el-switch v-model="scope.row.is_show" :active-value="1" :inactive-value="0" :width="55" active-text="上架"
|
||||||
|
inactive-text="下架" @change="onchangeIsShow(scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="stock" label="商品状态" min-width="90">
|
<el-table-column prop="stock" label="商品状态" min-width="90">
|
||||||
@ -196,89 +182,80 @@
|
|||||||
<el-table-column label="操作" min-width="150" fixed="right">
|
<el-table-column label="操作" min-width="150" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" class="mr10" @click="onDetails(scope.row.product_id)">详情</el-button>
|
<el-button type="text" size="small" class="mr10" @click="onDetails(scope.row.product_id)">详情</el-button>
|
||||||
<router-link v-if="tableFrom.type != 5" :to="{path: roterPre + '/product/list/addProduct/' + scope.row.product_id}">
|
<router-link v-if="tableFrom.type != 5"
|
||||||
|
:to="{ path: roterPre + '/product/list/addProduct/' + scope.row.product_id }">
|
||||||
<el-button type="text" size="small" class="mr10">编辑</el-button>
|
<el-button type="text" size="small" class="mr10">编辑</el-button>
|
||||||
</router-link>
|
</router-link>
|
||||||
<el-button v-if="tableFrom.type !== '5'" type="text" size="small" class="mr10" @click="handlePreview(scope.row.product_id)">预览</el-button>
|
<el-button v-if="tableFrom.type !== '5'" type="text" size="small" class="mr10"
|
||||||
|
@click="handlePreview(scope.row.product_id)">预览</el-button>
|
||||||
<el-dropdown>
|
<el-dropdown>
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
更多<i class="el-icon-arrow-down el-icon--right" />
|
更多<i class="el-icon-arrow-down el-icon--right" />
|
||||||
</span>
|
</span>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item v-if="tableFrom.type !== '5' && is_audit == '1'" @click.native="onAuditFree(scope.row)">免审编辑</el-dropdown-item>
|
<el-dropdown-item v-if="tableFrom.type !== '5' && is_audit == '1'"
|
||||||
|
@click.native="onAuditFree(scope.row)">免审编辑</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="tableFrom.type != 5">
|
<el-dropdown-item v-if="tableFrom.type != 5">
|
||||||
<router-link :to="{path: roterPre + '/product/list/addProduct/' + scope.row.product_id+'?type=copy'}">
|
<router-link
|
||||||
|
:to="{ path: roterPre + '/product/list/addProduct/' + scope.row.product_id + '?type=copy' }">
|
||||||
复制商品
|
复制商品
|
||||||
</router-link>
|
</router-link>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="tableFrom.type !== '5'" @click.native="onEditLabel(scope.row)">编辑标签</el-dropdown-item>
|
<el-dropdown-item v-if="tableFrom.type !== '5'"
|
||||||
|
@click.native="onEditLabel(scope.row)">编辑标签</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="tableFrom.type != 5">
|
<el-dropdown-item v-if="tableFrom.type != 5">
|
||||||
<router-link :to="{path: roterPre + '/product/reviews/?product_id=' + scope.row.product_id}">
|
<router-link :to="{ path: roterPre + '/product/reviews/?product_id=' + scope.row.product_id }">
|
||||||
查看评价
|
查看评价
|
||||||
</router-link>
|
</router-link>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="tableFrom.type !== '1' && tableFrom.type!== '3' && tableFrom.type !=='4'" @click.native="handleDelete(scope.row.product_id, scope.$index)">{{ tableFrom.type === '5' ? '删除' : '加入回收站' }}</el-dropdown-item>
|
<el-dropdown-item v-if="tableFrom.type !== '1' && tableFrom.type !== '3' && tableFrom.type !== '4'"
|
||||||
<el-dropdown-item v-if="tableFrom.type === '5'" @click.native="handleRestore(scope.row.product_id)">恢复商品</el-dropdown-item>
|
@click.native="handleDelete(scope.row.product_id, scope.$index)">{{ tableFrom.type === '5' ? '删除' :
|
||||||
|
'加入回收站' }}</el-dropdown-item>
|
||||||
|
<el-dropdown-item v-if="tableFrom.type === '5'"
|
||||||
|
@click.native="handleRestore(scope.row.product_id)">恢复商品</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-pagination background :page-size="tableFrom.limit" :current-page="tableFrom.page" background layout="total, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange" @current-change="pageChange" />
|
<el-pagination background :page-size="tableFrom.limit" :current-page="tableFrom.page" background
|
||||||
|
layout="total, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange"
|
||||||
|
@current-change="pageChange" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 生成淘宝京东表单-->
|
<!-- 生成淘宝京东表单-->
|
||||||
<tao-bao ref="taoBao" @getSuccess="getSuccess" :deliveryType="deliveryType" :deliveryList="deliveryList"/>
|
<tao-bao ref="taoBao" @getSuccess="getSuccess" :deliveryType="deliveryType" :deliveryList="deliveryList" />
|
||||||
<!--预览商品-->
|
<!--预览商品-->
|
||||||
<div v-if="previewVisible">
|
<div v-if="previewVisible">
|
||||||
<div class="bg" @click.stop="previewVisible = false" />
|
<div class="bg" @click.stop="previewVisible = false" />
|
||||||
<preview-box v-if="previewVisible" ref="previewBox" :goods-id="goodsId" :product-type="0" :preview-key="previewKey" />
|
<preview-box v-if="previewVisible" ref="previewBox" :goods-id="goodsId" :product-type="0"
|
||||||
|
:preview-key="previewKey" />
|
||||||
</div>
|
</div>
|
||||||
<!--编辑标签-->
|
<!--编辑标签-->
|
||||||
<el-dialog
|
<el-dialog v-if="dialogLabel" title="选择标签" :visible.sync="dialogLabel" width="470px" :before-close="handleClose">
|
||||||
v-if="dialogLabel"
|
|
||||||
title="选择标签"
|
|
||||||
:visible.sync="dialogLabel"
|
|
||||||
width="470px"
|
|
||||||
:before-close="handleClose"
|
|
||||||
>
|
|
||||||
<el-form ref="labelForm" :model="labelForm" @submit.native.prevent size="small">
|
<el-form ref="labelForm" :model="labelForm" @submit.native.prevent size="small">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-select v-model="labelForm.mer_labels" clearable multiple placeholder="请选择" class="width100">
|
<el-select v-model="labelForm.mer_labels" clearable multiple placeholder="请选择" class="width100">
|
||||||
<el-option
|
<el-option v-for="item in labelList" :key="item.id" :label="item.name" :value="item.id.toString()" />
|
||||||
v-for="item in labelList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" @click="dialogLabel=false">取消</el-button>
|
<el-button size="small" @click="dialogLabel = false">取消</el-button>
|
||||||
<el-button size="small" type="primary" @click="submitForm('labelForm')">提交</el-button>
|
<el-button size="small" type="primary" @click="submitForm('labelForm')">提交</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 免审核弹窗-->
|
<!-- 免审核弹窗-->
|
||||||
<edit-attr ref="editAttr"/>
|
<edit-attr ref="editAttr" />
|
||||||
<!--运费模板弹窗-->
|
<!--运费模板弹窗-->
|
||||||
<el-dialog
|
<el-dialog v-if="dialogFreight" title="选择运费模板" :visible.sync="dialogFreight" width="800px"
|
||||||
v-if="dialogFreight"
|
:before-close="handleFreightClose">
|
||||||
title="选择运费模板"
|
|
||||||
:visible.sync="dialogFreight"
|
|
||||||
width="800px"
|
|
||||||
:before-close="handleFreightClose"
|
|
||||||
>
|
|
||||||
<el-form ref="tempForm" :model="tempForm" :rules="tempRule" @submit.native.prevent>
|
<el-form ref="tempForm" :model="tempForm" :rules="tempRule" @submit.native.prevent>
|
||||||
<el-form-item prop="temp_id">
|
<el-form-item prop="temp_id">
|
||||||
<el-select v-model="tempForm.temp_id" clearable placeholder="请选择" class="selWidth">
|
<el-select v-model="tempForm.temp_id" clearable placeholder="请选择" class="selWidth">
|
||||||
<el-option
|
<el-option v-for="item in tempList" :key="item.shipping_template_id" :label="item.name"
|
||||||
v-for="item in tempList"
|
:value="item.shipping_template_id" />
|
||||||
:key="item.shipping_template_id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.shipping_template_id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -287,18 +264,15 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--批量设置佣金弹窗-->
|
<!--批量设置佣金弹窗-->
|
||||||
<el-dialog
|
<el-dialog v-if="dialogCommision" title="设置佣金" :visible.sync="dialogCommision" width="600px">
|
||||||
v-if="dialogCommision"
|
|
||||||
title="设置佣金"
|
|
||||||
:visible.sync="dialogCommision"
|
|
||||||
width="600px"
|
|
||||||
>
|
|
||||||
<el-form ref="commisionForm" :model="commisionForm" :rules="commisionRule" @submit.native.prevent>
|
<el-form ref="commisionForm" :model="commisionForm" :rules="commisionRule" @submit.native.prevent>
|
||||||
<el-form-item label="一级佣金比例:" prop="extension_one">
|
<el-form-item label="一级佣金比例:" prop="extension_one">
|
||||||
<el-input-number v-model="commisionForm.extension_one" :precision="2" :step="0.1" :min="0" :max="1" class="priceBox" controls-position="right"/>
|
<el-input-number v-model="commisionForm.extension_one" :precision="2" :step="0.1" :min="0" :max="1"
|
||||||
|
class="priceBox" controls-position="right" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="二级佣金比例:" prop="extension_two">
|
<el-form-item label="二级佣金比例:" prop="extension_two">
|
||||||
<el-input-number v-model="commisionForm.extension_two" :precision="2" :step="0.1" :min="0" :max="1" class="priceBox" controls-position="right"/>
|
<el-input-number v-model="commisionForm.extension_two" :precision="2" :step="0.1" :min="0" :max="1"
|
||||||
|
class="priceBox" controls-position="right" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<span>备注:订单交易成功后给上级返佣的比例,例:0.5 = 返订单金额的50%</span>
|
<span>备注:订单交易成功后给上级返佣的比例,例:0.5 = 返订单金额的50%</span>
|
||||||
@ -309,23 +283,18 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--批量设置付费会员价-->
|
<!--批量设置付费会员价-->
|
||||||
<el-dialog
|
<el-dialog v-if="dialogSvip" title="批量设置付费会员价" :visible.sync="dialogSvip" width="700px">
|
||||||
v-if="dialogSvip"
|
|
||||||
title="批量设置付费会员价"
|
|
||||||
:visible.sync="dialogSvip"
|
|
||||||
width="700px"
|
|
||||||
>
|
|
||||||
<el-form ref="svipForm" :model="svipForm" @submit.native.prevent label-width="80px">
|
<el-form ref="svipForm" :model="svipForm" @submit.native.prevent label-width="80px">
|
||||||
<el-form-item
|
<el-form-item label="参与方式:">
|
||||||
label="参与方式:"
|
|
||||||
>
|
|
||||||
<el-radio-group v-model="svipForm.svip_price_type">
|
<el-radio-group v-model="svipForm.svip_price_type">
|
||||||
<el-radio :label="0" class="radio">不设置会员价</el-radio>
|
<el-radio :label="0" class="radio">不设置会员价</el-radio>
|
||||||
<el-radio :label="1" class="radio">默认设置会员价</el-radio>
|
<el-radio :label="1" class="radio">默认设置会员价</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
备注:默认设置会员价是指商户在 <router-link :to="{path: roterPre + '/systemForm/Basics/svip'}" class="member-link"> [设置-付费会员设置] </router-link> 中设置的会员折扣价,选择后每个商品默认展示此处设置的会员折扣价。
|
备注:默认设置会员价是指商户在 <router-link :to="{ path: roterPre + '/systemForm/Basics/svip' }" class="member-link">
|
||||||
|
[设置-付费会员设置]
|
||||||
|
</router-link> 中设置的会员折扣价,选择后每个商品默认展示此处设置的会员折扣价。
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
@ -333,23 +302,17 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--批量设置弹窗-->
|
<!--批量设置弹窗-->
|
||||||
<el-dialog
|
<el-dialog v-if="batchModal" title="批量设置" :visible.sync="batchModal" width="750px">
|
||||||
v-if="batchModal"
|
|
||||||
title="批量设置"
|
|
||||||
:visible.sync="batchModal"
|
|
||||||
width="750px"
|
|
||||||
>
|
|
||||||
<div>
|
<div>
|
||||||
<el-alert
|
<el-alert title="每次只能修改一项,如需修改多项,请多次操作。" type="warning" :closable="false">
|
||||||
title="每次只能修改一项,如需修改多项,请多次操作。"
|
|
||||||
type="warning" :closable="false">
|
|
||||||
</el-alert>
|
</el-alert>
|
||||||
<div class="batch-tab mt20">
|
<div class="batch-tab mt20">
|
||||||
<el-tabs :tab-position="tabPosition" v-model="batchName">
|
<el-tabs :tab-position="tabPosition" v-model="batchName">
|
||||||
<el-tab-pane label="商品分类" name="cate">
|
<el-tab-pane label="商品分类" name="cate">
|
||||||
<el-form size="small" label-width="120px" :inline="true">
|
<el-form size="small" label-width="120px" :inline="true">
|
||||||
<el-form-item label="平台商品分类:">
|
<el-form-item label="平台商品分类:">
|
||||||
<el-cascader v-model="batchData.cate_id" :options="categoryList" :props="props" clearable class="width100" />
|
<el-cascader v-model="batchData.cate_id" :options="categoryList" :props="props" clearable
|
||||||
|
class="width100" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@ -357,12 +320,7 @@
|
|||||||
<el-form size="small" label-width="120px" :inline="true">
|
<el-form size="small" label-width="120px" :inline="true">
|
||||||
<el-form-item label="商品标签:">
|
<el-form-item label="商品标签:">
|
||||||
<el-select v-model="batchData.mer_labels" clearable multiple placeholder="请选择" class="width100">
|
<el-select v-model="batchData.mer_labels" clearable multiple placeholder="请选择" class="width100">
|
||||||
<el-option
|
<el-option v-for="item in labelList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
v-for="item in labelList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -371,11 +329,7 @@
|
|||||||
<el-form size="small" label-width="120px" :inline="true">
|
<el-form size="small" label-width="120px" :inline="true">
|
||||||
<el-form-item label="配送方式:">
|
<el-form-item label="配送方式:">
|
||||||
<el-checkbox-group v-model="batchData.delivery_way">
|
<el-checkbox-group v-model="batchData.delivery_way">
|
||||||
<el-checkbox
|
<el-checkbox v-for="item in deliveryList" :key="item.value" :label="item.value">
|
||||||
v-for="item in deliveryList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.value"
|
|
||||||
>
|
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
@ -393,12 +347,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="batchData.delivery_free == 0">
|
<el-form-item v-if="batchData.delivery_free == 0">
|
||||||
<el-select v-model="batchData.temp_id" clearable placeholder="请选择" class="width100">
|
<el-select v-model="batchData.temp_id" clearable placeholder="请选择" class="width100">
|
||||||
<el-option
|
<el-option v-for="item in tempList" :key="item.shipping_template_id" :label="item.name"
|
||||||
v-for="item in tempList"
|
:value="item.shipping_template_id" />
|
||||||
:key="item.shipping_template_id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.shipping_template_id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -406,10 +356,12 @@
|
|||||||
<el-tab-pane label="佣金设置" name="commission">
|
<el-tab-pane label="佣金设置" name="commission">
|
||||||
<el-form size="small" label-width="120px" :inline="false">
|
<el-form size="small" label-width="120px" :inline="false">
|
||||||
<el-form-item label="一级佣金比例:">
|
<el-form-item label="一级佣金比例:">
|
||||||
<el-input-number v-model="batchData.extension_one" :precision="2" :step="0.1" :min="0" :max="1" class="width100" controls-position="right"/>
|
<el-input-number v-model="batchData.extension_one" :precision="2" :step="0.1" :min="0" :max="1"
|
||||||
|
class="width100" controls-position="right" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="二级佣金比例:">
|
<el-form-item label="二级佣金比例:">
|
||||||
<el-input-number v-model="batchData.extension_two" :precision="2" :step="0.1" :min="0" :max="1" class="width100" controls-position="right"/>
|
<el-input-number v-model="batchData.extension_two" :precision="2" :step="0.1" :min="0" :max="1"
|
||||||
|
class="width100" controls-position="right" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<span style="color:#909399">备注:订单交易成功后给上级返佣的比例,例:0.5 = 返订单金额的50%</span>
|
<span style="color:#909399">备注:订单交易成功后给上级返佣的比例,例:0.5 = 返订单金额的50%</span>
|
||||||
@ -418,54 +370,40 @@
|
|||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane v-if="open_svip == 1" label="付费会员设置" name="member">
|
<el-tab-pane v-if="open_svip == 1" label="付费会员设置" name="member">
|
||||||
<el-form label-width="120px">
|
<el-form label-width="120px">
|
||||||
<el-form-item
|
<el-form-item label="参与方式:">
|
||||||
label="参与方式:"
|
|
||||||
>
|
|
||||||
<el-radio-group v-model="batchData.svip_price_type">
|
<el-radio-group v-model="batchData.svip_price_type">
|
||||||
<el-radio :label="0" class="radio">不设置会员价</el-radio>
|
<el-radio :label="0" class="radio">不设置会员价</el-radio>
|
||||||
<el-radio :label="1" class="radio">默认设置会员价</el-radio>
|
<el-radio :label="1" class="radio">默认设置会员价</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
备注:默认设置会员价是指商户在 <router-link :to="{path: roterPre + '/systemForm/Basics/svip'}" class="member-link"> [设置-付费会员设置] </router-link> 中设置的会员折扣价,选择后每个商品默认展示此处设置的会员折扣价。
|
备注:默认设置会员价是指商户在 <router-link :to="{ path: roterPre + '/systemForm/Basics/svip' }" class="member-link">
|
||||||
|
[设置-付费会员设置] </router-link> 中设置的会员折扣价,选择后每个商品默认展示此处设置的会员折扣价。
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="系统表单" name="sys_form">
|
<el-tab-pane label="系统表单" name="sys_form">
|
||||||
<el-form label-width="120px">
|
<el-form label-width="120px">
|
||||||
<el-form-item label="系统表单:">
|
<el-form-item label="系统表单:">
|
||||||
<el-select
|
<el-select size="small" clearable v-model="batchData.mer_form_id" @change="getFormInfo"
|
||||||
size="small"
|
class="width100">
|
||||||
clearable
|
<el-option v-for="items in formList" :key="items.form_id" :value="items.form_id"
|
||||||
v-model="batchData.mer_form_id"
|
:label="items.name">{{
|
||||||
@change="getFormInfo"
|
items.name }}
|
||||||
class="width100"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="items in formList"
|
|
||||||
:key="items.form_id"
|
|
||||||
:value="items.form_id"
|
|
||||||
:label="items.name"
|
|
||||||
>{{ items.name }}
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="formData.length>0">
|
<el-form-item v-if="formData.length > 0">
|
||||||
<el-table
|
<el-table border class="specsList" :data="formData" size="small">
|
||||||
border
|
|
||||||
class="specsList"
|
|
||||||
:data="formData"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
<el-table-column prop="label" label="表单标题" min-width="100" />
|
<el-table-column prop="label" label="表单标题" min-width="100" />
|
||||||
<el-table-column prop="type" label="表单类型" min-width="100">
|
<el-table-column prop="type" label="表单类型" min-width="100">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<span>{{row.type | formTypeFilter}}</span>
|
<span>{{ row.type | formTypeFilter }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="100" label="是否必填">
|
<el-table-column min-width="100" label="是否必填">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<span>{{row.val ? '必填' : '不必填'}}</span>
|
<span>{{ row.val ? '必填' : '不必填' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -482,8 +420,12 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input-number v-model="batchData.price_number" :precision="2" :step="0.1" :min="0" class="width100" controls-position="right"/>
|
<el-input-number v-model="batchData.price_number" :precision="2" :step="0.1" :min="0" class="width100"
|
||||||
<span style="color:#909399">({{ (batchData.price_type=='add' || batchData.price_type=='sub') ? '元' : '%' }})</span>
|
controls-position="right" />
|
||||||
|
<span style="color:#909399">({{ (batchData.price_type == 'add' || batchData.price_type == 'sub') ? '元'
|
||||||
|
:
|
||||||
|
'%'
|
||||||
|
}})</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<div style="color:#F56464">注:批量设置价格为敏感操作,请谨慎操作!</div>
|
<div style="color:#F56464">注:批量设置价格为敏感操作,请谨慎操作!</div>
|
||||||
@ -498,14 +440,25 @@
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--商品详情-->
|
<!--商品详情-->
|
||||||
<pro-detail
|
<pro-detail ref="proDetail" :productId="product_id" :configData="configData" @closeDrawer="closeDrawer"
|
||||||
ref="proDetail"
|
@changeDrawer="changeDrawer" :drawer="drawer"></pro-detail>
|
||||||
:productId="product_id"
|
|
||||||
:configData="configData"
|
|
||||||
@closeDrawer="closeDrawer"
|
<el-dialog title="上传云仓" :visible.sync="showShow" width="650px" :before-close="handleClose">
|
||||||
@changeDrawer="changeDrawer"
|
<el-form>
|
||||||
:drawer="drawer"
|
<el-form-item label="商品分类">
|
||||||
></pro-detail>
|
<el-select multiple v-model="selectedCategoryIds" style="width:300px;">
|
||||||
|
<el-option v-for="(item, indx) in categoryBox" :label="item.category_name"
|
||||||
|
:value="item.merchant_category_id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button size="small" @click="showShow = false">取消</el-button>
|
||||||
|
<el-button size="small" type="primary" @click="submitProduct">提交</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -539,7 +492,9 @@ import {
|
|||||||
productBathSvipApi,
|
productBathSvipApi,
|
||||||
associatedFormList,
|
associatedFormList,
|
||||||
associatedFormInfo,
|
associatedFormInfo,
|
||||||
batchSetProduct
|
batchSetProduct,
|
||||||
|
importApi,
|
||||||
|
newCategorySelectApi
|
||||||
} from '@/api/product'
|
} from '@/api/product'
|
||||||
import { roterPre } from '@/settings'
|
import { roterPre } from '@/settings'
|
||||||
import taoBao from './taoBao'
|
import taoBao from './taoBao'
|
||||||
@ -551,6 +506,9 @@ export default {
|
|||||||
components: { taoBao, previewBox, editAttr, proDetail },
|
components: { taoBao, previewBox, editAttr, proDetail },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
showShow: false,
|
||||||
|
categoryBox: [],
|
||||||
|
selectedCategoryIds: [],
|
||||||
props: {
|
props: {
|
||||||
emitPath: false
|
emitPath: false
|
||||||
},
|
},
|
||||||
@ -596,14 +554,14 @@ export default {
|
|||||||
{ label: '卡密商品', value: 2 }
|
{ label: '卡密商品', value: 2 }
|
||||||
],
|
],
|
||||||
tempRule: {
|
tempRule: {
|
||||||
temp_id: [{required: true,message: '请选择运费模板',trigger: 'change'}]
|
temp_id: [{ required: true, message: '请选择运费模板', trigger: 'change' }]
|
||||||
},
|
},
|
||||||
commisionRule: {
|
commisionRule: {
|
||||||
extension_one: [{required: true,message: '请输入一级佣金',trigger: 'change'}],
|
extension_one: [{ required: true, message: '请输入一级佣金', trigger: 'change' }],
|
||||||
extension_two: [{required: true,message: '请输入二级佣金',trigger: 'change'}]
|
extension_two: [{ required: true, message: '请输入二级佣金', trigger: 'change' }]
|
||||||
},
|
},
|
||||||
commisionForm: {extension_one:0,extension_two:0},
|
commisionForm: { extension_one: 0, extension_two: 0 },
|
||||||
svipForm: {svip_price_type: 0},
|
svipForm: { svip_price_type: 0 },
|
||||||
goodsId: '',
|
goodsId: '',
|
||||||
previewKey: '',
|
previewKey: '',
|
||||||
product_id: '',
|
product_id: '',
|
||||||
@ -648,11 +606,42 @@ export default {
|
|||||||
this.getList(1)
|
this.getList(1)
|
||||||
this.getLabelLst()
|
this.getLabelLst()
|
||||||
this.getTempLst()
|
this.getTempLst()
|
||||||
this.productCon()
|
this.productCon();
|
||||||
|
|
||||||
|
this.getCategory();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
// 提交云仓
|
||||||
|
submitProduct() {
|
||||||
|
if (this.selectedCategoryIds.length == 0) return this.$message.error("请至少选择一种分类数据!");
|
||||||
|
importApi({
|
||||||
|
product_ids: this.checkedIds,
|
||||||
|
category_ids: this.selectedCategoryIds
|
||||||
|
}).then(res => {
|
||||||
|
this.$message.success("加入成功!");
|
||||||
|
this.checkedIds = [];
|
||||||
|
this.selectedCategoryIds = [];
|
||||||
|
}).catch(err => {
|
||||||
|
this.$message.success(err.message)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 加入云仓
|
||||||
|
joinCloud() {
|
||||||
|
if (this.checkedIds.length == 0) return this.$message.error("请至少选择一条数据!");
|
||||||
|
this.showShow = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取分类
|
||||||
|
getCategory() {
|
||||||
|
newCategorySelectApi().then(res => {
|
||||||
|
this.categoryBox = res.data;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
/**重置 */
|
/**重置 */
|
||||||
searchReset(){
|
searchReset() {
|
||||||
this.$refs.searchForm.resetFields()
|
this.$refs.searchForm.resetFields()
|
||||||
this.getList(1)
|
this.getList(1)
|
||||||
},
|
},
|
||||||
@ -672,6 +661,7 @@ export default {
|
|||||||
this.closeEdit()
|
this.closeEdit()
|
||||||
})
|
})
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
closeEdit() {
|
closeEdit() {
|
||||||
@ -746,33 +736,33 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 批量设置价格
|
// 批量设置价格
|
||||||
changePrice(){
|
changePrice() {
|
||||||
if(this.batchData.price_type == 'div'){
|
if (this.batchData.price_type == 'div') {
|
||||||
this.batchData.price_number = 1
|
this.batchData.price_number = 1
|
||||||
}else{
|
} else {
|
||||||
this.batchData.price_number = 0
|
this.batchData.price_number = 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 批量设置--提交数据
|
// 批量设置--提交数据
|
||||||
submitBatchForm(){
|
submitBatchForm() {
|
||||||
console.log(this.batchName)
|
console.log(this.batchName)
|
||||||
let name = this.batchName
|
let name = this.batchName
|
||||||
switch (name) {
|
switch (name) {
|
||||||
case 'cate':
|
case 'cate':
|
||||||
if(!this.batchData.cate_id){
|
if (!this.batchData.cate_id) {
|
||||||
return this.$message.warning('请选择商品分类!')
|
return this.$message.warning('请选择商品分类!')
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'delivery_method':
|
case 'delivery_method':
|
||||||
if(!this.batchData.delivery_way.length){
|
if (!this.batchData.delivery_way.length) {
|
||||||
return this.$message.warning('请选择配送方式!')
|
return this.$message.warning('请选择配送方式!')
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'postage':
|
case 'postage':
|
||||||
if(this.batchData.delivery_free != 0 && this.batchData.delivery_free != 1){
|
if (this.batchData.delivery_free != 0 && this.batchData.delivery_free != 1) {
|
||||||
return this.$message.warning('请选择运费设置!')
|
return this.$message.warning('请选择运费设置!')
|
||||||
}
|
}
|
||||||
if(this.batchData.delivery_free == 0 && !this.batchData.temp_id){
|
if (this.batchData.delivery_free == 0 && !this.batchData.temp_id) {
|
||||||
return this.$message.warning('请选择运费模板!')
|
return this.$message.warning('请选择运费模板!')
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@ -781,17 +771,17 @@ export default {
|
|||||||
this.batchData.extension_two = this.batchData.extension_two || 0
|
this.batchData.extension_two = this.batchData.extension_two || 0
|
||||||
break
|
break
|
||||||
case 'price':
|
case 'price':
|
||||||
if(this.batchData.price_type == 'div' && this.batchData.price_number == 0){
|
if (this.batchData.price_type == 'div' && this.batchData.price_number == 0) {
|
||||||
return this.$message.warning('除数不能为0!')
|
return this.$message.warning('除数不能为0!')
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
let parmas = this.batchData
|
let parmas = this.batchData
|
||||||
parmas.batch_type = this.batchName
|
parmas.batch_type = this.batchName
|
||||||
if(this.allCheck){
|
if (this.allCheck) {
|
||||||
parmas.batch_select_type = 'all'
|
parmas.batch_select_type = 'all'
|
||||||
parmas.where = this.tableFrom
|
parmas.where = this.tableFrom
|
||||||
}else{
|
} else {
|
||||||
parmas.batch_select_type = 'select'
|
parmas.batch_select_type = 'select'
|
||||||
parmas.ids = this.checkedIds
|
parmas.ids = this.checkedIds
|
||||||
}
|
}
|
||||||
@ -841,7 +831,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 系统表单下拉数据
|
// 系统表单下拉数据
|
||||||
getFormList(){
|
getFormList() {
|
||||||
associatedFormList()
|
associatedFormList()
|
||||||
.then(res => {
|
.then(res => {
|
||||||
this.formList = res.data
|
this.formList = res.data
|
||||||
@ -851,15 +841,15 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 关联的表单信息
|
// 关联的表单信息
|
||||||
getFormInfo(){
|
getFormInfo() {
|
||||||
if(this.batchData.mer_form_id){
|
if (this.batchData.mer_form_id) {
|
||||||
associatedFormInfo(this.batchData.mer_form_id).then((res) => {
|
associatedFormInfo(this.batchData.mer_form_id).then((res) => {
|
||||||
this.formData = res.data
|
this.formData = res.data
|
||||||
})
|
})
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
this.$message.error(res.message)
|
this.$message.error(res.message)
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
this.formData = []
|
this.formData = []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -885,7 +875,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 打开批量设置弹窗
|
// 打开批量设置弹窗
|
||||||
openBatch(){
|
openBatch() {
|
||||||
this.batchModal = true;
|
this.batchModal = true;
|
||||||
},
|
},
|
||||||
// 获取标签项
|
// 获取标签项
|
||||||
@ -917,7 +907,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 批量设置会员价
|
// 批量设置会员价
|
||||||
batchSvip() {
|
batchSvip() {
|
||||||
if(this.multipleSelection.length === 0) return this.$message.warning('请先选择商品')
|
if (this.multipleSelection.length === 0) return this.$message.warning('请先选择商品')
|
||||||
this.dialogSvip = true;
|
this.dialogSvip = true;
|
||||||
},
|
},
|
||||||
submitCommisionForm(name) {
|
submitCommisionForm(name) {
|
||||||
@ -945,16 +935,16 @@ export default {
|
|||||||
},
|
},
|
||||||
// 批量上架
|
// 批量上架
|
||||||
batchShelf() {
|
batchShelf() {
|
||||||
if(this.checkedIds.length === 0 && !this.allCheck) return this.$message.warning('请先选择商品')
|
if (this.checkedIds.length === 0 && !this.allCheck) return this.$message.warning('请先选择商品')
|
||||||
let ids = []
|
let ids = []
|
||||||
if(this.allCheck){
|
if (this.allCheck) {
|
||||||
this.tableData.data.map((item) => {
|
this.tableData.data.map((item) => {
|
||||||
ids.push(item.product_id)
|
ids.push(item.product_id)
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
ids = this.checkedIds
|
ids = this.checkedIds
|
||||||
}
|
}
|
||||||
let data = {status: 1,ids: ids}
|
let data = { status: 1, ids: ids }
|
||||||
batchesOnOffApi(data).then(res => {
|
batchesOnOffApi(data).then(res => {
|
||||||
this.$message.success(res.message)
|
this.$message.success(res.message)
|
||||||
this.getLstFilterApi()
|
this.getLstFilterApi()
|
||||||
@ -966,16 +956,16 @@ export default {
|
|||||||
},
|
},
|
||||||
// 批量下架
|
// 批量下架
|
||||||
batchOff() {
|
batchOff() {
|
||||||
if(this.checkedIds.length === 0 && !this.allCheck) return this.$message.warning('请先选择商品')
|
if (this.checkedIds.length === 0 && !this.allCheck) return this.$message.warning('请先选择商品')
|
||||||
let ids = []
|
let ids = []
|
||||||
if(this.allCheck){
|
if (this.allCheck) {
|
||||||
this.tableData.data.map((item) => {
|
this.tableData.data.map((item) => {
|
||||||
ids.push(item.product_id)
|
ids.push(item.product_id)
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
ids = this.checkedIds
|
ids = this.checkedIds
|
||||||
}
|
}
|
||||||
let data = {status: 0,ids: ids}
|
let data = { status: 0, ids: ids }
|
||||||
batchesOnOffApi(data).then(res => {
|
batchesOnOffApi(data).then(res => {
|
||||||
this.$message.success(res.message)
|
this.$message.success(res.message)
|
||||||
this.getLstFilterApi()
|
this.getLstFilterApi()
|
||||||
@ -1064,7 +1054,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 顶部切换并初始化选择的商品
|
// 顶部切换并初始化选择的商品
|
||||||
getProduct(){
|
getProduct() {
|
||||||
this.getList()
|
this.getList()
|
||||||
this.changeType()
|
this.changeType()
|
||||||
},
|
},
|
||||||
@ -1180,65 +1170,82 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
background: rgba(0, 0, 0, 0.1);
|
background: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.check {
|
.check {
|
||||||
color: #00a2d4;
|
color: #00a2d4;
|
||||||
}
|
}
|
||||||
.spBlock{
|
|
||||||
|
.spBlock {
|
||||||
display: block;
|
display: block;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.tags_name{
|
|
||||||
|
.tags_name {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
&.name0{
|
|
||||||
|
&.name0 {
|
||||||
color: var(--prev-color-primary);
|
color: var(--prev-color-primary);
|
||||||
}
|
}
|
||||||
&.name1{
|
|
||||||
|
&.name1 {
|
||||||
color: #FF8A4D;
|
color: #FF8A4D;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.member-link{
|
|
||||||
|
.member-link {
|
||||||
color: var(--prev-color-primary);
|
color: var(--prev-color-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.goods_detail .goods_detail_wrapper {
|
.goods_detail .goods_detail_wrapper {
|
||||||
z-index: -10;
|
z-index: -10;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep table.el-input__inner {
|
::v-deep table.el-input__inner {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.demo-table-expand {
|
.demo-table-expand {
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.demo-table-expand1 ::v-deep label {
|
.demo-table-expand1 ::v-deep label {
|
||||||
color: #99a9bf;
|
color: #99a9bf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.demo-table-expand .el-form-item {
|
.demo-table-expand .el-form-item {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
width: 33.33%;
|
width: 33.33%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.width100 {
|
.width100 {
|
||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seachTiele {
|
.seachTiele {
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon-arrow-down {
|
.el-icon-arrow-down {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
::v-deep .batch-tab .el-tabs__item{
|
|
||||||
|
::v-deep .batch-tab .el-tabs__item {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
}
|
}
|
||||||
.batch-tab .el-tabs{
|
|
||||||
|
.batch-tab .el-tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
::v-deep .batch-tab .el-tabs__content{
|
|
||||||
|
::v-deep .batch-tab .el-tabs__content {
|
||||||
min-width: 560px;
|
min-width: 560px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user