页面修改

This commit is contained in:
THK3121 2023-08-19 14:19:33 +08:00
commit 3684c3a7ce
11 changed files with 1500 additions and 1029 deletions

22
App.vue
View File

@ -1,9 +1,10 @@
<script> <script>
// var jpushModule = uni.requireNativePlugin("JG-JPush"); //#ifdef APP-PLUS
var jpushModule = uni.requireNativePlugin("JG-JPush"); const jpushModule = uni.requireNativePlugin("JG-JPush");
// #endif
export default { export default {
onLaunch: function() { onLaunch: async function () {
console.log('App Launch') console.log('App Launch')
try { try {
if (!this.$store.state.app.token) uni.redirectTo({ if (!this.$store.state.app.token) uni.redirectTo({
@ -28,6 +29,19 @@
}, },
onShow: function () { onShow: function () {
console.log('App Show') console.log('App Show')
//
const audioContext = uni.createInnerAudioContext()
//
audioContext.src = './static/mp3/order.mp3'
//
//#ifdef APP-PLUS
jpushModule.addNotificationListener(res => {
console.log("监听成功")
audioContext.play()
})
// #endif
}, },
onHide: function () { onHide: function () {
console.log('App Hide') console.log('App Hide')

View File

@ -0,0 +1,59 @@
<template>
<view class="box" v-show="flag">
<p>提示</p>
你有新的订单,请注意查收!
<view class="off" @click="flag=false ">
<u-icon name="close" color="black" size="22"></u-icon>
</view>
</view>
</template>
<script>
export default {
name: "GlobalPopup",
data() {
return {
flag: false
};
},
methods: {
showPopu() {
this.flag = true
setTimeout(() => {
this.flag = false
}, 3000)
}
}
}
</script>
<style lang="scss">
.box {
z-index: 99999999999;
position: absolute;
top: 80rpx;
width: 90vw;
text-align: center;
box-sizing: border-box;
padding: 10rpx 20rpx;
font-size: 30rpx;
height: 10vh;
background-color: white;
border-radius: 5rpx;
left: 50%;
transform: translateX(-50%);
p {
text-align: left;
font-weight: bold;
font-size: 30rpx
}
.off {
position: absolute;
right: 20rpx;
top: 10rpx;
}
}
</style>

View File

@ -12,6 +12,8 @@
<p class="tit" v-if="goodsInfo.status==2" style="background-color: #47BE62;"> <p class="tit" v-if="goodsInfo.status==2" style="background-color: #47BE62;">
收货人姓名:&nbsp;&nbsp;{{fuzzyName(goodsInfo.receiver_name)}}</p> 收货人姓名:&nbsp;&nbsp;{{fuzzyName(goodsInfo.receiver_name)}}</p>
<p class="tit" v-if="goodsInfo.status==3" style="background-color: red;">
收货人姓名:&nbsp;&nbsp;{{fuzzyName(goodsInfo.receiver_name)}}</p>
<view class="contents"> <view class="contents">
<!-- 已取货 --> <!-- 已取货 -->
<view class="left" v-if='goodsInfo.status==0'> <view class="left" v-if='goodsInfo.status==0'>
@ -215,6 +217,60 @@
</view> </view>
<!-- 已取消 -->
<view class="left" @click="goDetil" v-if='goodsInfo.status==3'>
<view style="margin: 0;padding:0">
<view class="list">
<text>
联系电话
</text>
<view @click.stop="callFn(goodsInfo.receiver_phone)">
<u-icon style="display: inline-block;margin-left: 5rpx;" name="phone"
color="#47BE62" size="22"></u-icon> {{goodsInfo.receiver_phone}}
</view>
</view>
<view class="list">
<text>
用户地址
</text>
<view>
<view class="address">
{{goodsInfo.receiver_address}}
</view>
</view>
</view>
<view class="hr">
</view>
<view class="pro_list">
<text style="color: #999;width: 15vw;">
商品信息
</text>
<view>
<view class="goods_tit" v-for="(item,index) in goodsInfo.products">
<text class="goods_detil">{{item.goods_name}}</text>
<text>X{{item.product_num}}{{item.goods_unit}}</text>
</view>
</view>
</view>
</view>
<view class="total">
共计{{goodsInfo.product_count}}件商品
</view>
<u-button type="primary" class="custom-style" style="background-color: red;border: 0;">
<u-icon name="eye-fill" color="white" size="25" style="margin-right: 10rpx;"></u-icon>
查看详情</u-button>
</view>
</view> </view>

View File

@ -1,6 +1,7 @@
<template> <template>
<view> <view>
<button @click.stop="click" :class="{'my_btn_new_btn': position, 'my_btn_no_positon': !position, 'my_btn_disabled': my_btn_disabled}">{{text}}</button> <button @click.stop="click"
:class="{'my_btn_new_btn': position, 'my_btn_no_positon': !position, 'my_btn_disabled': my_btn_disabled}">{{text}}</button>
</view> </view>
</template> </template>
@ -47,6 +48,7 @@
line-height: 90rpx; line-height: 90rpx;
background-color: $theme-oa-color; background-color: $theme-oa-color;
} }
.my_btn_no_positon { .my_btn_no_positon {
width: 100%; width: 100%;
border-radius: 0; border-radius: 0;
@ -55,6 +57,7 @@
line-height: 90rpx; line-height: 90rpx;
background-color: $theme-oa-color; background-color: $theme-oa-color;
} }
.my_btn_disabled { .my_btn_disabled {
background-color: #666; background-color: #666;
color: #eee; color: #eee;

View File

@ -103,6 +103,176 @@
} }
} }
} }
},
"nativePlugins" : {
"JG-JCore" : {
"JPUSH_APPKEY_ANDROID" : "5ced5ec5fa7bb86302944f0f",
"JPUSH_APPKEY_IOS" : "5ced5ec5fa7bb86302944f0f",
"JPUSH_CHANNEL_ANDROID" : "",
"JPUSH_CHANNEL_IOS" : "",
"__plugin_info__" : {
"name" : "极光推送 JCore 官方 SDK",
"description" : "极光推送 JCore 官方 SDK HBuilder 插件版本",
"platforms" : "All,Android,iOS",
"url" : "https://ext.dcloud.net.cn/plugin?id=4028",
"android_package_name" : "uni.UNIB5B1EDD",
"ios_bundle_id" : "uni.UNIB5B1EDD",
"isCloud" : true,
"bought" : 1,
"pid" : "4028",
"parameters" : {
"JPUSH_APPKEY_ANDROID" : {
"des" : "[Android]极光portal配置应用信息时分配的AppKey",
"key" : "JPUSH_APPKEY",
"value" : ""
},
"JPUSH_APPKEY_IOS" : {
"des" : "[iOS]极光portal配置应用信息时分配的AppKey",
"key" : "JCore:APP_KEY",
"value" : ""
},
"JPUSH_CHANNEL_ANDROID" : {
"des" : "[Android]用于统计分发渠道不需要可填默认值developer-default",
"key" : "JPUSH_CHANNEL",
"value" : ""
},
"JPUSH_CHANNEL_IOS" : {
"des" : "[iOS]用于统计分发渠道不需要可填默认值developer-default",
"key" : "JCore:CHANNEL",
"value" : ""
}
}
}
},
"JG-JPush" : {
"JPUSH_ADVERTISINGID_IOS" : "",
"JPUSH_DEFAULTINITJPUSH_IOS" : "",
"JPUSH_GOOGLE_API_KEY" : "",
"JPUSH_GOOGLE_APP_ID" : "",
"JPUSH_GOOGLE_PROJECT_ID" : "",
"JPUSH_GOOGLE_PROJECT_NUMBER" : "",
"JPUSH_GOOGLE_STORAGE_BUCKET" : "",
"JPUSH_HONOR_APPID" : "",
"JPUSH_HUAWEI_APPID" : "",
"JPUSH_ISPRODUCTION_IOS" : "",
"JPUSH_MEIZU_APPID" : "",
"JPUSH_MEIZU_APPKEY" : "",
"JPUSH_OPPO_APPID" : "",
"JPUSH_OPPO_APPKEY" : "",
"JPUSH_OPPO_APPSECRET" : "",
"JPUSH_VIVO_APPID" : "",
"JPUSH_VIVO_APPKEY" : "",
"JPUSH_XIAOMI_APPID" : "",
"JPUSH_XIAOMI_APPKEY" : "",
"__plugin_info__" : {
"name" : "极光推送 JPush 官方 SDK",
"description" : "极光推送JPush官方SDK HBuilder插件版本",
"platforms" : "All,Android,iOS",
"url" : "https://ext.dcloud.net.cn/plugin?id=4035",
"android_package_name" : "uni.UNIB5B1EDD",
"ios_bundle_id" : "uni.UNIB5B1EDD",
"isCloud" : true,
"bought" : 1,
"pid" : "4035",
"parameters" : {
"JPUSH_ADVERTISINGID_IOS" : {
"des" : "[iOS]广告标识符IDFA如果不需要使用IDFA可不填",
"key" : "JPush:ADVERTISINGID",
"value" : ""
},
"JPUSH_DEFAULTINITJPUSH_IOS" : {
"des" : "[iOS]是否默认初始化是填true不是填false或者不填",
"key" : "JPush:DEFAULTINITJPUSH",
"value" : ""
},
"JPUSH_GOOGLE_API_KEY" : {
"des" : "厂商google api_key,示例:g-12346578",
"key" : "google_api_key",
"value" : ""
},
"JPUSH_GOOGLE_APP_ID" : {
"des" : "厂商google mobilesdk_app_id,示例g-12346578",
"key" : "google_app_id",
"value" : ""
},
"JPUSH_GOOGLE_PROJECT_ID" : {
"des" : "厂商google project_id ,示例g-12346578",
"key" : "project_id",
"value" : ""
},
"JPUSH_GOOGLE_PROJECT_NUMBER" : {
"des" : "厂商google project_number,示例g-12346578",
"key" : "gcm_defaultSenderId",
"value" : ""
},
"JPUSH_GOOGLE_STORAGE_BUCKET" : {
"des" : "厂商google storage_bucket,示例g-12346578",
"key" : "google_storage_bucket",
"value" : ""
},
"JPUSH_HONOR_APPID" : {
"des" : "厂商HONOR-appId,示例12346578",
"key" : "com.hihonor.push.app_id",
"value" : ""
},
"JPUSH_HUAWEI_APPID" : {
"des" : "厂商HUAWEI-appId,示例appid=12346578",
"key" : "com.huawei.hms.client.appid",
"value" : ""
},
"JPUSH_ISPRODUCTION_IOS" : {
"des" : "[iOS]是否是生产环境是填true不是填false或者不填",
"key" : "JPush:ISPRODUCTION",
"value" : ""
},
"JPUSH_MEIZU_APPID" : {
"des" : "厂商MEIZU-appId,示例MZ-12345678",
"key" : "MEIZU_APPID",
"value" : ""
},
"JPUSH_MEIZU_APPKEY" : {
"des" : "厂商MEIZU-appKey,示例MZ-12345678",
"key" : "MEIZU_APPKEY",
"value" : ""
},
"JPUSH_OPPO_APPID" : {
"des" : "厂商OPPO-appId,示例OP-12345678",
"key" : "OPPO_APPID",
"value" : ""
},
"JPUSH_OPPO_APPKEY" : {
"des" : "厂商OPPO-appkey,示例OP-12345678",
"key" : "OPPO_APPKEY",
"value" : ""
},
"JPUSH_OPPO_APPSECRET" : {
"des" : "厂商OPPO-appSecret,示例OP-12345678",
"key" : "OPPO_APPSECRET",
"value" : ""
},
"JPUSH_VIVO_APPID" : {
"des" : "厂商VIVO-appId,示例12345678",
"key" : "com.vivo.push.app_id",
"value" : ""
},
"JPUSH_VIVO_APPKEY" : {
"des" : "厂商VIVO-appkey,示例12345678",
"key" : "com.vivo.push.api_key",
"value" : ""
},
"JPUSH_XIAOMI_APPID" : {
"des" : "厂商XIAOMI-appId,示例MI-12345678",
"key" : "XIAOMI_APPID",
"value" : ""
},
"JPUSH_XIAOMI_APPKEY" : {
"des" : "厂商XIAOMI-appKey,示例MI-12345678",
"key" : "XIAOMI_APPKEY",
"value" : ""
}
}
}
}
} }
}, },
/* */ /* */

View File

@ -8,9 +8,9 @@
<u-toast ref="uToast"></u-toast> <u-toast ref="uToast"></u-toast>
<view class="map"> <view class="map">
<map id="map" @markertap='mapFun' :enable-zoom="true" :polyline="polyline" :markers='markers' <map :class="mapClass" id="map" @markertap='mapFun' :enable-zoom="true" :polyline="polyline"
:scale="scale" style="width:100%;height: 70%;" :latitude="markers[0].latitude" :markers='markers' :scale="scale" style="width:100%;height: 70%;"
:enable-scroll="true" :longitude="markers[0].longitude"> :latitude="markers[0].latitude" :enable-scroll="true" :longitude="markers[0].longitude">
<cover-image class="map_btn" @tap="test" src="../../static/img/logistics/DH.png"> <cover-image class="map_btn" @tap="test" src="../../static/img/logistics/DH.png">
</cover-image> </cover-image>
</map> </map>
@ -80,10 +80,12 @@
</view> </view>
<view style="margin-top: 200rpx;height: 1px;">
<!-- 565 -->
</view>
<view class="btn"> <view class="btn">
<u-button @click="qrqodeFn" type="primary" class="custom-style" <u-button @click="qrqodeFn" type="primary" style="background-color: #0122C7;border: 0;">
style="background-color: #0122C7;border: 0;"> <u-icon name="scan" color="white" size="30" style="margin-right: 10rpx;"></u-icon>
<u-icon name="scan" color="white" size="25" style="margin-right: 10rpx;"></u-icon>
扫码取货</u-button> 扫码取货</u-button>
</view> </view>
</view> </view>
@ -103,7 +105,7 @@
export default { export default {
data() { data() {
return { return {
mapClass: 'custom-map',
showLoading: true, showLoading: true,
showPop: false, showPop: false,
goodsDetil: undefined, goodsDetil: undefined,
@ -152,7 +154,7 @@
success: function async (res) { success: function async (res) {
that.nowAddress = res.address.city + res.address.district + res.address.street + res that.nowAddress = res.address.city + res.address.district + res.address.street + res
.address.streetNum + res.address.poiName .address.streetNum + res.address.poiName
console.log(that.nowAddress)
that.markers[1].latitude = res.latitude that.markers[1].latitude = res.latitude
that.markers[1].longitude = res.longitude that.markers[1].longitude = res.longitude
that.getDriverLine() that.getDriverLine()
@ -250,7 +252,7 @@
points: points, points: points,
color: "#0091ff", color: "#0091ff",
dottedLine: true, dottedLine: true,
width: 10, width: 30,
}, ]; }, ];
}, },
@ -286,8 +288,6 @@
}) })
}, },
}, },
onLoad(options) { onLoad(options) {
getDetil({ getDetil({
@ -306,6 +306,10 @@
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
.custom-map /deep/ .polyline {
stroke-width: 20px;
}
.content { .content {
padding: 2vh 3vw; padding: 2vh 3vw;
background-color: #F6F7FC; background-color: #F6F7FC;
@ -392,6 +396,12 @@
} }
.btn { .btn {
margin-top: 200rpx;
position: fixed;
bottom: 20rpx;
width: 90vw;
left: 50%;
transform: translateX(-50%);
} }
</style> </style>

View File

@ -1,36 +1,51 @@
<template> <template>
<view> <view>
<!-- <globalPopup ref="globalPopup"></globalPopup> --> <globalPopup ref="globalPopup"></globalPopup>
<u-sticky bgColor="#0122C7" style="width: 100vw;"> <u-sticky bgColor="#0122C7" style="width: 100vw">
<u-tabs :list="tabLists" @change="sectionChange" lineColor='#fff' :scrollable="false" lineWidth='40' <u-tabs
inactiveStyle='color:#fff' activeStyle="color:#fff"></u-tabs> :list="tabLists"
@change="sectionChange"
lineColor="#fff"
:scrollable="false"
lineWidth="40"
inactiveStyle="color:#fff"
activeStyle="color:#fff"
></u-tabs>
</u-sticky> </u-sticky>
<view class="content"> <view class="content">
<u-search placeholder="搜索你的订单" @search="getOrderList" :show-action='false' bg-color='white' <u-search
v-model="keywords"></u-search> placeholder="搜索你的订单"
@search="getOrderList"
:show-action="false"
bg-color="white"
v-model="keywords"
></u-search>
<view v-if="!orderlist.length"> <view v-if="!orderlist.length">
<u-empty mode="data" icon="../../static/img/empty/data.png"> <u-empty mode="data" icon="../../static/img/empty/data.png"> </u-empty>
</u-empty>
</view> </view>
<view v-else> <view v-else>
<logistiCard ref="logistiCards" v-for='(item,index) in orderlist' @getlist="getOrderList" <logistiCard
@showTost='showToast' @showToast2="showToast2" :goodsInfo="item" :key="index"> ref="logistiCards"
v-for="(item, index) in orderlist"
@getlist="getOrderList"
@showTost="showToast"
@showToast2="showToast2"
:goodsInfo="item"
:key="index"
>
</logistiCard> </logistiCard>
</view> </view>
<!-- --> <!-- -->
<u-toast ref="uToast"></u-toast> <u-toast ref="uToast"></u-toast>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { import {
getList getList
} from "@/api/logistics.js" } from "@/api/logistics.js"
// import globalPopup from "@/components/GlobalPopup/GlobalPopup.vue" import globalPopup from "@/components/GlobalPopup/GlobalPopup.vue"
import { import {
informationAdd informationAdd
} from "@/api/logistics.js" } from "@/api/logistics.js"
@ -41,7 +56,7 @@
export default { export default {
components: { components: {
logistiCard, logistiCard,
// globalPopup globalPopup
}, },
data () { data () {
return { return {
@ -126,7 +141,7 @@
<style lang='scss'> <style lang='scss'>
.content { .content {
margin-top: 2vh; margin-top: 2vh;
background-color: #F5F5F5; background-color: #f5f5f5;
padding: 0vh 2vw; padding: 0vh 2vw;
} }
</style> </style>

View File

@ -11,7 +11,83 @@
</p> </p>
<p class="tit" v-if="goodsDetil.logistics.status==2" style="background-color: #47BE62;"> <p class="tit" v-if="goodsDetil.logistics.status==2" style="background-color: #47BE62;">
订单编号:&nbsp;&nbsp;{{goodsDetil.logistics.order_sn}}</p> 订单编号:&nbsp;&nbsp;{{goodsDetil.logistics.order_sn}}</p>
<p class="tit" v-if="goodsDetil.logistics.status==3" style="background-color: red;">
订单编号:&nbsp;&nbsp;{{goodsDetil.logistics.order_sn}}</p>
<view class="contents"> <view class="contents">
<!-- 已取消 -->
<view class="left" v-if="goodsDetil.logistics.status==3">
<view class="list">
<text>
取消时间
</text>
<view>
{{goodsDetil.record[1].create_time}}
</view>
</view>
<view class="list">
<text>
收货详情
</text>
<view>
<view>
{{goodsDetil.logistics.receiver_address}}
</view>
<view>
{{ fuzzyName(goodsDetil.logistics.receiver_name) ||"顾客姓名"}}:&nbsp;&nbsp;{{goodsDetil.logistics.receiver_phone||"顾客电话"}}
</view>
<view>
{{goodsDetil.create_time}}
</view>
</view>
</view>
<view class="list">
<text>
取货详情
</text>
<view>
<view>
{{goodsDetil.logistics.shop_address||"商家地址"}}
</view>
<view>
{{goodsDetil.logistics.shop_name||"商家电话"}}
:&nbsp;&nbsp;{{goodsDetil.logistics.shop_phone||"商家电话"}}
</view>
</view>
</view>
<view class="hr">
</view>
<view>
<view>
物流信息
</view>
<view style="margin: 10rpx 0;">
<u-steps :current="record.length" direction="column">
<u-steps-item :title="item.content" :desc="item.create_time"
v-for="(item,index) in goodsDetil.record">
</u-steps-item>
</u-steps>
</view>
</view>
<view class="pro_list">
<text style="width: 15vw;">
商品信息
</text>
<view>
<view class="goods_tit" v-for="(item,index) in goodsDetil.product">
<text style="width: 60vw;margin: 0;padding: 0;">{{item.goods_name}}</text>
<text>X{{item.product_num}}{{item.goods_unit}}</text>
</view>
</view>
</view>
</view>
<!-- 已送达 --> <!-- 已送达 -->
<view class="left" v-if="goodsDetil.logistics.status==2"> <view class="left" v-if="goodsDetil.logistics.status==2">
<view class="list"> <view class="list">
@ -86,7 +162,7 @@
</view> </view>
<!-- 已取货 --> <!-- 已取货 -->
<view class="left" v-else> <view class="left" v-if="goodsDetil.logistics.status==1">
<view class=" list"> <view class=" list">
<text> <text>
用户名称 用户名称
@ -145,12 +221,10 @@
</view> </view>
<view class="total" v-if="goodsDetil.logistics.status==2||goodsDetil.logistics.status==3">
<view class="total" v-if="goodsDetil.logistics.status==2">
<text>共计{{goodsDetil.product_count}} </text> <text>共计{{goodsDetil.product_count}} </text>
</view> </view>
<view style="margin-top: 600rpx;" v-if="goodsDetil.logistics.status==1"> <view class="btn" v-if="goodsDetil.logistics.status==1">
<u-button type="primary" style="background-color: #FF7C32;border: 0; border-radius: 2vw;" <u-button type="primary" style="background-color: #FF7C32;border: 0; border-radius: 2vw;"
@click="showPop=true"><u-icon name="car-fill" color="white" size="25" @click="showPop=true"><u-icon name="car-fill" color="white" size="25"
style="margin-right: 10rpx;;"></u-icon> style="margin-right: 10rpx;;"></u-icon>
@ -254,6 +328,15 @@
background-color: #F5F5F5; background-color: #F5F5F5;
} }
.btn {
position: fixed;
bottom: 20rpx;
width: 90vw;
left: 50%;
transform: translateX(-50%);
}
.order { .order {
position: relative; position: relative;
background-color: white; background-color: white;

View File

@ -2,7 +2,10 @@
<view class="oa_home" style="oaColor"> <view class="oa_home" style="oaColor">
<!-- <image class="header_bg" src="../../static/img/home/head-bg.png"></image> --> <!-- <image class="header_bg" src="../../static/img/home/head-bg.png"></image> -->
<view class="home_header" :class="!ApproveList.length > 0 ? 'home_header_no_data' : ''"> <view
class="home_header"
:class="!ApproveList.length > 0 ? 'home_header_no_data' : ''"
>
<!-- #ifdef APP-PLUS||H5 --> <!-- #ifdef APP-PLUS||H5 -->
<view style="height: var(--status-bar-height)"></view> <view style="height: var(--status-bar-height)"></view>
<view style="height: 100rpx"></view> <view style="height: 100rpx"></view>
@ -10,11 +13,15 @@
<view class="my_info"> <view class="my_info">
<view class="head_img"> <view class="head_img">
<view class="img_box"> <view class="img_box">
<u--image :showLoading="true" width="131.43rpx" height="131.43rpx" <u--image
:src="myOaInfo.avatar || '../../static/img/public/avatar.png'" shape="circle"></u--image> :showLoading="true"
width="131.43rpx"
height="131.43rpx"
:src="myOaInfo.avatar || '../../static/img/public/avatar.png'"
shape="circle"
></u--image>
</view> </view>
<text class="nickname">工作证: {{ myOaInfo.nickname }}</text> <text class="nickname">工作证: {{ myOaInfo.nickname }}</text>
<text>身份: {{ myOaInfo.admin_id ? "超级管理员" : "普通用户" }}</text> <text>身份: {{ myOaInfo.admin_id ? "超级管理员" : "普通用户" }}</text>
</view> </view>
@ -54,37 +61,51 @@
</block> </block>
</view> --> </view> -->
<view class="backlog" :class="!ApproveList.length > 0 ? 'backlog_no_data' : ''"> <view
class="backlog"
:class="!ApproveList.length > 0 ? 'backlog_no_data' : ''"
>
<view class="head_title flex_a_c_j_sb"> <view class="head_title flex_a_c_j_sb">
<view class="title">公告列表</view> <view class="title">公告列表</view>
<view class="flex_a_c" @click="navTo('/subpkg/noticeList/noticeList')">更多 <view class="flex_a_c" @click="navTo('/subpkg/noticeList/noticeList')"
>更多
<view class="iconfont icon-you"> <view class="iconfont icon-you">
<uni-icons type="forward"></uni-icons> <uni-icons type="forward"></uni-icons>
</view> </view>
</view> </view>
</view> </view>
<block v-if="ApproveList.length > 0"> <block v-if="ApproveList.length > 0">
<view
<view class="backlog_item flex_a_c_j_sb" v-for="(item, index) in ApproveList.slice(0, 2)" class="backlog_item flex_a_c_j_sb"
:key="index" @click="clickNotice(item.id)"> v-for="(item, index) in ApproveList.slice(0, 2)"
:key="index"
<view class="text"> <text class="text_time">{{item.create_time.substring(0, 10)}}</text> @click="clickNotice(item.id)"
>
<view class="text">
<text class="text_time">{{
item.create_time.substring(0, 10)
}}</text>
{{ item.title }} {{ item.title }}
</view> </view>
<i class="iconfont icon-you"><uni-icons type="forward"></uni-icons></i> <i class="iconfont icon-you"
><uni-icons type="forward"></uni-icons
></i>
</view> </view>
</block> </block>
<view v-else class="backlog_no flex_a_c_j_sb"> <view v-else class="backlog_no flex_a_c_j_sb">
<view class="text">暂无更多消息</view> <view class="text">暂无更多消息</view>
<i class="iconfont icon-you"><uni-icons type="forward"></uni-icons></i> <i class="iconfont icon-you"
><uni-icons type="forward"></uni-icons
></i>
</view> </view>
</view> </view>
</view> </view>
<view class="my_task"> <view class="my_task">
<view class="task_title flex_a_c_j_sb"> <view class="task_title flex_a_c_j_sb">
<view class="title">工作管理</view> <view class="title">工作管理</view>
<view class="flex_a_c">更多 <view class="flex_a_c"
>更多
<view class="iconfont icon-you"> <view class="iconfont icon-you">
<uni-icons type="forward"></uni-icons> <uni-icons type="forward"></uni-icons>
</view> </view>
@ -92,11 +113,15 @@
</view> </view>
</view> </view>
<view class="fast_track"> <view class="fast_track">
<block v-for="(item, index) in oaHomeData" :key="index"> <block v-for="(item, index) in oaHomeData" :key="index">
<view class="track_item" @click="navTwo(item.url, index)"> <view class="track_item" @click="navTwo(item.url, index)">
<u--image :showLoading="true" :src="item.icon" width="77.19rpx" height="77.19rpx"></u--image> <u--image
:showLoading="true"
:src="item.icon"
width="77.19rpx"
height="77.19rpx"
></u--image>
<view class="title">{{ item.text }}</view> <view class="title">{{ item.text }}</view>
</view> </view>
</block> </block>
@ -105,7 +130,8 @@
<view class="my_task"> <view class="my_task">
<view class="task_title flex_a_c_j_sb"> <view class="task_title flex_a_c_j_sb">
<view class="title">配送信息</view> <view class="title">配送信息</view>
<view class="flex_a_c" @click="goOrderList">更多 <view class="flex_a_c" @click="goOrderList"
>更多
<view class="iconfont icon-you"> <view class="iconfont icon-you">
<uni-icons type="forward"></uni-icons> <uni-icons type="forward"></uni-icons>
</view> </view>
@ -116,13 +142,20 @@
<taskCard></taskCard> <taskCard></taskCard>
</block> --> </block> -->
<view v-if="orderList.length > 0"> <view v-if="orderList.length > 0">
<logistiBriefCard v-for="(item, index) in orderList" :key="index" :goodsInfo="item"> <globalPopup ref="globalPopup"></globalPopup>
<logistiBriefCard
v-for="(item, index) in orderList"
:key="index"
:goodsInfo="item"
>
</logistiBriefCard> </logistiBriefCard>
</view> </view>
<view v-else class="no_task"> <view v-else class="no_task">
<view class="title">暂无配送信息</view> <view class="title">暂无配送信息</view>
<view class="tips" v-if="!$store.state.app.token">登录后查看配送信息详情</view> <view class="tips" v-if="!$store.state.app.token"
>登录后查看配送信息详情</view
>
</view> </view>
<!-- <view class="head_title flex_a_c_j_sb"> <!-- <view class="head_title flex_a_c_j_sb">
<view class="">我的任务</view> <view class="">我的任务</view>
@ -161,88 +194,106 @@
</template> </template>
<script> <script>
import logistiBriefCard from "@/components/logistiComptent/logistiCard/logistiBriefCard.vue" import logistiBriefCard from "@/components/logistiComptent/logistiCard/logistiBriefCard.vue";
import { import globalPopup from "@/components/GlobalPopup/GlobalPopup.vue";
getList import { getList } from "@/api/logistics.js";
} from "@/api/logistics.js" import { Toast } from "@/libs/uniApi.js";
import { import { oaHomeData } from "@/static/server/server.js";
Toast import { noticeList } from "@/api/notice.js";
} from '@/libs/uniApi.js'
import {
oaHomeData
} from '@/static/server/server.js'
import {
noticeList
} from "@/api/notice.js"
// import tabbar from '../components/tabbar' // import tabbar from '../components/tabbar'
import { import {
getIndexListAPI, getIndexListAPI,
getTaskListAPI, getTaskListAPI,
getMyTaskListAPI, getMyTaskListAPI,
getApproveListAPI, getApproveListAPI,
getUserIndexAPI getUserIndexAPI,
} from '@/api/oaApi.js' } from "@/api/oaApi.js";
//#ifdef APP-PLUS
var jpushModule = uni.requireNativePlugin("JG-JPush");
// #endif
export default { export default {
components: { components: {
// tabbar // tabbar
logistiBriefCard logistiBriefCard,
globalPopup,
}, },
data() { data() {
return { return {
notArr: [],
orderList: [], orderList: [],
oaHomeData: [], oaHomeData: [],
src: 'https://cdn.uviewui.com/uview/album/1.jpg', src: "https://cdn.uviewui.com/uview/album/1.jpg",
assessData: [{ assessData: [
num: '0', {
name: '任务' num: "0",
name: "任务",
}, },
{ {
num: '0', num: "0",
name: '已完成' name: "已完成",
}, },
{ {
num: '0', num: "0",
name: '未完成' name: "未完成",
}, },
{ {
num: '0%', num: "0%",
name: '完成率' name: "完成率",
}, },
], ],
project: {}, project: {},
task: {}, task: {},
page: 1, page: 1,
myTaskList: [], myTaskList: [],
flowState: '#47B347', // flowState: "#47B347", //
priority: '', // priority: "", //
myOaInfo: { myOaInfo: {
avatar: '', avatar: "",
nickname: '', nickname: "",
mobile: '', mobile: "",
did_name: '', did_name: "",
label_name: '', label_name: "",
}, },
ApproveList: [] ApproveList: [],
} };
}, },
onReady() { onReady() {
uni.setNavigationBarColor({ uni.setNavigationBarColor({
frontColor: '#ffffff', frontColor: "#ffffff",
backgroundColor: '#3175f9' backgroundColor: "#3175f9",
}) });
},
onLoad() {
//#ifdef APP-PLUS
const audioContext = uni.createInnerAudioContext();
audioContext.volume = 1;
audioContext.src = "../../static/mp3/order.mp3";
let that = this;
jpushModule.addNotificationListener(function (result) {
if (!that.notArr.includes(result.messageID)) {
that.$refs.globalPopup.showPopu();
that.getOrderList();
console.log("idnex的");
audioContext.play();
}
that.notArr.push(result.messageID);
});
// #endif
}, },
onLoad() {},
onShow() { onShow() {
// this.getUserIndex() // this.getUserIndex()
// this.getIndexList() // this.getIndexList()
this.getApproveList() this.getApproveList();
this.initUserInfo() this.initUserInfo();
this.showToask() this.showToask();
this.initOaHomeDada() this.initOaHomeDada();
this.getOrderList() this.getOrderList();
}, },
computed: {}, computed: {},
methods: { methods: {
test() {
this.$refs.globalPopup.showPopu();
},
// test() { // test() {
// wx.chooseMessageFile({ // wx.chooseMessageFile({
// count: 1, // // count: 1, //
@ -256,90 +307,91 @@
// }) // })
// }, // },
async getOrderList() { async getOrderList() {
let id = JSON.parse(uni.getStorageSync('USER_INFO')).id || "" let id = JSON.parse(uni.getStorageSync("USER_INFO")).id || "";
let res = await getList({ let res = await getList({
courier_id: id courier_id: id,
// courier_id: 167 // courier_id: 167
}) });
this.orderList = res.data.data this.orderList = res.data.data;
}, },
goOrderList() { goOrderList() {
uni.navigateTo({ uni.navigateTo({
url: "/pages/logistics/index" url: "/pages/logistics/index",
}) });
}, },
initUserInfo() { initUserInfo() {
this.$store.state.app.userInfo ? this.myOaInfo = this.$store.state.app.userInfo : this.myOaInfo.avatar = this.$store.state.app.userInfo
''; ? (this.myOaInfo = this.$store.state.app.userInfo)
: (this.myOaInfo.avatar = "");
}, },
initOaHomeDada() { initOaHomeDada() {
if (this.$store.state.app.userInfo.admin_id == 0) { // if (this.$store.state.app.userInfo.admin_id == 0) {
let arr = oaHomeData.filter(item => !item.admin); // //
let arr = oaHomeData.filter((item) => !item.admin); //
this.oaHomeData = arr; this.oaHomeData = arr;
} else { } else {
// this.oaHomeData = oaHomeData; // this.oaHomeData = oaHomeData;
let arr = oaHomeData.filter(item => !item.captain); // let arr = oaHomeData.filter((item) => !item.captain); //
this.oaHomeData = arr; this.oaHomeData = arr;
} }
if (this.$store.state.app.userInfo?.company?.company_type_name == '平台公司') { if (
this.oaHomeData = this.oaHomeData.filter(item => { this.$store.state.app.userInfo?.company?.company_type_name == "平台公司"
return item.text == '人员管理' ? false : true; ) {
}) this.oaHomeData = this.oaHomeData.filter((item) => {
return item.text == "人员管理" ? false : true;
});
} }
// //
if (this.oaHomeData >= 8) { if (this.oaHomeData >= 8) {
this.oaHomeData[7] = this.oaHomeData[this.oaHomeData.length - 1]; this.oaHomeData[7] = this.oaHomeData[this.oaHomeData.length - 1];
} else { } else {
this.oaHomeData.splice(this.oaHomeData.length - 1, 1) this.oaHomeData.splice(this.oaHomeData.length - 1, 1);
} }
}, },
async getApproveList() { async getApproveList() {
const res = await noticeList({ const res = await noticeList({
keyword: '', keyword: "",
page_no: 1, page_no: 1,
page_size: 2 page_size: 2,
}) });
this.ApproveList = res.data.lists this.ApproveList = res.data.lists;
}, },
async getIndexList() { async getIndexList() {
const { const { project, task } = await getIndexListAPI();
project, console.log(task, "222");
task this.assessData[0].num = project.count;
} = await getIndexListAPI() this.assessData[1].num = project.count_ok;
console.log(task, '222'); this.assessData[2].num = project.count_no;
this.assessData[0].num = project.count this.assessData[3].num = project.count_lv + "%";
this.assessData[1].num = project.count_ok this.assessData[4].num = task.count;
this.assessData[2].num = project.count_no this.assessData[5].num = task.count_ok;
this.assessData[3].num = project.count_lv + '%' this.assessData[6].num = task.count_no;
this.assessData[4].num = task.count this.assessData[7].num = task.count_lv + "%";
this.assessData[5].num = task.count_ok this.myTaskList = task.list;
this.assessData[6].num = task.count_no
this.assessData[7].num = task.count_lv + '%'
this.myTaskList = task.list
}, },
async getMyTask() { async getMyTask() {
let data = { let data = {
page: this.page, page: this.page,
limit: 10 limit: 10,
} };
const res = getMyTaskListAPI(data) const res = getMyTaskListAPI(data);
}, },
naviTaskDetails(id) { naviTaskDetails(id) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/views/task_details?id=${id}` url: `/pages/views/task_details?id=${id}`,
}) });
}, },
navTo(url) { navTo(url) {
url ? url
uni.navigateTo({ ? uni.navigateTo({
url: url, url: url,
fail() { fail() {
uni.switchTab({ uni.switchTab({
url: url url: url,
});
},
}) })
} : Toast("暂未开放");
}) : Toast('暂未开放')
}, },
navTwo(url, key) { navTwo(url, key) {
let role_id = this.$store.state.app?.userInfo?.admin?.role_id || null; let role_id = this.$store.state.app?.userInfo?.admin?.role_id || null;
@ -347,8 +399,8 @@
if (role_id && role_id[0] == 9) { if (role_id && role_id[0] == 9) {
if (arr.indexOf(key) == -1) { if (arr.indexOf(key) == -1) {
Toast('请先成立公司后开放') Toast("请先成立公司后开放");
return false return false;
} }
} }
this.navTo(url); this.navTo(url);
@ -356,39 +408,39 @@
// //
clickNotice(e) { clickNotice(e) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/oaNews/oaNews?id=${e}` url: `/pages/oaNews/oaNews?id=${e}`,
}) });
}, },
// , // ,
showToask() { showToask() {
if (!this.$store.state.app.token) { if (!this.$store.state.app.token) {
this.assessData = this.assessData.map(item => { this.assessData = this.assessData.map((item) => {
item.num = '*'; item.num = "*";
return item; return item;
}) });
} else { } else {
// //
this.assessData = this.assessData.map(item => { this.assessData = this.assessData.map((item) => {
item.num = '0'; item.num = "0";
return item; return item;
}) });
} }
}, },
login() { login() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/oaLogin/oaLogin' url: "/pages/oaLogin/oaLogin",
}) });
}, },
async getUserIndex() { async getUserIndex() {
const res = await getUserIndexAPI() const res = await getUserIndexAPI();
this.myOaInfo = res this.myOaInfo = res;
} },
}, },
onPullDownRefresh() { onPullDownRefresh() {
// this.getIndexList() // this.getIndexList()
uni.stopPullDownRefresh() uni.stopPullDownRefresh();
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@ -415,7 +467,7 @@
.head_img { .head_img {
position: relative; position: relative;
background-color: #FF7C32; background-color: #ff7c32;
width: 100%; width: 100%;
height: 105.14rpx; height: 105.14rpx;
line-height: 105.14rpx; line-height: 105.14rpx;

View File

@ -21,12 +21,14 @@
</view> </view>
<input <input
v-if="current == 0" v-if="current == 0"
@click="getId"
class="mobile item" class="mobile item"
v-model="formData.account" v-model="formData.account"
placeholder="输入账号" placeholder="输入账号"
/> />
<input <input
v-if="current == 0" v-if="current == 0"
@click="getId"
class="mobile item" class="mobile item"
v-model="formData.password" v-model="formData.password"
maxlength="26" maxlength="26"
@ -108,6 +110,19 @@ export default {
this.current = e.index; this.current = e.index;
this.formData.scene = e.index + 1; this.formData.scene = e.index + 1;
}, },
// id
getId () {
// #ifdef APP-PLUS
if (this.formData.register_id) return
jpushModule.initJPushService()
jpushModule.getRegistrationID(result => {
// id
this.formData.register_id = result.registerID || 0
console.log("设备----", this.formData)
})
// #endif
},
async login () { async login () {
if (!this.formData.account) return Toast('账号不能为空'); if (!this.formData.account) return Toast('账号不能为空');
if (this.formData.scene == 1 && !this.formData.password) return Toast('密码不能为空'); if (this.formData.scene == 1 && !this.formData.password) return Toast('密码不能为空');
@ -124,7 +139,9 @@ export default {
user: data, user: data,
token: res.data.token token: res.data.token
}) })
let { data } = await userInfo(); let {
data
} = await userInfo();
this.$store.commit('setUserInfo', data); this.$store.commit('setUserInfo', data);
uni.hideLoading() uni.hideLoading()
if (data.is_new_user) { if (data.is_new_user) {
@ -142,7 +159,6 @@ export default {
} else uni.navigateTo({ } else uni.navigateTo({
url: '/pages/updatePasswprd/updatePasswprd' url: '/pages/updatePasswprd/updatePasswprd'
}); });
}, },
initTerminal () { initTerminal () {
// #ifndef APP-PLUS // #ifndef APP-PLUS
@ -199,14 +215,7 @@ export default {
} }
}, },
mounted () { mounted () {
// // #ifdef APP-PLUS
// jpushModule.initJPushService()
// jpushModule.getRegistrationID(result => {
// // id
// this.formData.register_id = result.registerID
// console.log("----", this.formData)
// })
// // #endif
this.initTerminal(); this.initTerminal();
} }

View File

@ -1,6 +1,6 @@
// 引用方式 // 引用方式
var jpushModule = uni.requireNativePlugin("JG-JPush"); var jpushModule = uni.requireNativePlugin("JG-JPush");
console.log('【sk】【引用方式】【jpushModule】【requireNativePlugin】') // console.log('【sk】【引用方式】【jpushModule】【requireNativePlugin】')
// 开启 debug 模式,默认是关闭 // 开启 debug 模式,默认是关闭
function openDebug() { function openDebug() {