yujialong 1 year ago
parent 66b112f80f
commit 0d1dd45c8b
  1. 4
      config/request.js
  2. 5
      order/addCourse/addCourse.vue
  3. 32
      order/orderDetail/orderDetail.vue
  4. 6
      order/productDetail/productDetail.vue
  5. 10
      order/products/products.vue
  6. 2
      pages.json
  7. 161
      pages/index/index.vue
  8. 4
      pages/person/person.vue
  9. BIN
      static/image/index/banner.png
  10. BIN
      static/image/product/shop-blue1.png

@ -5,9 +5,9 @@
*/
export default {
baseURL: 'https://huorantech.cn/',
// baseURL: 'https://huorantech.cn/',
// baseURL: 'http://192.168.31.152:9000/',
// baseURL: 'http://121.37.12.51/',
baseURL: 'http://121.37.12.51/',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},

@ -18,7 +18,7 @@
<li v-for="(item, i) in list" :key="i">
<uni-data-checkbox v-if="item.check" class="check" multiple :value="[1]" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox>
<uni-data-checkbox v-else class="check" multiple v-model="item.check" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox>
<image class="icon" :src="$util.getIcon(item)" mode="widthFix"></image>
<image class="icon" :src="$util.getIcon(item)"></image>
{{ item.productName }}
</li>
</ul>
@ -358,7 +358,10 @@
}
.icon {
width: 80rpx;
min-width: 80rpx;
height: 80rpx;
margin: 0 20rpx;
border-radius: 4px;
}
}
/deep/.check {

@ -12,7 +12,7 @@
<view v-if="isDetail" class="val">{{ form.customerName }}</view>
<view v-else class="customer-wrap">
<view :class="['ph', {val: form.customerName}]" @click="customerVisible = true">{{ form.customerName || '请选择客户' }}</view>
<view class="create" @click="toClient">找不到客户马上创建</view>
<!-- <view class="create" @click="toClient">找不到客户马上创建</view> -->
</view>
</view>
<view class="line" v-if="form.customerName">
@ -68,7 +68,7 @@
</view>
<view class="course-action">
<image v-if="!isDetail" class="del" src="@/static/image/trash.png" mode="widthFix" @click.stop="delCourse(c, i)"></image>
<button v-if="(item.authority == 3 || item.authority == 4) && ((item.mallNonAssociatedLinks && item.mallNonAssociatedLinks.length) || item.shipContent)" class="info-btn" type="primary" @click.stop="showShip(item)">发货信息</button>
<button v-if="(item.authority == 3 || item.authority == 4) && (!isDetail || (isDetail && item.shipContent))" class="info-btn" type="primary" @click.stop="showShip(item)">发货信息</button>
</view>
</view>
<view class="info">
@ -134,6 +134,7 @@
<view class="top">请选择客户</view>
<uni-icons class="close" type="closeempty" size="20" @click="closeCustomer"></uni-icons>
<uni-search-bar class="search" radius="5" placeholder="请输入客户名称" v-model="keyword" clearButton="auto" cancelButton="none" />
<view class="create" @click="toClient">找不到客户马上创建</view>
<view class="list">
<view class="item" v-for="item in customerList" @click="customerChange(item)">{{ item.customerName }}</view>
</view>
@ -225,6 +226,7 @@
if (this.orderId) {
this.getInfo()
} else if (store) {
console.log(11, store)
//
const list = []
for (const i in store) {
@ -232,11 +234,11 @@
}
this.courseList = store
this.courses = list
this.$nextTick(() => {
uni.pageScrollTo({
selector: '#products',
})
})
// this.$nextTick(() => {
// uni.pageScrollTo({
// selector: '#products',
// })
// })
try {
uni.removeStorageSync('courses')
@ -301,7 +303,6 @@
e.serviceFee = (e.finalPrice * (this.rate / 100)).toFixed(2) // != 0 &&
courses['list' + e.authority].list.push(e)
})
console.log(123,courses)
this.courseList = courses
}).catch(e => {})
},
@ -525,7 +526,6 @@
},
//
showShip(row) {
console.log(33)
let val = ''
row.mallNonAssociatedLinks && row.mallNonAssociatedLinks.forEach(e => {
val += e.urlName + ':' + e.url + '\n'
@ -632,11 +632,12 @@
.customer-wrap {
text-align: right;
}
.create {
margin-top: 10rpx;
font-size: 20rpx;
color: #f00;
}
}
.create {
padding: 0 20rpx;
font-size: 20rpx;
text-align: right;
color: #f00;
}
.pro-wrap {
position: relative;
@ -668,10 +669,13 @@
padding: 0 16rpx;
margin-left: 10rpx;
font-size: 28rpx;
white-space: nowrap;
}
.left {
display: inline-flex;
align-items: center;
max-width: 480rpx;
margin-right: 10rpx;
}
.del {
width: 40rpx;

@ -49,7 +49,8 @@
<view class="line">
<text class="name">详情介绍</text>
<!-- <view class="val" v-html="form.mall.detailedIntroduction"></view> -->
<mp-html class="val" :content="form.mall.detailedIntroduction"/>
<!-- <mp-html class="val" :content="form.mall.detailedIntroduction"/> -->
<text class="val">{{ form.mall.detailedIntroduction }}</text>
</view>
</view>
</view>
@ -94,7 +95,7 @@
<view class="footer">
<view v-if="auth('产品:购物车')" class="shop" @click="$util.to('../shopCart/shopCart')">
<uni-badge size="small" :text="shopCartTotal" absolute="topRight" type="error">
<image class="icon" src="@/static/image/product/shop.png" mode="widthFix"></image>
<image class="icon" src="@/static/image/product/shop-blue1.png" mode="widthFix"></image>
</uni-badge>
<view>购物车</view>
</view>
@ -163,6 +164,7 @@
detailsOfGoods(this.id).then(res => {
const e = res.orderDetails
e.mall.productIntroduction = this.$util.removeTag(e.mall.productIntroduction)
e.mall.detailedIntroduction = this.$util.removeTag(e.mall.detailedIntroduction)
this.form = e
const pics = this.form.mall.interfaceDiagram
if (pics) {

@ -32,7 +32,7 @@
<ul class="list">
<li v-for="(item, i) in list" :key="i" @click="toDetail(item)">
<view class="pro-name">
<image class="icon" :src="$util.getIcon(item)" mode="widthFix"></image>
<image class="icon" :src="$util.getIcon(item)"></image>
{{ item.productName }}
</view>
<view class="info">
@ -179,7 +179,7 @@
this.form.tagId = +tagId || ''
if (tagId) {
this.filterForm.tagId = [+tagId]
this.tagName = tagsName
// this.tagName = tagsName
}
this.keyword = options.keyword || ''
@ -349,11 +349,13 @@
align-items: center;
padding: 18rpx 0;
font-size: 30rpx;
font-weight: 600;
color: #333;
border-bottom: 1px solid #E6E8ED;
.icon {
width: 52rpx;
height: 52rpx;
width: 58rpx;
min-width: 58rpx;
height: 58rpx;
margin-right: 20rpx;
}
}

@ -294,7 +294,7 @@
"borderStyle": "white",
"backgroundColor": "#ffffff",
"fontSize": "16px",
"iconWidth": "30px",
"iconWidth": "45px",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/image/tab1.png",

@ -1,75 +1,76 @@
<template>
<view :class="['page', {oh: !per}]">
<uni-search-bar class="search" radius="30" placeholder="请输入" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="searchConfirm" />
<view :class="[{oh: !per}]">
<image class="banner" src="@/static/image/index/banner.png" mode="widthFix"></image>
<view class="banner">
<image class="img" src="@/static/image/index/banner.png" mode="widthFix"></image>
</view>
<view class="block" style="margin-top: 0">
<view class="title-wrap">
<view class="title">热门标签</view>
<view class="page">
<view class="search-wrap">
<uni-search-bar class="search" radius="30" placeholder="请输入" v-model="keyword" clearButton="auto" cancelButton="none" @confirm="searchConfirm" />
<view class="all" @click="toProduct">全部产品</view>
</view>
<ul class="tags">
<li v-for="(tag, i) in tags" :key="i" @click="toHot(tag)">
<image class="icon" :src="require('@/static/image/index/' + (i + 1) + '.png')"></image>
<view class="text ell">{{ tag.tagsName }}</view>
</li>
</ul>
</view>
<view class="block" style="margin-top: 0">
<view class="title-wrap">
<view class="title">热门标签</view>
</view>
<view class="block">
<view class="title-wrap">
<view class="title">热销产品</view>
<view class="all" @click="toProduct">全部产品</view>
<ul class="tags">
<li v-for="(tag, i) in tags" :key="i" @click="toHot(tag)">
<image class="icon" :src="require('@/static/image/index/' + (i + 1) + '.png')"></image>
<view class="text ell">{{ tag.tagsName }}</view>
</li>
</ul>
</view>
<view class="list">
<view v-for="(item, i) in hotProducts" :key="i" class="item" @click="toDetail(item)">
<image class="pic" :src="$util.getIcon(item)"></image>
<view class="texts">
<view class="name ell">{{ item.productName }}</view>
<view class="des ell">{{ item.productIntroduction }}</view>
<view class="meta">
<image class="icon" src="@/static/image/index/9.png"></image>
适用专业:
<text class="ell">{{ item.professionalName }}</text>
<view class="block">
<view class="title-wrap">
<view class="title">热销产品</view>
<view class="all" @click="toProduct">全部产品</view>
</view>
<view class="list">
<view v-for="(item, i) in hotProducts" :key="i" class="item" @click="toDetail(item)">
<image class="pic" :src="$util.getIcon(item)"></image>
<view class="texts">
<view class="name ell">{{ item.productName }}</view>
<view class="des ell">{{ item.typeName }}</view>
<view class="meta">{{ item.marketUnitPrice }}/</view>
</view>
</view>
</view>
</view>
</view>
<view class="block" style="margin-top: 40rpx">
<view class="title-wrap">
<view class="title">官方推荐</view>
<view class="all" @click="toProduct">全部产品</view>
</view>
<view class="list">
<view v-for="(item, i) in offcialProducts" :key="i" class="item" @click="toDetail(item)">
<image class="pic" :src="$util.getIcon(item)"></image>
<view class="texts">
<view class="name ell">{{ item.productName }}</view>
<view class="des ell">{{ item.productIntroduction }}</view>
<view class="meta">
<image class="icon" src="@/static/image/index/9.png"></image>
适用专业:
<text class="ell">{{ item.professionalName }}</text>
<view class="block" style="margin-top: 40rpx">
<view class="title-wrap">
<view class="title">官方推荐</view>
<view class="all" @click="toProduct">全部产品</view>
</view>
<view class="list">
<view v-for="(item, i) in offcialProducts" :key="i" class="item" @click="toDetail(item)">
<image class="pic" :src="$util.getIcon(item)"></image>
<view class="texts">
<view class="name ell">{{ item.productName }}</view>
<view class="des ell">{{ item.typeName }}</view>
<view class="meta">{{ item.marketUnitPrice }}/</view>
</view>
</view>
</view>
</view>
</view>
<view v-if="auth('产品:购物车')" class="plus">
<uni-badge size="small" :text="total" absolute="topRight" type="error">
<image class="icon" src="@/static/image/product/shop-blue.png" mode="widthFix" @click="$util.to('../shopCart/shopCart')"></image>
</uni-badge>
</view>
<view v-if="!per" class="per-mask">功能升级中敬请期待...</view>
</view>
</template>
<script>
import { getUserRolesPermissionMenu } from '@/apis/modules/user.js'
import { tagsList, listOfGoods } from '@/apis/modules/product.js'
import { tagsList, listOfGoods, shoppingCartList } from '@/apis/modules/product.js'
import { getTeamsByAccountId } from '@/apis/modules/client.js'
export default {
data() {
@ -81,12 +82,14 @@
tags: [],
hotProducts: [],
offcialProducts: [],
total: 0,
}
},
onShow() {
this.keyword = ''
this.per = true
this.getInfo()
this.getShopCart()
},
methods: {
//
@ -167,6 +170,15 @@
this.tags = res.tagsList.slice(0, 8)
}).catch(e => {})
},
//
getShopCart() {
shoppingCartList({
pageNum: 1,
pageSize: 1000,
}).then(({ data }) => {
this.total = data.total
}).catch(e => {})
},
//
getProducts() {
//
@ -221,43 +233,31 @@
<style scoped lang="scss">
.page {
position: relative;
min-height: 100%;
padding: 10rpx 22rpx;
box-sizing: border-box;
background-color: #fff;
}
.banner {
position: relative;
.img {
width: 100%;
}
.info {
position: absolute;
top: 80rpx;
left: 46rpx;
}
.title {
margin-bottom: 15rpx;
font-size: 36rpx;
font-weight: 600;
color: #001D67;
}
.text {
font-size: 20rpx;
font-family: PingFangSC-Regular, PingFang SC;
color: #001D67;
width: 100%;
}
.search-wrap {
display: flex;
justify-content: space-between;
align-items: center;
.search {
flex: 1;
}
}
.all {
font-size: 24rpx;
color: #666;
}
.block {
margin: 20rpx 0;
.title-wrap {
display: flex;
justify-content: space-between;
margin-bottom: 34rpx;
.all {
font-size: 24rpx;
color: #666;
}
}
.title {
display: inline-flex;
@ -289,7 +289,7 @@
margin-bottom: 18rpx;
}
.text {
width: 110rpx;
width: 165rpx;
margin: 0 auto;
font-size: 24rpx;
color: #333;
@ -298,12 +298,14 @@
.list {
.item {
display: flex;
align-items: center;
margin-bottom: 28rpx;
}
.pic {
width: 136rpx;
height: 136rpx;
width: 120rpx;
height: 120rpx;
margin-right: 20rpx;
border-radius: 8px;
}
.texts {
width: calc(100% - 156rpx);
@ -314,7 +316,7 @@
color: #333;
}
.des {
margin: 17rpx 0;
margin: 10rpx 0;
font-size: 24rpx;
color: #666;
}
@ -333,4 +335,11 @@
}
}
}
.plus {
bottom: 140rpx;
right: 60rpx;
.icon {
width: 80rpx;
}
}
</style>

@ -293,8 +293,8 @@
align-items: center;
}
.icon {
width: 48rpx;
height: 48rpx;
width: 40rpx;
height: 40rpx;
margin-right: 16rpx;
}
text {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Loading…
Cancel
Save