This commit is contained in:
许允枞 2025-02-21 15:03:52 +08:00
parent 0a3ba92c0d
commit 2ba476888d
17 changed files with 1382 additions and 842 deletions

View File

@ -134,6 +134,20 @@
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{
"path": "pages/index/orderStatistics",
"style": {
"navigationBarTitleText": "当日订单统计",
"navigationStyle": "custom"
}
},
{
"path": "pages/index/countEmployees",
"style": {
"navigationBarTitleText": "员工",
"navigationStyle": "custom"
}
},
{ {
"path": "pages/index/addStaff", "path": "pages/index/addStaff",
"style": { "style": {

View File

@ -2,21 +2,25 @@
<template> <template>
<view class="content"> <view class="content">
<view class="c-top"> <!-- <view class="c-top">-->
<view class="" @click="getback"> <!-- <view class="" @click="getback">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="c-title">发布</view> <!-- <view class="c-title">发布</view>-->
<view class="" style="width: 5%; height: 10px;"></view> <!-- <view class="" style="width: 5%; height: 10px;"></view>-->
</view> <!-- </view>-->
<headersVue titles="发布" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="cont"> <view class="cont">
<view class="bjimg" v-if="shoplist == ''"> <view class="bjimg" v-if="shoplist == ''">
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image> <image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view> </view>
<view class="rbox" v-for="(item,index) in shoplist " :key="index" @click="goshop(item.id)"> <view class="rbox" v-for="(item,index) in shoplist " :key="index" @click="goshop(item.id)">
<view class="rb-top"> <view class="rb-top">
<view class="rb-title"> <view class="rb-title">
<view class="rb-biao"> <view class="rb-biao">
@ -40,10 +44,10 @@
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
@ -51,8 +55,10 @@
<script> <script>
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
import headersVue from "@/components/header/headers.vue";
export default{ export default{
components: {headersVue},
data(){ data(){
return{ return{
msg:'2', msg:'2',
@ -78,20 +84,20 @@
totalPages: 0,// totalPages: 0,//
} }
}, },
onLoad(){ onLoad(){
this.partnerId = uni.getStorageSync('partnerId') this.partnerId = uni.getStorageSync('partnerId')
}, },
onShow() { onShow() {
this.getlistindex() this.getlistindex()
this.imgs = this.$baseUrl this.imgs = this.$baseUrl
}, },
methods:{ methods:{
getdetails(id){ getdetails(id){
uni.navigateTo({ uni.navigateTo({
@ -106,7 +112,7 @@
getback(){ getback(){
uni.navigateBack({ uni.navigateBack({
delta:1, delta:1,
}) })
}, },
async getlistindex(){ async getlistindex(){
let res = await request({ let res = await request({
@ -114,25 +120,32 @@
method: 'get', method: 'get',
data: { data: {
partnerId:this.partnerId, partnerId:this.partnerId,
} }
}) })
this.shoplist = res.data this.shoplist = res.data
}, },
}, },
beforeDestroy() { beforeDestroy() {
clearInterval(this.interval); clearInterval(this.interval);
}, },
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.search_box{
box-sizing: border-box;
padding: 0 20rpx;
border-bottom: 2rpx solid #F5F5F5;
margin-top: 130rpx;
}
.content{ .content{
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
@ -210,10 +223,10 @@
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 15px;
box-sizing: border-box; box-sizing: border-box;
background-color: #F6F6F6; background-color: #F6F6F6;
} }
.hongdian{ .hongdian{
width: 15px; width: 15px;
@ -251,7 +264,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.t-right{ .t-right{
width: 60%; width: 60%;
@ -260,7 +273,7 @@
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -271,10 +284,10 @@
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
color: #5e5e5e; color: #5e5e5e;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.t-zi{ .t-zi{
font-size: 14px; font-size: 14px;
@ -282,7 +295,7 @@
color: #666666; color: #666666;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 3; -webkit-line-clamp: 3;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
@ -364,7 +377,7 @@
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 10px; padding-bottom: 10px;
@ -410,4 +423,4 @@
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
} }
</style> </style>

View File

@ -1,17 +1,25 @@
<!-- --> <!-- -->
<template> <template>
<view class="content"> <view class="content">
<view style="width: 100%; height: 44px;"></view> <!-- <view style="width: 100%; height: 44px;"></view>-->
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getfan()"> <!-- <view class="t-left" @click="getfan()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-input"> <!-- <view class="t-input">-->
<uni-icons type="search" color="#BCBCBC" size="22"></uni-icons> <!-- <uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>-->
<input type="text" v-model="goodsTitle" placeholder="优惠券"> <!-- <input type="text" v-model="goodsTitle" placeholder="优惠券">-->
</view> <!-- </view>-->
<view class="sou" @click="getindex()">搜索</view> <!-- <view class="sou" @click="getindex()">搜索</view>-->
</view> <!-- </view>-->
<headersVue titles="优惠券" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="search_box">
<u-search placeholder="优惠券" @clear="getindex()" @search="getindex()" :showAction="false" v-model="goodsTitle" searchIconColor="#427FFE"></u-search>
</view>
<!-- <view class="top-tap"> <!-- <view class="top-tap">
<view class="tap-box" v-for="(item,index) in taplist" :key="index" @click="gettapindex(index,item.id)"> <view class="tap-box" v-for="(item,index) in taplist" :key="index" @click="gettapindex(index,item.id)">
<text :class="{'lan':isListing == item.id}">{{item.Text}}</text> <text :class="{'lan':isListing == item.id}">{{item.Text}}</text>
@ -55,7 +63,9 @@
<script> <script>
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
import headersVue from "@/components/header/headers.vue";
export default { export default {
components: {headersVue},
data() { data() {
return { return {
msg:'3', msg:'3',
@ -164,6 +174,13 @@
background: white; background: white;
} }
.search_box{
box-sizing: border-box;
padding: 0 20rpx;
border-bottom: 2rpx solid #F5F5F5;
margin: 30rpx 0;
}
.top-heder{ .top-heder{
width: 100%; width: 100%;
height: 46px; height: 46px;
@ -192,7 +209,7 @@
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 15px;
background-color: #F4F4F4; background-color: white;
} }
.sou{ .sou{
@ -200,7 +217,7 @@
margin-left: 5px; margin-left: 5px;
} }
.mub{ .mub{
background-color: #F4F4F4; background-color: white;
height: calc(100vh); height: calc(100vh);
} }
.dix{ .dix{
@ -249,7 +266,7 @@
.a-box{ .a-box{
width: 100%; width: 100%;
border-radius: 8px; border-radius: 8px;
background-color: white; background-color: #F7F8FC;
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 15px;
margin-bottom: 10px; margin-bottom: 10px;
@ -324,6 +341,7 @@
width: 100%; width: 100%;
margin-top: 20px; margin-top: 20px;
text-align: center; text-align: center;
color: #0D2E8D !important; background: white;
color: white !important;
} }
</style> </style>

View File

@ -1,16 +1,19 @@
<!-- 新增--> <!-- 新增-->
<template> <template>
<view class="content"> <view class="content">
<view style="width: 100%; height: 44px;"></view> <!-- <view style="width: 100%; height: 44px;"></view>-->
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getback()"> <!-- <view class="t-left" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-title"> <!-- <view class="t-title">-->
<text>添加优惠券</text> <!-- <text>添加优惠券</text>-->
</view> <!-- </view>-->
<view class="t-you"></view> <!-- <view class="t-you"></view>-->
</view> <!-- </view>-->
<headersVue titles="添加优惠券" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="mub"> <view class="mub">
<view class="top-ail"> <view class="top-ail">
@ -144,7 +147,9 @@
import request from '../../utils/request'; import request from '../../utils/request';
import upload from '@/utils/upload.js' import upload from '@/utils/upload.js'
import code from '../../uni_modules/uview-ui/libs/config/props/code'; import code from '../../uni_modules/uview-ui/libs/config/props/code';
import headersVue from "@/components/header/headers.vue";
export default { export default {
components: {headersVue},
data() { data() {
return { return {
baseUrl:this.$baseUrl, baseUrl:this.$baseUrl,
@ -539,7 +544,7 @@ import code from '../../uni_modules/uview-ui/libs/config/props/code';
.dlanniu{ .dlanniu{
width: 80%; width: 80%;
height: 45px; height: 45px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%); background: linear-gradient(180deg, #327DFB 0%, #327DFB 100%);
border-radius: 50px; border-radius: 50px;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -1,16 +1,19 @@
<!-- 新增线下订单--> <!-- 新增线下订单-->
<template> <template>
<view class="content"> <view class="content">
<view style="width: 100%; height: 44px;"></view> <!-- <view style="width: 100%; height: 44px;"></view>-->
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getback()"> <!-- <view class="t-left" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-title"> <!-- <view class="t-title">-->
<text>{{ title }}</text> <!-- <text>{{ title }}</text>-->
</view> <!-- </view>-->
<view class="t-you"></view> <!-- <view class="t-you"></view>-->
</view> <!-- </view>-->
<headersVue :titles="title" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="mub"> <view class="mub">
<view class="top-ail"> <view class="top-ail">
@ -231,8 +234,10 @@ import request from '../../utils/request';
import upload from '@/utils/upload.js' import upload from '@/utils/upload.js'
import {getToken, getTenantId} from '@/utils/auth' import {getToken, getTenantId} from '@/utils/auth'
import {formatDate} from "@/utils/utils"; import {formatDate} from "@/utils/utils";
import headersVue from "@/components/header/headers.vue";
export default { export default {
components: {headersVue},
data() { data() {
return { return {
imagePath: '', imagePath: '',
@ -1036,7 +1041,7 @@ export default {
.dlanniu { .dlanniu {
width: 80%; width: 80%;
height: 45px; height: 45px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%); background: linear-gradient(180deg, #327DFB 0%, #327DFB 100%);
border-radius: 50px; border-radius: 50px;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -1,12 +1,16 @@
<template> <template>
<view class="content"> <view class="content">
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="handleBack"> <!-- <view class="t-left" @click="handleBack">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="c-title">个人信息</view> <!-- <view class="c-title">个人信息</view>-->
<view style="width: 5%; height: 10px;"></view> <!-- <view style="width: 5%; height: 10px;"></view>-->
</view> <!-- </view>-->
<headersVue titles="个人信息" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="body"> <view class="body">
<view class="formItem"> <view class="formItem">
@ -62,8 +66,10 @@
import {getStorageWithExpiry, setStorageWithExpiry} from "../../utils/auth"; import {getStorageWithExpiry, setStorageWithExpiry} from "../../utils/auth";
import request from '../../utils/request'; import request from '../../utils/request';
import config from '@/config' import config from '@/config'
import headersVue from "@/components/header/headers.vue";
export default { export default {
name: "UserInfo", name: "UserInfo",
components: {headersVue},
data(){ data(){
return{ return{
customInfo: {}, customInfo: {},

View File

@ -0,0 +1,180 @@
<template>
<view class="">
<headersVue :titles="titles"><u-icon name="arrow-left" color="#fff" size="18"></u-icon></headersVue>
<view class="content">
<view class="top_">请选择工作内容 <u-icon style="margin-left: 10px;" name="arrow-down" size="18"></u-icon> </view>
<view class="list_">
<view class="list_title">
<view class="list_ds">
<view class="" style="margin-right: 50px;">排名</view>
<view class="">员工</view>
</view>
<view class="">服务台次</view>
</view>
<view class="list_box" v-for="(item,index) in 10" :key="index">
<view class="list_box_top">
<view class="pm_"> {{index + 1}} </view>
<view class="list_ds">
<view class="tx_">
<image src="/static/img/touxiang.png" mode=""></image>
</view>
<view class="">
<view class="">王一</view>
<view class="num_hui">13812345678</view>
</view>
</view>
<view class=""> 5000 </view>
</view>
<view class="list_box_bottom">
<view class="list_ds">
<view class="text_">外检</view>
<view class="num_">200</view>
</view>
<view class="list_ds">
<view class="text_">安检</view>
<view class="num_">200</view>
</view>
<view class="list_ds">
<view class="text_">其他</view>
<view class="num_">200</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import headersVue from '../../components/header/headers.vue';
export default {
data() {
return {
titles: "员工统计",
msg: "1",
List: [],
show: false,
status: 'loading',
}
},
components: {
headersVue
},
methods: {
goManage(num) {
if (num == 1) {
uni.navigateTo({
url: '/pages/index/staffManagement'
})
}
if (num == 2) {
uni.navigateTo({
url: '/pages/index/deviceManage'
})
}
},
}
}
</script>
<style scoped lang="scss">
.content {
background: #F7F8FC;
width: 100%;
// height: 100vh;
box-sizing: border-box;
// padding: 30rpx;
padding-top: 200rpx;
}
.top_ {
width: 100%;
height: 104rpx;
background: #FFFFFF;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 30rpx;
}
.list_ {
width: 100%;
box-sizing: border-box;
padding: 30rpx;
}
.list_title {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
color: #101A3E;
box-sizing: border-box;
padding: 0rpx 30rpx;
margin-bottom: 20rpx;
}
.list_ds {
display: flex;
align-items: center;
}
.list_box {
width: 100%;
// height: 230rpx;
background: #FFFFFF;
border-radius: 8rpx;
margin-bottom: 30rpx;
}
.list_box_top {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 30rpx 50rpx;
border-bottom: 2rpx solid #F5F5F5;
}
.list_box_bottom{
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 50rpx;
}
.tx_{
width: 90rpx;
height: 90rpx;
margin-right: 5px;
image{
width: 100%;
height: 100%;
}
}
.num_hui{
font-size: 24rpx;
color: #8D90A6;
}
.text_{
font-size: 28rpx;
color: #8D90A6;
}
.num_{
font-size: 28rpx;
color: #101A3E;
}
.pm_{
width: 40rpx;
height: 40rpx;
background: #327DFB;
overflow: hidden;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 28rpx;
}
</style>

View File

@ -0,0 +1,155 @@
<template>
<view class="content">
<headersVue :titles="titles"><u-icon name="arrow-left" color="#fff" size="18"></u-icon></headersVue>
<view class="top_">
<view class="list_ds">
<view class="pm_">排名</view>
<view class="cx_">车型</view>
</view>
<view class="list_ds">
<view class="pm_">销量</view>
<view class="">营业额</view>
</view>
</view>
<view class="top_" v-for="(item,index) in ping" :key="index">
<view class="list_ds">
<view class="pm_" v-if="index != 0 && index != 2 && index != 1">{{index + 1}}</view>
<view class="v-icon" v-if="index == 0">
<image src="../../static/detection/dy.png" mode=""></image>
</view>
<view class="v-icon" v-if="index == 1">
<image src="../../static/detection/dr.png" mode=""></image>
</view>
<view class="v-icon" v-if="index == 2">
<image src="../../static/detection/ds.png" mode=""></image>
</view>
<view class="cx_">{{item.goodsName}}</view>
</view>
<view class="list_ds">
<view class="xl_">{{ item.salesAmount }}</view>
<view class="e_">{{ item.salesNum }}</view>
</view>
</view>
</view>
</template>
<script>
import headersVue from '../../components/header/headers.vue';
import request from "@/utils/request";
export default {
data() {
return {
titles: "当日订单统计",
user: {},
ping: [],
show: false,
status: 'loading',
}
},
components: {
headersVue
},
onLoad() {
this.getindex()
},
methods: {
//
async getindex() {
//
let res = await request({
url: '/partnerOwn/partner/shopInfo',
method: 'get',
})
this.user = res.data
this.partnerId = res.data.partnerId
uni.setStorageSync('partnerId', res.data.partnerId)
if (res.data.isWorking == "0") {
this.isWorking = false
}
if (res.data.isWorking == "1") {
this.isWorking = true
}
//
let reszj = await request({
url: '/partnerOwn/partner/statisticsInfo?partnerId=' + this.partnerId,
method: 'get',
})
let nums = {
orderAmount: reszj.data.orderAmount / 100,
orderNum: reszj.data.orderNum,
todayOrderAmount: reszj.data.todayOrderAmount / 100,
todayOrderNum: reszj.data.todayOrderNum,
workedNum: reszj.data.workedNum,
workingNum: reszj.data.workingNum,
srlNum: reszj.data.srlNum,
hgNum: reszj.data.hgNum,
}
this.threenum = nums
//
let resrx = await request({
url: '/partnerOwn/partner/hotGoodsList?partnerId=' + this.partnerId,
method: 'get',
})
this.ping = resrx.data
// this.getswitch()
},
}
}
</script>
<style scoped lang="scss">
.content {
width: 100%;
// height: 100vh;
box-sizing: border-box;
// padding: 30rpx;
padding-top: 200rpx;
font-size: 28rpx;
color: #101A3E;
}
.top_{
width: 100%;
height: 100rpx;
background: #fff;
display: flex;
align-items: center;
box-sizing: border-box;
justify-content: space-between;
padding: 30rpx 40rpx;
}
.pm_{
margin-right: 80rpx;
text-align: center;
width: 60rpx;
}
.list_ds {
display: flex;
align-items: center;
}
.e_{
width: 140rpx;
}
.xl_{
width: 60rpx;
}
.cx_{
width: 250rpx;
}
.v-icon {
width: 30px;
height: 30px;
margin-right: 43px;
image {
width: 100%;
height: 100%;
}
}
</style>

View File

@ -212,7 +212,7 @@ export default {
.search_box{ .search_box{
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 20rpx; padding: 0 20rpx;
border-bottom: 2rpx solid #F5F5F5; border-bottom: 2rpx solid #F5F5F5;
margin-top: 130rpx; margin-top: 130rpx;
} }
@ -263,7 +263,7 @@ export default {
.top-ail { .top-ail {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 15px; padding: 0 15px;
//background-color: #F4F4F4; //background-color: #F4F4F4;
background: white; background: white;
@ -314,7 +314,7 @@ export default {
.m-box { .m-box {
position: relative; position: relative;
background: #F4F4F4; background: #F7F8FC;
border-radius: 8px; border-radius: 8px;
box-sizing: border-box; box-sizing: border-box;
padding: 15px 10px; padding: 15px 10px;

View File

@ -11,10 +11,9 @@
<view class="box_list" v-for="(item, index) in tabList"> <view class="box_list" v-for="(item, index) in tabList">
<view class="" @click="gettap(item)"> <view class="" @click="gettap(item)">
<image :src=iconArr[index] mode=""></image> <image :src=iconArr[index] mode=""></image>
<view class="name_">{{ item.label }}</view> <view class="name_">{{ item.categoryName }}</view>
<view class="">100</view> <view class="">{{ item.count }}</view>
</view> </view>
</view> </view>
</view> </view>
@ -25,6 +24,7 @@
<script> <script>
import headersVue from '../../components/header/headers.vue'; import headersVue from '../../components/header/headers.vue';
import {getDictDataByType} from "@/utils/utils"; import {getDictDataByType} from "@/utils/utils";
import request from "@/utils/request";
export default { export default {
data() { data() {
@ -41,18 +41,27 @@ export default {
headersVue headersVue
}, },
onLoad() { onLoad() {
this.getTab() // this.getTab()
this.getCount()
}, },
methods: { methods: {
gettap(value) { gettap(value) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/manage/informationManage?value=${value.value}` url: `/pages/manage/informationManage?value=${value.categoryId}`
}) })
}, },
async getTab() { async getTab() {
const data = await getDictDataByType("ins_equ_type"); const data = await getDictDataByType("ins_equ_type");
this.tabList = [...this.tabList, ...data]; this.tabList = [...this.tabList, ...data];
console.log(this.tabList) },
getCount() {
const data = request({
url: '/system/equInfo/queryEquipmentCountByCategory',
method: 'get'
});
this.tabList = data.then(res => {
this.tabList = res.data
})
}, },
}, },
} }
@ -73,6 +82,7 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
margin-top: 40rpx;
} }
.box_list { .box_list {

View File

@ -1,13 +1,16 @@
<!-- 发起订单 --> <!-- 发起订单 -->
<template> <template>
<view class="content"> <view class="content">
<view class="c-top"> <!-- <view class="c-top">-->
<view class="" @click="getback()"> <!-- <view class="" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="c-title">新增文件</view> <!-- <view class="c-title">新增文件</view>-->
<view class=""></view> <!-- <view class=""></view>-->
</view> <!-- </view>-->
<headersVue titles="新增文件" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="dil"> <view class="dil">
<view class="tinput" v-if="maneizhi=='2'"> <view class="tinput" v-if="maneizhi=='2'">
<view class="text1"> <text class="hong1">*</text> 文件路径</view> <view class="text1"> <text class="hong1">*</text> 文件路径</view>
@ -86,8 +89,10 @@
import config from '@/config' import config from '@/config'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import upload from '@/utils/upload.js' import upload from '@/utils/upload.js'
import headersVue from "@/components/header/headers.vue";
var wvCurrent; var wvCurrent;
export default{ export default{
components: {headersVue},
data(){ data(){
return{ return{
time:'请选择提醒时间', time:'请选择提醒时间',
@ -449,7 +454,7 @@
} }
.anniu{ .anniu{
width: 100%; width: 100%;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%); background: linear-gradient(180deg, #327DFB 0%, #327DFB 100%);
border-radius: 50px ; border-radius: 50px ;
height: 40px; height: 40px;
display: flex; display: flex;

View File

@ -5,13 +5,16 @@
<u-loading-page :loading="isLoading"></u-loading-page> <u-loading-page :loading="isLoading"></u-loading-page>
<view class="top-heder"> <view class="top-heder">
<view class="t-left" @click="getback()"> <view class="t-left" @click="getback()">
<uni-icons type="left" size="18"></uni-icons> <uni-icons type="left" size="18" color="white"></uni-icons>
</view> </view>
<view class="t-title"> <view class="t-title">
<text>资料管理</text> <text>资料管理</text>
</view> </view>
<view class="t-you"></view> <view class="t-you"></view>
</view> </view>
<!-- <headersVue titles="资料管理" style="position: static !important;">-->
<!-- <u-icon name="arrow-left" color="#fff" size="18"></u-icon>-->
<!-- </headersVue>-->
<view class="searchContent"> <view class="searchContent">
<view class="t-input"> <view class="t-input">
@ -96,8 +99,10 @@
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
import {formatDate} from "@/utils/utils"; import {formatDate} from "@/utils/utils";
import headersVue from "@/components/header/headers.vue";
export default { export default {
components: {headersVue},
data() { data() {
return { return {
arrlist: [], arrlist: [],
@ -297,7 +302,7 @@ export default {
.content { .content {
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background-color: #F6F6F6; background-color: white;
box-sizing: border-box; box-sizing: border-box;
// padding-top: 45px; // padding-top: 45px;
} }
@ -377,7 +382,7 @@ export default {
padding: 15px; padding: 15px;
padding-top: 0px; padding-top: 0px;
box-sizing: border-box; box-sizing: border-box;
background-color: #F6F6F6; background-color: white;
} }
@ -397,10 +402,11 @@ export default {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
background-color: white; background-color: #327DFB;
margin-top: 10px; margin-top: 10px;
border-radius: 10px; border-radius: 10px;
display: flex; display: flex;
color: white;
align-items: flex-start; align-items: flex-start;
font-size: 18px; font-size: 18px;
@ -549,20 +555,22 @@ export default {
.top-heder { .top-heder {
width: 100%; width: 100%;
height: 68px; height: 98px;
background: white; //background: white;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
box-sizing: border-box; box-sizing: border-box;
padding: 5px 15px; padding: 5px 15px;
margin-top: 2rem; color: white;
//margin-top: 2rem;
background: linear-gradient( 180deg, #054DF3 0%, #55A3FF 100%);
} }
.t-title { .t-title {
font-size: 17px; font-size: 17px;
font-weight: bold; font-weight: bold;
color: #333333; color: white;
} }
.t-left { .t-left {
@ -585,7 +593,7 @@ export default {
.w-box { .w-box {
width: 48%; width: 48%;
background-color: white; background-color: #F7F8FC;
margin-top: 10px; margin-top: 10px;
border-radius: 10px; border-radius: 10px;
box-sizing: border-box; box-sizing: border-box;

View File

@ -1,14 +1,17 @@
<!-- 发起订单 --> <!-- 发起订单 -->
<template> <template>
<view class="content"> <view class="content">
<view class="c-top"> <!-- <view class="c-top">-->
<view class="" @click="getback()"> <!-- <view class="" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="c-title" v-if="type == 'add'">新增设备</view> <!-- <view class="c-title" v-if="type == 'add'">新增设备</view>-->
<view class="c-title" v-if="type == 'edit'">编辑设备</view> <!-- <view class="c-title" v-if="type == 'edit'">编辑设备</view>-->
<view class=""></view> <!-- <view class=""></view>-->
</view> <!-- </view>-->
<headersVue :titles="pageName" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="dil"> <view class="dil">
<view class="tinput"> <view class="tinput">
@ -135,9 +138,11 @@ import config from '@/config'
import {getToken} from '@/utils/auth' import {getToken} from '@/utils/auth'
import upload from '@/utils/upload.js' import upload from '@/utils/upload.js'
import {getDictDataByType} from "../../utils/utils"; import {getDictDataByType} from "../../utils/utils";
import headersVue from "@/components/header/headers.vue";
var wvCurrent; var wvCurrent;
export default { export default {
components: {headersVue},
data() { data() {
return { return {
@ -156,6 +161,7 @@ export default {
typeName: null, typeName: null,
// //
fileList3: [], fileList3: [],
pageName:'新增设备',
baseImageUrl: config.baseImageUrl, baseImageUrl: config.baseImageUrl,
} }
}, },
@ -163,6 +169,7 @@ export default {
this.type = option.type this.type = option.type
if (option.type == 'edit') { if (option.type == 'edit') {
this.box.id = option.id this.box.id = option.id
this.pageName = '编辑设备'
} }
this.getInsType() this.getInsType()
}, },
@ -546,13 +553,14 @@ export default {
.anniu { .anniu {
width: 100%; width: 100%;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%); //background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%);
background: #327dfb;
border-radius: 50px; border-radius: 50px;
height: 40px; height: 40px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
color: #542F0E; //color: #542F0E;
margin-top: 20px; margin-top: 20px;
color: white; color: white;

View File

@ -2,28 +2,36 @@
<template> <template>
<view class="content"> <view class="content">
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getback()"> <!-- <view class="t-left" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-title"> <!-- <view class="t-title">-->
<text>设备管理</text> <!-- <text>设备管理</text>-->
</view> <!-- </view>-->
<view class="t-you"></view> <!-- <view class="t-you"></view>-->
</view> <!-- </view>-->
<view class="searchContent"> <headersVue titles="设备管理">
<view class="t-input"> <u-icon name="arrow-left" color="#fff" size="18"></u-icon>
<uni-icons type="search" color="#BCBCBC" size="22"></uni-icons> </headersVue>
<input type="text" v-model="equName" placeholder="请输入设备名称.....">
</view> <view class="search_box">
<view class="sou" @click="getlistindex()">搜索</view> <u-search placeholder="请输入设备名称....." @clear="getlistindex()" @search="getlistindex()" :showAction="false" v-model="equName" searchIconColor="#427FFE"></u-search>
</view> </view>
<!-- <view class="searchContent">-->
<!-- <view class="t-input">-->
<!-- <uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>-->
<!-- <input type="text" v-model="equName" placeholder="请输入设备名称.....">-->
<!-- </view>-->
<!-- <view class="sou" @click="getlistindex()">搜索</view>-->
<!-- </view>-->
<view class="cont"> <view class="cont">
<view @click="goadd('add')" <view @click="goadd('add')"
style="width: 100%; display: flex; justify-content: center;background:white; margin: 10px 0px; box-sizing: border-box; padding: 10px;font-weight: bold;border-radius: 8px;"> style="width: 100%; display: flex;color: white;background: #327dfb; justify-content: center; margin: 10px 0px; box-sizing: border-box; padding: 10px;font-weight: bold;border-radius: 8px;">
<text> + 新增设备</text> <text> + 新增设备</text>
</view> </view>
<view class="box-bottom"> <view class="box-bottom">
@ -212,7 +220,7 @@ export default {
.content { .content {
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background-color: #F6F6F6; background-color: white;
box-sizing: border-box; box-sizing: border-box;
// padding-top: 45px; // padding-top: 45px;
} }
@ -292,7 +300,7 @@ export default {
padding: 15px; padding: 15px;
padding-top: 0px; padding-top: 0px;
box-sizing: border-box; box-sizing: border-box;
background-color: #F6F6F6; background-color: white;
} }
@ -312,7 +320,7 @@ export default {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
background-color: white; background-color: #F7F8FC;
margin-top: 10px; margin-top: 10px;
border-radius: 10px; border-radius: 10px;
@ -548,7 +556,7 @@ export default {
.gang { .gang {
height: 4px; height: 4px;
background: #0D2E8D; background: #327DFB;
width: 80%; width: 80%;
margin: 0px auto; margin: 0px auto;
} }
@ -556,4 +564,12 @@ export default {
.lan { .lan {
color: #0D2E8D; color: #0D2E8D;
} }
.search_box{
box-sizing: border-box;
padding: 0 20rpx;
border-bottom: 2rpx solid #F5F5F5;
margin-top: 230rpx;
}
</style> </style>

View File

@ -1,14 +1,17 @@
<template> <template>
<view class="content"> <view class="content">
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getback()"> <!-- <view class="t-left" @click="getback()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-title"> <!-- <view class="t-title">-->
<text>订单核销</text> <!-- <text>订单核销</text>-->
</view> <!-- </view>-->
<view class="t-you"></view> <!-- <view class="t-you"></view>-->
</view> <!-- </view>-->
<headersVue titles="订单核销" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="tab-box"> <view class="tab-box">
<view :class="{ 'lan' : tindex == index}" class="tabb" v-for="(item,index) in list" :key="index" @click="ting(index)"> <view :class="{ 'lan' : tindex == index}" class="tabb" v-for="(item,index) in list" :key="index" @click="ting(index)">
{{item}} {{item}}
@ -30,7 +33,7 @@
<view class="contrnt-box " style="height: 100%;" v-if="current == 0"> <view class="contrnt-box " style="height: 100%;" v-if="current == 0">
<view class="scanBox"> <view class="scanBox">
<u-icon name="scan" color="#0D2E8D" size="300rpx" @click="validation"></u-icon> <u-icon name="scan" color="#327DFB" size="300rpx" @click="validation"></u-icon>
</view> </view>
<view class="input-box"> <view class="input-box">
<view class="sR-input"> <view class="sR-input">
@ -38,7 +41,7 @@
fontSize="30rpx" color="#000" type="number" maxlength="16"></u--input> fontSize="30rpx" color="#000" type="number" maxlength="16"></u--input>
</view> </view>
<u-button color="#0D2E8D" <u-button color="#327DFB"
:customStyle="{color:'#ffffff'}" shape="circle" text="立即核销" throttleTime="1500" :customStyle="{color:'#ffffff'}" shape="circle" text="立即核销" throttleTime="1500"
@click="validation(accessCode)" :disabled="accessCode.length != 16"></u-button> @click="validation(accessCode)" :disabled="accessCode.length != 16"></u-button>
</view> </view>
@ -75,7 +78,9 @@
<script> <script>
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
import headersVue from "@/components/header/headers.vue";
export default { export default {
components: {headersVue},
data() { data() {
return { return {
tindex:0, tindex:0,
@ -182,7 +187,7 @@
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background: white; background: white;
padding-top: 45px; //padding-top: 45px;
} }
.tab-box{ .tab-box{
width: 100%; width: 100%;
@ -238,7 +243,7 @@
align-items: center; align-items: center;
} }
.contrnt-box{ .contrnt-box{
background-color: #F4F4F4; background-color: white;
box-sizing: border-box; box-sizing: border-box;
padding-top: 50px; padding-top: 50px;
} }

View File

@ -1,336 +1,380 @@
<!-- --> <!-- -->
<template> <template>
<view class="content"> <view class="content">
<view style="width: 100%; height: 44px;"></view> <!-- <view style="width: 100%; height: 44px;"></view>-->
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getfan()"> <!-- <view class="t-left" @click="getfan()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-input"> <!-- <view class="t-input">-->
<uni-icons type="search" color="#BCBCBC" size="22"></uni-icons> <!-- <uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>-->
<input type="text" v-model="searchValue" placeholder="请输入手机号/核销人"> <!-- <input type="text" v-model="searchValue" placeholder="请输入手机号/核销人">-->
</view> <!-- </view>-->
<view class="sou" @click="getindex()">搜索</view> <!-- <view class="sou" @click="getindex()">搜索</view>-->
</view> <!-- </view>-->
<view class="mub"> <headersVue titles="核销记录" style="position: static !important;">
<view class="top-ail"> <u-icon name="arrow-left" color="#fff" size="18"></u-icon>
<view class="jsy" v-if="goodsList.length == 0"> </headersVue>
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="a-box" v-for="(item,index) in goodsList" :key="index">
<view class="t-box">
<view class="s-right"> <view class="search_box">
<view class="s-title">{{item.goodsTitle}}</view> <u-search placeholder="请输入手机号/核销人" @clear="getindex()" @search="getindex()" :showAction="false"
<view class="s-hui">订单号{{item.orderNo}}</view> v-model="searchValue" searchIconColor="#427FFE"></u-search>
</view>
<view class="s-hui">客户{{item.realName}}</view> <view class="mub">
<view class="s-hui">手机号{{item.phonenumber}}</view> <view class="top-ail">
<view class="s-hui">核销人{{item.validationRealName}}</view> <view class="jsy" v-if="goodsList.length == 0">
<view class="s-hui">核销人手机号{{item.phonenumber}}</view> <image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="a-box" v-for="(item,index) in goodsList" :key="index">
<view class="t-box">
<view class="s-hui">{{item.validationTime}}</view> <view class="s-right">
<view class="s-ju"> <view class="s-title">{{ item.goodsTitle }}</view>
<text>{{(item.payMoney + item.balance)/100}}</text> <view class="s-hui">订单号{{ item.orderNo }}</view>
</view>
<view class="s-hui">客户{{ item.realName }}</view>
<view class="s-hui">手机号{{ item.phonenumber }}</view>
<view class="s-hui">核销人{{ item.validationRealName }}</view>
<view class="s-hui">核销人手机号{{ item.phonenumber }}</view>
<view class="s-hui">{{ item.validationTime }}</view>
<view class="s-ju">
<text>{{ (item.payMoney + item.balance) / 100 }}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 底部 -->
</view> </view>
</view>
</view>
</view>
</view>
<!-- 底部 -->
</view>
</template> </template>
<script> <script>
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
export default { import headersVue from "@/components/header/headers.vue";
data() {
return {
msg:'3',
goodsList:[],
baseUrl:"http://192.168.1.4:8080/lanan",
partnerId:'',
isListing:1,
searchValue:'',
goodsTitle:"",
taplist:[
{Text:'已发布',id:1},
{Text:'待上架',id:0},
],
pageNum: 1,//
pageSize: 20,//
totalPages: 0,//
}
},
onLoad() {
}, export default {
onPullDownRefresh() { components: {headersVue},
uni.showLoading() data() {
setTimeout(() => { return {
uni.hideLoading() msg: '3',
uni.stopPullDownRefresh() goodsList: [],
}, 500) baseUrl: "http://192.168.1.4:8080/lanan",
}, partnerId: '',
onReachBottom() { isListing: 1,
if (this.pageNum >= this.totalPages) { searchValue: '',
uni.showToast({ goodsTitle: "",
title: '没有下一页数据', taplist: [
icon: 'none' {Text: '已发布', id: 1},
}) {Text: '待上架', id: 0},
],
pageNum: 1,//
pageSize: 20,//
totalPages: 0,//
}
},
onLoad() {
} else { },
this.pageNum++ onPullDownRefresh() {
this.getindex() uni.showLoading()
} setTimeout(() => {
}, uni.hideLoading()
onShow() { uni.stopPullDownRefresh()
// this.baseUrl = this.$baseUrl }, 500)
this.partnerId = uni.getStorageSync('partnerId') },
this.getindex() onReachBottom() {
}, if (this.pageNum >= this.totalPages) {
methods: { uni.showToast({
async getindex(){ title: '没有下一页数据',
// icon: 'none'
let data = { })
partnerId:this.partnerId,
searchValue:this.searchValue,
pageSize:this.pageSize,
pageNum:this.pageNum
}
let res = await request({
url:'/partnerOwn/partner/validationList', } else {
method: 'get', this.pageNum++
params: data this.getindex()
}) }
if(res.code == 200){ },
this.goodsList = res.rows onShow() {
let total = res.total // this.baseUrl = this.$baseUrl
this.totalPages = Math.ceil(total / this.pageSize); this.partnerId = uni.getStorageSync('partnerId')
} this.getindex()
},
methods: {
async getindex() {
//
let data = {
partnerId: this.partnerId,
searchValue: this.searchValue,
pageSize: this.pageSize,
pageNum: this.pageNum
}
let res = await request({
}, url: '/partnerOwn/partner/validationList',
// method: 'get',
getedit(id){ params: data
uni.navigateTo({ })
url:'/pages/order/editorder?id='+id if (res.code == 200) {
}) if (this.pageNum != 1) {
}, this.goodsList = this.goodsList.concat(res.rows)
// } else {
this.goodsList = res.rows
}
let total = res.total
this.totalPages = Math.ceil(total / this.pageSize);
}
async getxia(id){ },
let data ={ //
goodsId :id getedit(id) {
} uni.navigateTo({
let res = await request({ url: '/pages/order/editorder?id=' + id
url:'/partnerOwn/partner/changeListing', })
method: 'post', },
params: data //
})
if(res.code == 200){
uni.showToast({
title:"操作成功",
}) async getxia(id) {
this.getindex() let data = {
} goodsId: id
}, }
// let res = await request({
async getdelete(id){ url: '/partnerOwn/partner/changeListing',
let data ={ method: 'post',
goodsId :id params: data
} })
let res = await request({ if (res.code == 200) {
url:'/partnerOwn/partner/delGoods', uni.showToast({
method: 'post', title: "操作成功",
params: data
})
if(res.code == 200){
uni.showToast({
title:"操作成功",
}) })
this.getindex() this.getindex()
} }
}, },
gettapindex(index,id){ //
this.isListing = id async getdelete(id) {
this.getindex() let data = {
}, goodsId: id
}
let res = await request({
url: '/partnerOwn/partner/delGoods',
method: 'post',
params: data
})
if (res.code == 200) {
uni.showToast({
title: "操作成功",
getfan(){ })
uni.navigateBack() this.getindex()
} }
} },
} gettapindex(index, id) {
this.isListing = id
this.getindex()
},
getfan() {
uni.navigateBack()
}
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.content { .content {
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background: white; background: white;
} }
.dis{
width: 100%;
display: flex;
align-items: center;
}
.top-heder{
width: 100%;
height: 46px;
background: white;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 5px 15px;
}
.t-left{
width: 10%;
}
.t-input{
width: 75%;
height: 36px;
background: #F0F0F0;
border-radius: 50px;
box-sizing: border-box;
padding: 0 15px;
display: flex;
align-items: center;
} .search_box {
.top-ail{ box-sizing: border-box;
width: 100%; padding: 0 20rpx;
box-sizing: border-box; border-bottom: 2rpx solid #F5F5F5;
padding: 15px; margin-top: 30rpx;
background-color: #F4F4F4; }
} .dis {
.sou{ width: 100%;
width: 10%; display: flex;
margin-left: 5px; align-items: center;
} }
.mub{
background-color: #F4F4F4;
height: calc(100vh);
}
.dix{
display: flex;
align-items: center;
}
.top-tap{
width: 100%;
height: 44px;
display: flex;
justify-content: space-between;
align-items: center;
} .top-heder {
.tap-box{ width: 100%;
width: 50%; height: 46px;
height: 100%; background: white;
text-align: center; display: flex;
font-size: 16px; justify-content: space-between;
font-weight: 400; align-items: center;
color: #606266; box-sizing: border-box;
box-sizing: border-box; padding: 5px 15px;
padding-top: 10px; }
}
.gang{
width: 30px;
height: 4px;
background: #0D2E8D;
border-radius: 4px;
margin: 4px auto;
}
.a-box{
width: 100%;
border-radius: 8px;
background-color: white;
box-sizing: border-box;
padding: 15px;
margin-bottom: 10px;
}
.t-box{
width: 100%;
box-sizing: border-box;
padding-bottom: 15px;
display: flex;
border-bottom: 1px solid #EEEEEE;
}
.s-img{
width: 110px;
height: 110px;
margin-right: 10px;
overflow: hidden;
border-radius: 8px;
image{
width: 100%;
height: 100%;
}
}
.s-right{
width: 100%;
}
.s-title{
font-size: 18px;
font-weight: bold;
color: #333333;
}
.s-hui{
font-size: 15px;
font-weight: 400;
color: #999999;
} .t-left {
.s-ju{ width: 10%;
text-align: right; }
font-size: 18px;
font-weight: bold; .t-input {
color: #FF571A; width: 75%;
} height: 36px;
.d-bottom{ background: #F0F0F0;
width: 100%; border-radius: 50px;
box-sizing: border-box; box-sizing: border-box;
padding-top: 10px; padding: 0 15px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end;
} }
.bottom-box{
width: 66px; .top-ail {
height: 31px; width: 100%;
background: #DAE1F8; box-sizing: border-box;
display: flex; padding: 15px;
justify-content: center; background-color: white;
align-items: center;
border-radius: 50px; }
font-size: 15px;
font-weight: 400; .sou {
color: #0D2E8D; width: 10%;
margin-left: 5px; margin-left: 5px;
} }
.lan{
color: #0D2E8D !important; .mub {
} background-color: #F4F4F4;
.jsy{ height: calc(100vh);
width: 100%; }
margin-top: 20px;
text-align: center; .dix {
color: #0D2E8D !important; display: flex;
} align-items: center;
}
.top-tap {
width: 100%;
height: 44px;
display: flex;
justify-content: space-between;
align-items: center;
}
.tap-box {
width: 50%;
height: 100%;
text-align: center;
font-size: 16px;
font-weight: 400;
color: #606266;
box-sizing: border-box;
padding-top: 10px;
}
.gang {
width: 30px;
height: 4px;
background: #0D2E8D;
border-radius: 4px;
margin: 4px auto;
}
.a-box {
width: 100%;
border-radius: 8px;
background-color: #F7F8FC;
box-sizing: border-box;
padding: 15px;
margin-bottom: 10px;
}
.t-box {
width: 100%;
box-sizing: border-box;
padding-bottom: 15px;
display: flex;
border-bottom: 1px solid #EEEEEE;
}
.s-img {
width: 110px;
height: 110px;
margin-right: 10px;
overflow: hidden;
border-radius: 8px;
image {
width: 100%;
height: 100%;
}
}
.s-right {
width: 100%;
}
.s-title {
font-size: 18px;
font-weight: bold;
color: #333333;
}
.s-hui {
font-size: 15px;
font-weight: 400;
color: #999999;
}
.s-ju {
text-align: right;
font-size: 18px;
font-weight: bold;
color: #FF571A;
}
.d-bottom {
width: 100%;
box-sizing: border-box;
padding-top: 10px;
display: flex;
align-items: center;
justify-content: flex-end;
}
.bottom-box {
width: 66px;
height: 31px;
background: #DAE1F8;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50px;
font-size: 15px;
font-weight: 400;
color: #0D2E8D;
margin-left: 5px;
}
.lan {
color: #0D2E8D !important;
}
.jsy {
width: 100%;
margin-top: 20px;
text-align: center;
color: #0D2E8D !important;
}
</style> </style>

View File

@ -1,411 +1,459 @@
<!-- --> <!-- -->
<template> <template>
<view class="content"> <view class="content">
<view style="width: 100%; height: 44px;"></view> <!-- <view style="width: 100%; height: 44px;"></view>-->
<view class="top-heder"> <!-- <view class="top-heder">-->
<view class="t-left" @click="getfan()"> <!-- <view class="t-left" @click="getfan()">-->
<uni-icons type="left" size="18"></uni-icons> <!-- <uni-icons type="left" size="18"></uni-icons>-->
</view> <!-- </view>-->
<view class="t-input"> <!-- -->
<uni-icons type="search" color="#BCBCBC" size="22"></uni-icons> <!-- </view>-->
<input type="text" v-model="goodsTitle" placeholder="搜索商品.....">
</view>
<view class="sou" @click="getindex()">搜索</view>
</view>
<view class="top-tap">
<view class="tap-box" v-for="(item,index) in taplist" :key="index" @click="gettapindex(index,item.id)">
<text :class="{'lan':isListing == item.id}">{{item.Text}}</text>
<view class="gang" v-if="isListing == item.id"></view>
</view>
<!-- <view class="tap-box">
<text>待上架</text>
<view class="gang"></view>
</view> -->
</view>
<view class="mub">
<view class="top-ail">
<view class="jsy" v-if="goodsList.length == 0">
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="a-box" v-for="(item,index) in goodsList" :key="index">
<view class="t-box">
<view class="s-img">
<image :src="baseImageUrl+item.goodsImage" mode=""></image>
</view>
<view class="s-right">
<view class="s-title">{{item.goodsTitle}}</view>
<view class="s-hui">销量 {{item.salesNum}}</view>
<view class="s-ju">{{item.price / 100}}</view>
</view>
</view>
<view class="d-bottom">
<view v-if="isListing ==0">
<view class="" style="color: #afafaff6; margin-right: 50px;" v-if="item.listingStatus == 0" >
<text>待提交</text>
</view>
<view class="" style="color: #E6A23C; margin-right: 50px;" v-if="item.listingStatus == 1" >
<text>审核中</text>
</view>
<view class="" style="color: #F56C6C; margin-right: 50px;" v-if="item.listingStatus == 3" @click="weitongg(item.rejectReason)">
<text>未通过</text>
</view>
</view>
<view class="bottom-box" @click="getedit(item.goodsId,item.listingStatus)"> <headersVue titles="商品管理" style="position: static !important;">
<text>编辑</text> <u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</view> </headersVue>
<view class="bottom-box" @click="getxia(item.goodsId,item.listingStatus)">
<text v-if="isListing == 0">上架</text>
<text v-if="isListing == 1">下架</text>
</view>
<view class="bottom-box" @click="getdelete(item.goodsId)">
<text>删除</text>
</view>
<view class="box-bottom" @click="editPrice(item.goodsId)">
<text>价格</text>
</view>
</view>
</view>
</view>
</view>
<!-- 底部 --> <view class="search_box">
<u-modal :show="show" :content='content' :title="title" @confirm="confirms" :closeOnClickOverlay="true"></u-modal> <u-search placeholder="搜索商品....." @clear="getindex()" @search="getindex()" :showAction="false"
v-model="goodsTitle" searchIconColor="#427FFE"></u-search>
</view>
</view> <!-- <view class="t-input">-->
<!-- <uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>-->
<!-- <input type="text" v-model="goodsTitle" placeholder="搜索商品.....">-->
<!-- </view>-->
<!-- <view class="sou" @click="getindex()">搜索</view>-->
<view class="top-tap">
<view class="tap-box" v-for="(item,index) in taplist" :key="index" @click="gettapindex(index,item.id)">
<text :class="{'lan':isListing == item.id}">{{ item.Text }}</text>
<view class="gang" v-if="isListing == item.id"></view>
</view>
<!-- <view class="tap-box">
<text>待上架</text>
<view class="gang"></view>
</view> -->
</view>
<view class="mub">
<view class="top-ail">
<view class="jsy" v-if="goodsList.length == 0">
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="a-box" v-for="(item,index) in goodsList" :key="index">
<view class="t-box">
<view class="s-img">
<image :src="baseImageUrl+item.goodsImage" mode=""></image>
</view>
<view class="s-right">
<view class="s-title">{{ item.goodsTitle }}</view>
<view class="s-hui">销量 {{ item.salesNum }}</view>
<view class="s-ju">{{ item.price / 100 }}</view>
</view>
</view>
<view class="d-bottom">
<view v-if="isListing ==0">
<view class="" style="color: #afafaff6; margin-right: 50px;" v-if="item.listingStatus == 0">
<text>待提交</text>
</view>
<view class="" style="color: #E6A23C; margin-right: 50px;" v-if="item.listingStatus == 1">
<text>审核中</text>
</view>
<view class="" style="color: #F56C6C; margin-right: 50px;" v-if="item.listingStatus == 3"
@click="weitongg(item.rejectReason)">
<text>未通过</text>
</view>
</view>
<view class="bottom-box" @click="getedit(item.goodsId,item.listingStatus)">
<text>编辑</text>
</view>
<view class="bottom-box" @click="getxia(item.goodsId,item.listingStatus)">
<text v-if="isListing == 0">上架</text>
<text v-if="isListing == 1">下架</text>
</view>
<view class="bottom-box" @click="getdelete(item.goodsId)">
<text>删除</text>
</view>
<view class="box-bottom" @click="editPrice(item.goodsId)">
<text>价格</text>
</view>
</view>
</view>
</view>
</view>
<!-- 底部 -->
<u-modal :show="show" :content='content' :title="title" @confirm="confirms" :closeOnClickOverlay="true"></u-modal>
</view>
</template> </template>
<script> <script>
import config from '@/config' import config from '@/config'
import request from '../../utils/request'; import request from '../../utils/request';
export default { import headersVue from "@/components/header/headers.vue";
data() {
return {
show:false,
msg:'3',
goodsList:[],
baseUrl:this.$baseUrl,
partnerId:'',
title:'未通过原因',
isListing:1,
goodsTitle:"",
content:'',
taplist:[
{Text:'已发布',id:1},
{Text:'待上架',id:0},
],
pageNum: 1,//
pageSize: 10,//
totalPages: 0,//
baseImageUrl:this.$baseImageUrl
}
},
onLoad() {
}, export default {
onPullDownRefresh() { components: {headersVue},
uni.showLoading() data() {
setTimeout(() => { return {
uni.hideLoading() show: false,
uni.stopPullDownRefresh() msg: '3',
}, 500) goodsList: [],
}, baseUrl: this.$baseUrl,
onReachBottom() { partnerId: '',
if (this.pageNum >= this.totalPages) { title: '未通过原因',
uni.showToast({ isListing: 1,
title: '没有下一页数据', goodsTitle: "",
icon: 'none' content: '',
}) taplist: [
{Text: '已发布', id: 1},
{Text: '待上架', id: 0},
],
pageNum: 1,//
pageSize: 10,//
totalPages: 0,//
baseImageUrl: this.$baseImageUrl
}
},
onLoad() {
} else { },
this.pageNum++ onPullDownRefresh() {
this.getindex() uni.showLoading()
} setTimeout(() => {
}, uni.hideLoading()
onShow() { uni.stopPullDownRefresh()
// this.baseUrl = this.$baseUrl }, 500)
this.partnerId = uni.getStorageSync('partnerId') },
this.getindex() onReachBottom() {
}, if (this.pageNum >= this.totalPages) {
methods: { uni.showToast({
confirms(){ title: '没有下一页数据',
this.show = false icon: 'none'
}, })
weitongg(text){
this.show = true
this.content = text
},
async getindex(){
//
let data = {
partnerId:this.partnerId,
isListing:this.isListing,
goodsTitle:this.goodsTitle,
pageSize:this.pageSize,
pageNum:this.pageNum
}
let res = await request({
url:'/partnerOwn/partner/goodsList', } else {
method: 'get', this.pageNum++
params: data this.getindex()
}) }
if(res.code == 200){ },
this.goodsList = res.rows onShow() {
let total = res.total // this.baseUrl = this.$baseUrl
this.totalPages = Math.ceil(total / this.pageSize); this.partnerId = uni.getStorageSync('partnerId')
} this.getindex()
},
methods: {
confirms() {
this.show = false
},
weitongg(text) {
this.show = true
this.content = text
},
async getindex() {
//
let data = {
partnerId: this.partnerId,
isListing: this.isListing,
goodsTitle: this.goodsTitle,
pageSize: this.pageSize,
pageNum: this.pageNum
}
let res = await request({
}, url: '/partnerOwn/partner/goodsList',
// method: 'get',
editPrice(id){ params: data
uni.navigateTo({ })
url:'/pages/order/editPrice?id='+id if (res.code == 200) {
}) if (this.pageNum != 1) {
}, this.goodsList = this.goodsList.concat(res.rows)
// } else {
getedit(id,e){ this.goodsList = res.rows
if(e == 1){ }
uni.showToast({ let total = res.total
title:'待审核状态不能编辑', this.totalPages = Math.ceil(total / this.pageSize);
icon:'none' }
})
return
}
if(this.isListing == 1){
uni.showToast({
title:'需下架后方可编辑',
icon:'none'
})
return
}
uni.navigateTo({ },
url:'/pages/order/editorder?id='+id //
}) editPrice(id) {
}, uni.navigateTo({
// url: '/pages/order/editPrice?id=' + id
})
},
//
getedit(id, e) {
if (e == 1) {
uni.showToast({
title: '待审核状态不能编辑',
icon: 'none'
})
return
}
if (this.isListing == 1) {
uni.showToast({
title: '需下架后方可编辑',
icon: 'none'
})
return
}
async getxia(id,e){ uni.navigateTo({
url: '/pages/order/editorder?id=' + id
})
},
//
async getxia(id, e) {
let data ={ let data = {
goodsId :id goodsId: id
} }
let res = await request({ let res = await request({
url:'/partnerOwn/partner/changeListing', url: '/partnerOwn/partner/changeListing',
method: 'post', method: 'post',
params: data params: data
}) })
if(res.code == 200){ if (res.code == 200) {
uni.showToast({ uni.showToast({
title:res.msg, title: res.msg,
}) })
this.getindex() this.getindex()
} }
}, },
// //
async getdelete(id){ async getdelete(id) {
if(this.isListing == 1){ if (this.isListing == 1) {
uni.showToast({ uni.showToast({
title:'需下架后方可删除', title: '需下架后方可删除',
icon:'none' icon: 'none'
}) })
return return
} }
let data ={ let data = {
goodsId :id goodsId: id
} }
let res = await request({ let res = await request({
url:'/partnerOwn/partner/delGoods', url: '/partnerOwn/partner/delGoods',
method: 'post', method: 'post',
params: data params: data
}) })
if(res.code == 200){ if (res.code == 200) {
uni.showToast({ uni.showToast({
title:"操作成功", title: "操作成功",
}) })
this.getindex() this.getindex()
} }
}, },
gettapindex(index,id){ gettapindex(index, id) {
this.isListing = id this.isListing = id
this.getindex() this.getindex()
}, },
getfan(){ getfan() {
uni.navigateBack() uni.navigateBack()
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.content { .content {
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background: white; background: white;
} }
.top-heder{ .search_box {
width: 100%; box-sizing: border-box;
height: 46px; padding: 0 20rpx;
background: white; border-bottom: 2rpx solid #F5F5F5;
display: flex; margin-top: 30rpx;
justify-content: space-between; }
align-items: center;
box-sizing: border-box;
padding: 5px 15px;
}
.t-left{
width: 10%;
}
.t-input{
width: 75%;
height: 36px;
background: #F0F0F0;
border-radius: 50px;
box-sizing: border-box;
padding: 0 15px;
display: flex;
align-items: center;
} .top-heder {
.top-ail{ width: 100%;
width: 100%; height: 46px;
box-sizing: border-box; background: white;
padding: 15px; display: flex;
background-color: #F4F4F4; justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 5px 15px;
}
} .t-left {
.sou{ width: 10%;
width: 10%; }
margin-left: 5px;
}
.mub{
background-color: #F4F4F4;
height: calc(100vh);
}
.dix{
display: flex;
align-items: center;
}
.top-tap{
width: 100%;
height: 44px;
display: flex;
justify-content: space-between;
align-items: center;
} .t-input {
.tap-box{ width: 75%;
width: 50%; height: 36px;
height: 100%; background: #F0F0F0;
text-align: center; border-radius: 50px;
font-size: 16px; box-sizing: border-box;
font-weight: 400; padding: 0 15px;
color: #606266; display: flex;
box-sizing: border-box; align-items: center;
padding-top: 10px;
} }
.gang{
width: 30px; .top-ail {
height: 4px; width: 100%;
background: #0D2E8D; box-sizing: border-box;
border-radius: 4px; padding: 15px;
margin: 4px auto; background-color: #F4F4F4;
}
.a-box{ }
width: 100%;
border-radius: 8px; .sou {
background-color: white; width: 10%;
box-sizing: border-box; margin-left: 5px;
padding: 15px; }
margin-bottom: 10px;
position: relative; .mub {
} background-color: #F4F4F4;
.box-bottom{ height: calc(100vh);
width: 45px; }
height: 45px;
border-radius: 50%; .dix {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; }
overflow: hidden;
color: white; .top-tap {
background: #0D2E8D; width: 100%;
position: absolute; height: 44px;
bottom: 75px; display: flex;
right: 30px; justify-content: space-between;
} align-items: center;
.t-box{
width: 100%; }
box-sizing: border-box;
padding-bottom: 15px; .tap-box {
display: flex; width: 50%;
border-bottom: 1px solid #EEEEEE; height: 100%;
} text-align: center;
.s-img{ font-size: 16px;
width: 110px; font-weight: 400;
height: 110px; color: #606266;
margin-right: 10px; box-sizing: border-box;
overflow: hidden; padding-top: 10px;
border-radius: 8px; }
image{
width: 100%; .gang {
height: 100%; width: 30px;
} height: 4px;
} background: #327DFB;
.s-right{ border-radius: 4px;
width: 65%; margin: 4px auto;
} }
.s-title{
font-size: 18px; .a-box {
font-weight: bold; width: 100%;
color: #333333; border-radius: 8px;
} background-color: white;
.s-hui{ box-sizing: border-box;
font-size: 15px; padding: 15px;
font-weight: 400; margin-bottom: 10px;
color: #999999; position: relative;
margin: 10px auto; }
}
.s-ju{ .box-bottom {
font-size: 18px; width: 45px;
font-weight: bold; height: 45px;
color: #FF571A; border-radius: 50%;
} display: flex;
.d-bottom{ align-items: center;
width: 100%; justify-content: center;
box-sizing: border-box; overflow: hidden;
padding-top: 10px; color: white;
display: flex; background: #327DFB;
align-items: center; position: absolute;
justify-content: flex-end; bottom: 75px;
} right: 30px;
.bottom-box{ }
width: 66px;
height: 31px; .t-box {
background: #DAE1F8; width: 100%;
display: flex; box-sizing: border-box;
justify-content: center; padding-bottom: 15px;
align-items: center; display: flex;
border-radius: 50px; border-bottom: 1px solid #EEEEEE;
font-size: 15px; }
font-weight: 400;
color: #0D2E8D; .s-img {
margin-left: 5px; width: 110px;
} height: 110px;
.lan{ margin-right: 10px;
color: #0D2E8D !important; overflow: hidden;
} border-radius: 8px;
.jsy{
width: 100%; image {
margin-top: 20px; width: 100%;
text-align: center; height: 100%;
color: #0D2E8D !important; }
} }
.s-right {
width: 65%;
}
.s-title {
font-size: 18px;
font-weight: bold;
color: #333333;
}
.s-hui {
font-size: 15px;
font-weight: 400;
color: #999999;
margin: 10px auto;
}
.s-ju {
font-size: 18px;
font-weight: bold;
color: #FF571A;
}
.d-bottom {
width: 100%;
box-sizing: border-box;
padding-top: 10px;
display: flex;
align-items: center;
justify-content: flex-end;
}
.bottom-box {
width: 66px;
height: 31px;
background: #DAE1F8;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50px;
font-size: 15px;
font-weight: 400;
color: #0D2E8D;
margin-left: 5px;
}
.lan {
color: #0D2E8D !important;
}
.jsy {
width: 100%;
margin-top: 20px;
text-align: center;
color: #0D2E8D !important;
}
</style> </style>