Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui

master
Chopper 2021-06-29 09:42:39 +08:00
commit 59a580ccac
24 changed files with 400 additions and 249 deletions

View File

@ -457,23 +457,21 @@ export function memberMsgList (params) {
* 设置消息为已读
* @param {String} messageId 消息id
*/
export function readMemberMsg (params) {
export function readMemberMsg (id) {
return request({
url: `/buyer/member/message`,
url: `/buyer/member/message/${id}`,
method: Method.PUT,
needToken: true,
params
needToken: true
});
}
/**
* 删除会员消息
* @param {String} messageId 消息id
*/
export function delMemberMsg (params) {
export function delMemberMsg (id) {
return request({
url: `/buyer/member/message`,
url: `/buyer/member/message/${id}`,
method: Method.DELETE,
needToken: true,
params
needToken: true
});
}

View File

@ -17,15 +17,15 @@ export default {
* @description api请求基础路径
*/
api_dev: {
// common: 'http://192.168.0.109:8890',
// buyer: 'http://192.168.0.109:8888',
// seller: 'http://192.168.0.109:8889',
// manager: 'http://192.168.0.109:8887'
common: 'http://192.168.0.100:8890',
buyer: 'http://192.168.0.100:8888',
seller: 'http://192.168.0.100:8889',
manager: 'http://192.168.0.100:8887'
common: 'https://common-api.pickmall.cn',
buyer: 'https://buyer-api.pickmall.cn',
seller: 'https://store-api.pickmall.cn',
manager: 'https://admin-api.pickmall.cn'
// common: 'https://common-api.pickmall.cn',
// buyer: 'https://buyer-api.pickmall.cn',
// seller: 'https://store-api.pickmall.cn',
// manager: 'https://admin-api.pickmall.cn'
},
api_prod: {
common: 'https://common-api.pickmall.cn',

View File

@ -9,10 +9,12 @@
<img :src="storeMsg.storeLogo" height="50" alt="">
<div>
<p>{{storeMsg.storeName || 'xx店铺'}}</p>
<p v-html="storeMsg.storeDesc"></p>
<p class="ellipsis" :alt="storeMsg.storeDesc" v-html="storeMsg.storeDesc"></p>
</div>
<div>
<span class="hover-pointer" @click="collect"><Icon type="ios-heart" :color="storeCollected ? '#ed3f14' : '#fff'" />{{storeCollected?'已收藏店铺':'收藏店铺'}}</span>
<span style="width:80px" class="hover-pointer ml_10" @click="connectCs(storeMsg.yzfSign)"><Icon custom="icomoon icon-customer-service" />联系客服</span>
</div>
<div class="store-collect" @click="collect"><Icon type="ios-heart" :color="storeCollected ? '#ed3f14' : '#fff'" />{{storeCollected?'已收藏店铺':'收藏店铺'}}</div>
<span class="hover-pointer ml_10" @click="connectCs(storeMsg.yzfSign)"><Icon custom="icomoon icon-customer-service" />联系客服</span>
</div>
</div>
<div class="store-category">
@ -183,15 +185,25 @@ export default {
position: relative;
width: 100%;
background-color: #666;
padding: 10px;
padding: 4px;
color: #fff;
>div{
display: flex;
width: 1200px;
margin: 0 auto;
align-items: center;
>div{
img {
width: 80px;
}
>div:nth-child(2){
margin-left: 10px;
flex: 1;
}
>div:nth-child(3){
width: 200px;
}
}
img {
@ -202,14 +214,11 @@ export default {
}
p:nth-child(2){
font-size: 14px;
max-height: 40px;
max-width: 400px;
}
}
.store-collect{
margin-left: 750px!important;
&:hover{
cursor: pointer;
}
}
.store-category {
background-color: #005aa0;
color: #fff;

View File

@ -1,14 +1,13 @@
<template>
<div class="login">
<div style="height:50px;"></div>
<!-- 顶部logo -->
<div class="top-content">
<div class="logo-box">
<img
src="../assets/images/logo1.png"
@click="$router.push('/')"
/>
<div>修改密码</div>
</div>
<div class="logo-box">
<img
:src="logoImg" width='150'
@click="$router.push('/')"
/>
<div>修改密码</div>
</div>
<div class="login-container">
<!-- 验证手机号 -->
@ -119,6 +118,7 @@ export default {
components: { Verify },
data () {
return {
logoImg: '', // logo
loading: false, //
loading1: false, //
formFirst: { //
@ -242,34 +242,22 @@ export default {
},
mounted () {
this.$refs.formFirst.resetFields();
this.logoImg = this.Cookies.getItem('logo')
},
watch: {
}
};
</script>
<style scoped lang="scss">
.login {
height: 100%;
}
.top-content {
width: 100%;
.logo-box {
width: 600px;
height: 80px;
position: relative;
z-index: 1;
box-shadow: 0 1px 1px #ddd;
background-color: #fff;
.logo-box {
width: 80%;
max-width: 1200px;
height: 80px;
margin: 0 auto;
display: flex;
align-items: center;
img {
width: 200px;
cursor: pointer;
}
margin: 0 auto;
display: flex;
align-items: center;
img {
width: 150px;
cursor: pointer;
}
div {
font-size: 20px;
@ -278,22 +266,23 @@ export default {
}
.login-container {
border-top: 2px solid $theme_color;
position: relative;
margin: 10px auto;
width: 1200px;
margin: 0 auto;
width: 600px;
background-color: #fff;
padding: 20px;
padding: 20px 150px;
.login-btn{
position: absolute;
right: 20px;
top: 20px;
top: -45px;
}
}
.verify-con{
position: absolute;
left: 400px;
top: 50px;
left: 140px;
top: -30px;
z-index: 10;
}

View File

@ -1,6 +1,22 @@
<template>
<div class="msg-list">
<card _Title="我的消息" :_Tabs="status" :_Size="16" />
<card _Title="我的消息" :_Tabs="status" :_Size="16" @_Change="statusChange"/>
<Table v-if="params.status != 'ALREADY_REMOVE' " :columns="messageColumns" :data="messageData.records"></Table>
<Table v-if="params.status == 'ALREADY_REMOVE' " :columns="messageDelColumns" :data="messageData.records"></Table>
<!-- 分页 -->
<Page
style="float:right;margin-top:10px"
:current="params.pageNumber"
:total="messageData.total"
:page-size="params.pageSize"
@on-change="changePage"
@on-page-size-change="changePageSize"
:page-size-opts="[10, 20, 50]"
size="small"
show-total
show-elevator
></Page>
</div>
</template>
<script>
@ -8,27 +24,171 @@ import {memberMsgList, readMemberMsg, delMemberMsg} from '@/api/member.js'
export default {
data() {
return {
list: [], //
messageData: {}, //
status: ['未读', '已读', '回收站'],
params: { //
pageNumber: 1,
pageSize: 10,
status: ''
status: 'UN_READY'
},
messageDelColumns: [ // table
{
title: '消息标题',
key: 'title',
align: 'left',
tooltip: true,
},
{
title: '消息内容',
key: 'content',
align: 'left',
tooltip: true
},
{
title: '发送时间',
key: 'createTime',
align: 'left',
width: 240
},
],
messageColumns: [ // table
{
title: '消息标题',
key: 'title',
align: 'left',
tooltip: true,
},
{
title: '消息内容',
key: 'content',
align: 'left',
tooltip: true
},
{
title: '发送时间',
key: 'createTime',
align: 'left',
width: 240
},
{
title: '操作',
key: 'action',
align: 'center',
fixed: 'right',
width: 150,
render: (h, params) => {
if (params.row.status === 'UN_READY') {
return h('div', [
h(
'Button',
{
props: {
type: 'info',
size: 'small'
},
style: {
marginRight: '5px'
},
on: {
click: () => {
this.setRead(params.row.id);
}
}
},
'已读'
), h(
'Button',
{
props: {
size: 'small',
type: 'error'
},
on: {
click: () => {
this.removeMessage(params.row.id);
}
}
},
'删除'
)
]);
} else if (params.row.status === 'ALREADY_READY') {
return h('div', [
h(
'Button',
{
props: {
size: 'small',
type: 'error'
},
on: {
click: () => {
this.removeMessage(params.row.id);
}
}
},
'删除'
)
]);
} else {
}
}
}
]
}
},
methods: {
//
statusChange (index) {
if (index === 0) { this.params.status = 'UN_READY' }
if (index === 1) { this.params.status = 'ALREADY_READY' }
if (index === 2) { this.params.status = 'ALREADY_REMOVE' }
this.getList()
},
//
changePage (v) {
this.params.pageNumber = v;
this.getList();
},
//
changePageSize (v) {
this.params.pageSize = v;
this.getList();
},
getList () { //
memberMsgList(this.params).then(res => {
if (res.success) {
this.list = res.result.records;
this.messageData = res.result;
}
})
},
setRead (id) { //
//
setRead (id) {
readMemberMsg(id).then(res => {
if (res.success) {
this.getList()
}
})
},
//
removeMessage (id) {
this.$Modal.confirm({
title: '确认删除',
//
content: '确认要删除此消息?',
loading: true,
onOk: () => {
//
delMemberMsg(id).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success('消息已成功放入回收站');
this.getList();
}
});
},
});
}
},
mounted () {
@ -37,5 +197,5 @@ export default {
}
</script>
<style lang="scss" scoped>
</style>
</style>

View File

@ -63,6 +63,7 @@ export default {
this.num++;
if (this.num >= 7) {
clearInterval(this.interval);
this.interval = null;
}
let params = JSON.parse(JSON.stringify(this.$route.query));
delete params.paymentMethod;
@ -70,6 +71,7 @@ export default {
payCallback(params).then(res => {
if (res.result) {
clearInterval(this.interval);
this.interval = null;
this.$router.push({path: '/payDone', query: {orderType: this.$route.query.orderType}});
}
});

View File

@ -10,7 +10,6 @@
/>
</FormItem>
<FormItem prop="storeAddressIdPath" label="公司所在地">
<!-- <Input type="text" v-model="form.storeAddressIdPath" placeholder="请选择公司所在地" /> -->
<region
style="width: 250px"
@selected="selectedRegion"
@ -32,6 +31,13 @@
><span slot="append"></span>
</Input>
</FormItem>
<FormItem prop="linkPhone" label="公司电话">
<Input
type="text"
v-model="form.companyPhone"
placeholder="请填写公司电话"
></Input>
</FormItem>
<FormItem prop="registeredCapital" label="注册资金">
<Input
type="text"

View File

@ -3,7 +3,7 @@
<div style="height: 20px"></div>
<div class="content">
<h3>店铺入驻</h3>
<Steps :current="currentIndex" size="small" class="margin">
<Steps :current="currentIndex" class="margin">
<Step title="企业资质信息"></Step>
<Step title="财务资质信息"></Step>
<Step title="其他信息"></Step>
@ -38,38 +38,37 @@
</div>
</template>
<script>
import { agreement, applyStatus } from "@/api/shopentry";
import firstApply from "./first-apply";
import secondApply from "./second-apply";
import thirdApply from "./third-apply";
import { agreement, applyStatus } from '@/api/shopentry';
import firstApply from './first-apply';
import secondApply from './second-apply';
import thirdApply from './third-apply';
export default {
components: {
firstApply,
secondApply,
thirdApply,
thirdApply
},
data() {
data () {
return {
currentIndex: 0, //
showAgreement: false, //
agreementCon: "", //
agreementCon: '', //
checked: false, //
applyData: {}, //
firstData: {}, //
secondData: {}, //
thirdData: {}, //
storeDisable: "", // APPLY OPEN CLOSED REFUSED APPLYING
dataReview: true, //
storeDisable: '', // APPLY OPEN CLOSED REFUSED APPLYING
dataReview: true //
};
},
methods: {
getArticle() {
getArticle () {
//
agreement().then((res) => {
this.agreementCon = res.result.content;
});
},
getData() {
getData () { //
applyStatus().then((res) => {
if (res.success) {
if (!res.result) {
@ -78,34 +77,34 @@ export default {
this.dataReview = false;
let data = res.result;
let first = [
"addressIdPath",
"addressPath",
"companyAddress",
"companyEmail",
"companyName",
"employeeNum",
"legalId",
"legalName",
"licencePhoto",
"legalPhoto",
"licenseNum",
"linkName",
"linkPhone",
"registeredCapital",
"scope",
'storeAddressIdPath',
'storeAddressPath',
'storeAddressDetail',
'companyEmail',
'companyName',
'employeeNum',
'legalId',
'legalName',
'licencePhoto',
'legalPhoto',
'licenseNum',
'linkName',
'linkPhone',
'registeredCapital',
'scope'
];
let second = [
"settlementBankAccountName",
"settlementBankAccountNum",
"settlementBankBranchName",
"settlementBankJointName",
'settlementBankAccountName',
'settlementBankAccountNum',
'settlementBankBranchName',
'settlementBankJointName'
];
let third = [
"goodsManagementCategory",
"storeCenter",
"storeDesc",
"storeLogo",
"storeName",
'goodsManagementCategory',
'storeCenter',
'storeDesc',
'storeLogo',
'storeName'
];
this.storeDisable = data.storeDisable;
@ -120,25 +119,28 @@ export default {
this.thirdData[e] = data[e];
});
if (this.storeDisable === "APPLY") {
if (this.storeDisable === 'APPLY') {
this.currentIndex = 0;
} else {
this.currentIndex = 3;
}
this.dataReview = true;
this.$forceUpdate();
this.$nextTick(() => {
this.dataReview = true;
this.$forceUpdate();
})
}
console.log(33333333333333);
}
});
},
nextPage(step) {
nextPage (step) {
this.currentIndex = step;
},
}
},
mounted() {
mounted () {
this.getData();
this.getArticle();
},
}
};
</script>
<style lang="scss" scoped>
@ -159,7 +161,7 @@ export default {
}
.margin {
margin: 10px 0;
margin: 30px 0;
}
.agreeent-con {
max-height: 500px;

View File

@ -60,17 +60,23 @@
>
</Select>
</FormItem>
<FormItem prop="storeCenter" label="经纬度">
<Input
<FormItem prop="storeCenter" label="店铺定位">
<!-- <Input
type="text"
v-model="form.storeCenter"
readonly
placeholder="点击右侧按钮选择店铺位置"
/>
/> -->
<Button
icon="ios-locate-outline"
type="info"
v-if="!form.storeCenter"
@click="$refs.liliMap.showMap = true"
></Button>
>点击获取店铺定位</Button>
<Button
type="success"
v-else
@click="$refs.liliMap.showMap = true"
>已定位</Button>
</FormItem>
<FormItem prop="storeDesc" label="店铺简介">
<Input

View File

@ -15,7 +15,8 @@
>
<div class="user-icon">
<div class="user-img">
<img :src="userInfo.face" />
<img :src="userInfo.face" v-if="userInfo.face" alt />
<Avatar icon="ios-person" class="mb_10" v-else size="96" />
</div>
<p>{{userInfo.nickName}}</p>
</div>
@ -125,10 +126,6 @@ export default {
align-items: center;
}
.user-icon span {
font-size: 96px;
}
.user-img {
margin-bottom: 15px;
width: 96px;
@ -137,10 +134,6 @@ export default {
overflow: hidden;
}
.user-img img {
width: 100%;
}
.layout-footer-center {
padding: 0px 15px;

View File

@ -116,6 +116,7 @@ async function refresh (error) {
});
},
onCancel: () => {
router.go(0)
Modal.remove();
}
});

View File

@ -21,6 +21,10 @@ export default {
buyer: "https://buyer-api.pickmall.cn",
seller: "https://store-api.pickmall.cn",
manager: "https://admin-api.pickmall.cn"
// common: 'http://192.168.0.109:8890',
// buyer: 'http://192.168.0.109:8888',
// seller: 'http://192.168.0.109:8889',
// manager: 'http://192.168.0.109:8887'
},
api_prod: {
common: "https://common-api.pickmall.cn",

View File

@ -112,7 +112,7 @@
</Form>
<div slot="footer">
<Button type="text" @click="modalVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="lower(form.id)"
<Button type="primary" :loading="submitLoading" @click="lower"
>提交</Button
>
</div>
@ -363,7 +363,7 @@ export default {
this.modalTitle = "下架操作";
this.modalVisible = true;
},
lower(id) {
lower() {
lowGoods(this.id, this.underForm).then((res) => {
this.$Modal.remove();
if (res.success) {

View File

@ -150,7 +150,7 @@
<div class="today-item">
<div>今日交易额</div>
<span>{{homeData.todayOrderPrice | unitPrice }}</span>
<span>{{homeData.todayOrderPrice ? (homeData.todayOrderPrice | unitPrice) : 0}}</span>
</div>
<div class="today-item">
<div>今日新增店铺</div>

View File

@ -324,7 +324,7 @@ export default {
//
selectedList: {
type: null,
default: "",
default: [],
},
},
watch: {
@ -344,6 +344,7 @@ export default {
callback(val, index) {
this.$set(val, "___selected", !val.___selected);
console.log(val.___selected);
console.log(this.selectMember);
let findUser = this.selectMember.find((item) => {
return item.id == val.id;
});

View File

@ -18,7 +18,7 @@
import { getVerifyImg, postVerifyImg } from './verify.js';
export default {
props: {
verifyType: {
verifyType: { //
defalut: 'LOGIN',
type: String
}
@ -97,9 +97,6 @@ export default {
});
}
},
created () {
// this.getImg();
},
watch: {
verifyType: {
immediate: true,

View File

@ -98,8 +98,8 @@
</p>
<p class="item">
<span class="label">店铺经纬度</span>
<span class="info">{{storeInfo.storeCenter?storeInfo.storeCenter:'暂未完善'}}</span>
<span class="label">店铺定位</span>
<span class="info">{{storeInfo.storeCenter?'已定位':'未定位'}}</span>
</p>
<p class="item">
<span class="label">经营范围</span>

View File

@ -27,8 +27,18 @@
</RadioGroup>
</FormItem>
<FormItem label="店铺经纬度" prop="shopCenter">
<Input v-model="shopForm.storeCenter" @on-focus="$refs.liliMap.showMap = true" clearable style="width: 350px" />
<FormItem label="店铺定位" prop="shopCenter">
<!-- <Input v-model="shopForm.storeCenter" @on-focus="$refs.liliMap.showMap = true" clearable style="width: 350px" /> -->
<Button
type="info"
v-if="!shopForm.storeCenter"
@click="$refs.liliMap.showMap = true"
>点击获取店铺定位</Button>
<Button
type="success"
v-else
@click="$refs.liliMap.showMap = true"
>已定位</Button>
</FormItem>
<FormItem label="店铺所在地" prop="storeAddressPath">
@ -267,7 +277,7 @@ export default {
{ required: true, message: "店铺简介不能为空", trigger: "blur" },
],
storeCenter: [
{ required: true, message: "店铺经纬度不能为空", trigger: "change" },
{ required: true, message: "店铺未定位", trigger: "change" },
],
companyName: [
{ required: true, message: "公司名称不能为空", trigger: "blur" },

View File

@ -18,14 +18,14 @@ export default {
* @description api请求基础路径
*/
api_dev: {
// common: 'https://common-api.pickmall.cn',
// buyer: 'https://buyer-api.pickmall.cn',
// seller: 'https://store-api.pickmall.cn',
// manager: 'https://admin-api.pickmall.cn',
common: 'http://192.168.0.109:8890',
buyer: 'http://192.168.0.109:8888',
seller: 'http://192.168.0.109:8889',
manager: 'http://192.168.0.109:8887'
common: 'https://common-api.pickmall.cn',
buyer: 'https://buyer-api.pickmall.cn',
seller: 'https://store-api.pickmall.cn',
manager: 'https://admin-api.pickmall.cn',
// common: 'http://192.168.0.100:8890',
// buyer: 'http://192.168.0.100:8888',
// seller: 'http://192.168.0.100:8889',
// manager: 'http://192.168.0.100:8887'
},
api_prod: {
common: 'https://common-api.pickmall.cn',

View File

@ -423,7 +423,7 @@ div.base-info-item {
display:flex;
}
.demo-upload-list-cover div {
margin: 10% 0;
margin-top: 50px;
width: 100%;
> i {

View File

@ -36,7 +36,7 @@
<DropdownItem name="uppers">批量上架</DropdownItem>
<DropdownItem name="lowers">批量下架</DropdownItem>
<DropdownItem name="deleteAll">批量删除</DropdownItem>
<!-- <DropdownItem name="batchShipTemplate">批量设置运费模板</DropdownItem> -->
<DropdownItem name="batchShipTemplate">批量设置物流模板</DropdownItem>
</DropdownMenu>
</Dropdown>
</Row>
@ -87,21 +87,10 @@
</div>
</Modal>
<!-- 批量设置运费模板 -->
<Modal title="批量设置运费模板" v-model="shipTemplateModal" :mask-closable="false" :width="500">
<!-- 批量设置物流模板 -->
<Modal title="批量设置物流模板" v-model="shipTemplateModal" :mask-closable="false" :width="500">
<Form ref="shipTemplateForm" :model="shipTemplateForm" :label-width="120">
<FormItem class="form-item-view-el" label="运费" prop="freightPayer">
<RadioGroup type="button" button-style="solid" @on-change="logisticsTemplateUndertakerChange" v-model="shipTemplateForm.freightPayer">
<Radio label="STORE">
<span>卖家承担运费</span>
</Radio>
<Radio label="BUYER">
<span>使用物流规则</span>
</Radio>
</RadioGroup>
</FormItem>
<FormItem class="form-item-view-el" label="物流模板" prop="templateId" v-if="shipTemplateShow">
<FormItem class="form-item-view-el" label="物流模板" prop="templateId">
<Select v-model="shipTemplateForm.templateId" style="width: 200px">
<Option v-for="item in logisticsTemplate" :value="item.id" :key="item.id">{{ item.name }}
</Option>
@ -124,10 +113,9 @@ import {
upGoods,
lowGoods,
deleteGoods,
batchShipTemplate,
batchShipTemplate
} from "@/api/goods";
import * as API_Store from "@/api/shops";
import * as API_Shop from "@/api/shops";
export default {
name: "goods",
@ -135,10 +123,7 @@ export default {
return {
id: "", //id
loading: true, //
shipTemplateForm: {
freightPayer: "STORE",
},
shipTemplateShow: false, //
shipTemplateForm: {},
shipTemplateModal: false, //
logisticsTemplate: [], //
updateStockModalVisible: false, //
@ -421,11 +406,12 @@ export default {
if (v == "deleteAll") {
this.deleteAll();
}
//
//
if (v == "batchShipTemplate") {
this.batchShipTemplate();
}
},
//
getStockDetail(id) {
getGoodsSkuListDataSeller({ goodsId: id, pageSize: 1000 }).then((res) => {
if (res.success) {
@ -435,6 +421,7 @@ export default {
}
});
},
//
updateStock() {
let updateStockList = this.stockList.map((i) => {
let j = { skuId: i.id, quantity: i.quantity };
@ -486,28 +473,24 @@ export default {
this.selectList = e;
this.selectCount = e.length;
},
//
//
saveShipTemplate() {
if (this.shipTemplateForm.freightPayer == "STORE") {
{
this.shipTemplateForm.templateId = 0;
}
}
this.$Modal.confirm({
title: "确认设置运费模板",
title: "确认设置物流模板",
content:
"您确认要设置所选的 " + this.selectCount + " 个商品的运费模板?",
"您确认要设置所选的 " + this.selectCount + " 个商品的物流模板?",
loading: true,
onOk: () => {
let ids = [];
this.selectList.forEach(function (e) {
ids.push(e.id);
});
//
//
batchShipTemplate(this.shipTemplateForm).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("运费模板设置成功");
this.$Message.success("物流模板设置成功");
this.clearSelectAll();
this.getDataList();
}
@ -516,12 +499,13 @@ export default {
},
});
},
//
//
batchShipTemplate() {
if (this.selectCount <= 0) {
this.$Message.warning("您还未选择要设置运费模板的商品");
this.$Message.warning("您还未选择要设置物流模板的商品");
return;
}
this.getShipTempList()
let data = [];
this.selectList.forEach(function (e) {
data.push(e.id);
@ -529,21 +513,7 @@ export default {
this.shipTemplateForm.goodsId = data;
this.shipTemplateModal = true;
},
//
logisticsTemplateUndertakerChange(v) {
//
if (v == "BUYER") {
API_Store.getShipTemplate().then((res) => {
if (res.success) {
this.logisticsTemplate = res.result;
}
});
this.shipTemplateShow = true;
}
if (v == "STORE") {
this.shipTemplateShow = false;
}
},
//
getDataList() {
this.loading = true;
//
@ -555,6 +525,14 @@ export default {
}
});
},
//
getShipTempList () {
API_Shop.getShipTemplate().then((res) => {
if (res.success) {
this.logisticsTemplate = res.result;
}
})
},
//
lower(v) {
this.$Modal.confirm({

View File

@ -137,27 +137,33 @@
<Input type="text" v-model="baseInfoForm.cost" placeholder="市场价格" clearable style="width: 260px"/>
</FormItem>
<FormItem class="form-item-view-el required" label="商品图片" prop="goodsGalleryFiles">
<div class="demo-upload-list" v-for="(item, __index) in baseInfoForm.goodsGalleryFiles" :key="__index">
<template v-if="item.status === 'finished'">
<img :src="item.url"/>
<div class="demo-upload-list-cover">
<div>
<Icon type="ios-eye-outline" @click.native="handleViewGoodsPicture(item.url)"></Icon>
<Icon type="ios-trash-outline" @click.native="handleRemoveGoodsPicture(item)"></Icon>
<vuedraggable
:list="baseInfoForm.goodsGalleryFiles"
:animation="200"
style="display:inline-block;"
ghost-class="thumb-ghost"
>
<div class="demo-upload-list" v-for="(item, __index) in baseInfoForm.goodsGalleryFiles" :key="__index">
<template v-if="item.status === 'finished'">
<img :src="item.url"/>
<div class="demo-upload-list-cover">
<div>
<Icon type="ios-eye-outline" size="30" @click.native="handleViewGoodsPicture(item.url)"></Icon>
<Icon type="ios-trash-outline" size="30" @click.native="handleRemoveGoodsPicture(item)"></Icon>
</div>
<!-- <div>
<Icon type="ios-arrow-dropleft" @click.native="
handleGoodsPicRemoteUp(baseInfoForm.goodsGalleryFiles,__index)"/>
<Icon type="ios-arrow-dropright" @click.native="
handleGoodsPicRemoteDown(baseInfoForm.goodsGalleryFiles,__index)"/>
</div> -->
</div>
<div>
<Icon type="ios-arrow-dropleft" @click.native="
handleGoodsPicRemoteUp(baseInfoForm.goodsGalleryFiles,__index)"/>
<Icon type="ios-arrow-dropright" @click.native="
handleGoodsPicRemoteDown(baseInfoForm.goodsGalleryFiles,__index)"/>
</div>
</div>
</template>
<template v-else>
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
</template>
</div>
</template>
<template v-else>
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
</template>
</div>
</vuedraggable>
<Upload ref="upload" :show-upload-list="false" :default-file-list="baseInfoForm.goodsGalleryFiles"
:on-success="handleSuccessGoodsPicture" :format="['jpg', 'jpeg', 'png']"
:on-format-error="handleFormatError" :on-exceeded-size="handleMaxSize"
@ -167,6 +173,7 @@
<Icon type="ios-camera" size="20"></Icon>
</div>
</Upload>
<!-- <upload-pic-thumb v-model="baseInfoForm.goodsGalleryFiles" :multiple="true"></upload-pic-thumb> -->
<Modal title="View Image" v-model="goodsPictureVisible">
<img :src="previewGoodsPicture" v-if="goodsPictureVisible" style="width: 100%"/>
@ -371,7 +378,7 @@
<Select v-model="params.paramValue" placeholder="请选择" style="width: 200px" clearable
@on-change="selectParams(paramsGroup,groupIndex,params,paramsIndex,params.paramValue)">
<Option v-for="option in params.options.split(',')" :label="option"
:value="option"></Option>
:value="option" :key="option"></Option>
</Select>
</FormItem>
</p>
@ -428,18 +435,17 @@
<script>
import {regular} from "@/utils";
import uploadPicThumb from "@/views/my-components/lili/upload-pic-thumb";
import editor from "@/views/my-components/lili/editor";
import * as API_GOODS from "@/api/goods";
import * as API_Shop from "@/api/shops";
import cloneObj from "@/utils/index";
import vuedraggable from "vuedraggable";
export default {
name: "addGoods",
components: {
uploadPicThumb,
editor,
vuedraggable
},
watch: {
selectGoodsType: {
@ -620,8 +626,8 @@ export default {
updateSku: true,
/** 是否重新生成sku */
regeneratorSkuFlag: false,
/** 运费模板id **/
templateId: 0,
/** 物流模板id **/
templateId: '',
/** 参数组*/
goodsParamsDTOList: [],
},
@ -647,7 +653,7 @@ export default {
/** 规格图片 */
images: [],
/** 运费模板 **/
/** 物流模板 **/
logisticsTemplate: [],
/** 固定列校验提示内容 */
@ -685,6 +691,7 @@ export default {
{required: true, message: "请输入物流参数"},
{validator: checkWeight},
],
templateId: [{required: true, message: '请选择物流模板'}],
sellingPoint: [{required: true, message: "请输入商品卖点"}],
goodsUnit: [{required: true, message: "请选择计量单位"}],
},
@ -715,7 +722,7 @@ export default {
this.accessToken = {
accessToken: this.getStore("accessToken"),
};
//
//
API_Shop.getShipTemplate().then((res) => {
if (res.success) {
this.logisticsTemplate = res.result;
@ -763,7 +770,7 @@ export default {
mobileIntro: "",
updateSku: true,
regeneratorSkuFlag: false,
templateId: 0,
templateId: '',
goodsParamsDTOList: [],
};
this.activestep = 0;
@ -837,7 +844,6 @@ export default {
* @value 参数选项值
*/
selectParams(paramsGroup, groupIndex, params, paramsIndex, value) {
console.log(params.id);
if (!this.baseInfoForm.goodsParamsDTOList[groupIndex]) {
this.baseInfoForm.goodsParamsDTOList[groupIndex] = {
groupId:'',
@ -871,14 +877,13 @@ export default {
// sku
editSkuPicture(row) {
console.log(row);
if (row.images && row.images.length > 0) {
this.previewPicture = row.images[0].url;
}
this.selectedSku = row;
this.showSkuPicture = true;
},
handleView(url) {
handleView (url) {
this.previewPicture = url;
this.visible = true;
},
@ -937,7 +942,6 @@ export default {
});
},
handleBeforeUploadGoodsPicture() {
console.log(this.baseInfoForm);
const check = this.baseInfoForm.goodsGalleryFiles.length < 5;
if (!check) {
this.$Notice.warning({
@ -1016,7 +1020,6 @@ export default {
...this.baseInfoForm,
...response.result,
};
// console.warn(this.baseInfoForm);
this.baseInfoForm.release = "true";
this.baseInfoForm.recommend = this.baseInfoForm.recommend
@ -1140,7 +1143,6 @@ export default {
group.goodsParamsItemDTOList.forEach(param => {
param.groupId = group.groupId
paramsArr.push(param)
console.log(param);
})
})
//
@ -1154,7 +1156,6 @@ export default {
})
})
});
console.log(this.goodsParams);
} else {
this.baseInfoForm.goodsParamsDTOList = []
}
@ -1183,10 +1184,7 @@ export default {
},
//
async skuValueChange(val, index, item) {
/** 更新skuInfo数据 */
// let _arr = cloneObj(item);
// this.$set(item, "name", _arr.name);
// this.$set(this.skuInfo, index, _arr);
/**
* 渲染规格详细表格
*/
@ -1308,7 +1306,6 @@ export default {
);
this.skuTableColumn = pushData;
console.log(this.skuTableColumn);
//
let cloneTemp = cloneObj(this.skuInfo);
@ -1328,7 +1325,6 @@ export default {
cloneTemp.splice(0, 1);
result = this.specIterator(result, cloneTemp);
this.skuTableData = result;
console.log(this.skuTableData);
}
},
/**
@ -1458,7 +1454,6 @@ export default {
this.GET_GoodData();
return;
}
console.log(this.baseInfoForm);
this.GET_GoodsParams();
/** 1级校验 */
this.loading = true;
@ -1548,6 +1543,7 @@ export default {
this.$Message.error("请上传商品图片");
return;
}
if (this.baseInfoForm.templateId === '') this.baseInfoForm.templateId = 0;
let flag = false;
let paramValue = "";
// //
@ -1580,7 +1576,6 @@ export default {
}
/** 参数校验 **/
/* Object.keys(this.baseInfoForm.goodsParamsList).forEach((item) => {
console.warn(item.paramName)
});*/
if (this.goodsId) {

View File

@ -121,7 +121,7 @@
</div>
<div class="detail-item">
<div>
<div @click="navigateTo('seckill')">
<span>{{homeData.seckillNum || 0}}</span>
<div>待参加活动</div>
</div>

View File

@ -48,7 +48,7 @@
</div>
<div class="card-item">
<div class="card-item-label">下单金额</div>
<div class="card-item-value">{{overViewList.orderAmount| unitPrice('¥') }}</div>
<div class="card-item-value">{{overViewList.orderAmount ? ($options.filters.unitPrice(overViewList.orderAmount )) : 0 }}</div>
</div>
<div class="card-item">
<div class="card-item-label">付款笔数</div>
@ -56,7 +56,7 @@
</div>
<div class="card-item">
<div class="card-item-label">付款金额</div>
<div class="card-item-value">{{overViewList.paymentAmount | unitPrice('¥')}}</div>
<div class="card-item-value">{{ overViewList.paymentAmount ? ($options.filters.unitPrice(overViewList.paymentAmount)) : 0 }}</div>
</div>
</div>