bug修复

This commit is contained in:
zmj 2023-11-10 16:59:01 +08:00
parent 47a517b653
commit 0c93989f39
6 changed files with 247 additions and 182 deletions

View File

@ -307,6 +307,9 @@
takeGoods,
doneDelivery
} from "@/api/logistics.js"
import {
Toast
} from "@/libs/uniApi";
export default {
props: ['goodsInfo'],
data() {
@ -360,8 +363,13 @@
order_id: this.goodsInfo.order_id,
order_sn: sn
}).then(res => {
console.log(res)
this.$emit('showTost')
this.$emit('getlist')
}).catch(err => {
Toast(err.msg)
// console.log(err, 65656)
})
},

View File

@ -123,8 +123,9 @@
taskRoleTypeList: ['town_task_type', 'town_task_type_marketing_director', 'town_task_type_master'],
townServiceList: [44, 45, 46, 47, 48, 49, 50], //
navToTownServiceList: [44, 45, 46, 48, 49, 50], // /subpkg/townTask/townTask 0
navToTownMarketList: [51, 52, 53, 54, 55, 57, 58, 59], // /subpkg/townTask/townTask 1
navToVillageList: [62, 63, 64, 65, 66, 68] // /subpkg/townTask/townTask 1
navToTownMarketList: [51, 52, 53, 54, 55, 56, 57, 58, 59], // /subpkg/townTask/townTask 1
navToVillageList: [62, 63, 64, 65, 66, 68, ], // /subpkg/townTask/townTask 1
navToVillageListA: [75, 77, 78, 79, 80, 81] // /subpkg/townTask/townTask 1
};
},
mounted() {
@ -146,6 +147,8 @@
} else Toast('暂未开放')
},
clickTask() {
if (this.isTimeInRange()) return Toast('任务正在结算中');
// if ((this.$props.datas.type != 31) && this.$props.datas.status !== 2 && this.$props.datas.status !== 1) {
// return this.$props.datas.status == 3 ? Toast('!') : Toast('!');
@ -162,6 +165,10 @@
return this.navTo(
`/subpkg/townTask/townTask?task_id=${this.$props.datas?.id}&type_value=${this.taskRoleTypeList[1]}`
);
if (this.navToVillageListA.includes(this.$props.datas.type))
return this.navTo(
`/subpkg/townTask/townTask?task_id=${this.$props.datas?.id}&type_value=${this.taskRoleTypeList[2]}`
);
switch (this.$props.datas.type) {
case 31:
if (this.$store.state.app.userInfo.admin_id) this.navTo(

View File

@ -331,24 +331,32 @@
qrqodeFn() {
let that = this
console.log(6666)
uni.scanCode({
onlyFromCamera: true,
success: function(res) {
that.takeGood(res.result)
}
});
},
// {}
takeGood(sn) {
console.log(takeGoods)
takeGoods({
logistics_id: this.goodsDetil.logistics.id,
order_id: this.goodsDetil.logistics.order_id,
order_sn: sn
}).then(res => {
}).then((res, err) => {
console.log(545454, err)
this.showToast()
setTimeout(() => {
uni.navigateBack()
}, 1000)
}).catch(err => {
Toast(err.msg)
console.log(err, 65656)
})
},

View File

@ -6,10 +6,20 @@
</u-skeleton>
</block>
<block v-else>
<u-tabs style="background-color: #0022C7;" :list="tabLists" @click="changeTypeCurrent" lineColor='white'
lineWidth='30' inactiveStyle='color:white' activeStyle="color:white"></u-tabs>
<u-empty v-if="list.length==0" icon="/static/img/empty/data.png" text="没有任务"></u-empty>
<view v-else class="task_list">
<!-- <taskCard class="task_card" v-for="item in 10" :key="item"></taskCard> -->
<task-item :datas="item" v-for="item in list" :key="item.id"></task-item>
<view class="" v-if="baseList.length">
<task-item :datas="item" v-for="item in baseList" :key="item.id"></task-item>
</view>
<view class="" v-else>
<u-empty icon="/static/img/empty/data.png" text="没有任务"></u-empty>
</view>
</view>
</block>
@ -35,7 +45,16 @@
},
data() {
return {
status: 2,
skeleton: false,
baseList: [],
tabLists: [{
name: '进行中',
id: 2
}, {
name: '已完成',
id: 3
}, ],
loadConfig: {
page: 1,
limit: 15,
@ -58,12 +77,21 @@
uni.$on('initOaTask', this.loadList);
},
methods: {
changeTypeCurrent(e) {
this.baseList = []
this.status = e.id
this.baseList = this.list.filter(item => item.status == this.status)
},
async loadList() {
let res = await taskLists({
limit: 15,
page: 1
});
this.list = res.data;
this.baseList = this.list.filter(item => item.status == this.status)
this.skeleton = false;
}
},

View File

@ -282,7 +282,7 @@
</u-radio-group>
</u-form-item>
<u-form-item labelWidth="auto" label="店铺进货渠道" borderBottom>
<u--input :readonly="readonly" type='number' v-model="formData1.incomingChannels"
<u--input :readonly="readonly" v-model="formData1.incomingChannels"
placeholder="请输入进货渠道"></u--input>
</u-form-item>
<u-form-item labelWidth="auto" label="有无仓储" borderBottom>

View File

@ -1,194 +1,208 @@
<template>
<view class="task_page">
<u-skeleton v-if="skeleton" :class="{'loading': skeleton}" :animate="true" title rows="3" rows-width="92%"
rowsHeight="56">
</u-skeleton>
<block v-else>
<view class="card">
<view class="c_title">{{`任务名称: ${taskInfo.title||''}`}}</view>
<view>{{taskInfo.content||''}}</view>
</view>
<view class="card" v-if="extend_info&&extend_info.target">
<view class="c_title">目标数量: {{extend_info.target}}</view>
</view>
<view class="card" v-if="extend_info&&extend_info.store_name">
<view class="c_title">指定商品: </view>
<view class="store">
<view class="store_name" v-for="(item, index) in extend_info.store_name" :key="index" @click="copyName(item)">
{{item}}
</view>
</view>
</view>
<view class="card">
<view class="c_title">判定条件:</view>
<view style="white-space: pre-line;">{{remark}}</view>
</view>
</block>
</view>
<view class="task_page">
<!-- {{taskInfo}} -->
<u-skeleton v-if="skeleton" :class="{'loading': skeleton}" :animate="true" title rows="3" rows-width="92%"
rowsHeight="56">
</u-skeleton>
<block v-else>
<view class="card">
<view class="c_title">{{`任务名称: ${taskInfo.title||''}`}}</view>
<view>{{taskInfo.content||''}}</view>
</view>
<view class="card" v-if="extend_info&&extend_info.target">
<view class="c_title">目标数量: {{extend_info.target}}</view>
</view>
<view class="card" v-if="extend_info&&extend_info.store_name">
<view class="c_title">指定商品: </view>
<view class="store">
<view class="store_name" v-for="(item, index) in extend_info.store_name" :key="index"
@click="copyName(item)">
{{item}}
</view>
</view>
</view>
<view class="card">
<view class="c_title">判定条件:</view>
<view style="white-space: pre-line;">{{remark}}</view>
</view>
</block>
</view>
</template>
<script>
import { Toast } from "../../libs/uniApi";
import { townTaskDetails } from "@/api/task.js"
import { dictDataListsTypeValue } from "@/api/oaPbulic.js"
export default {
data() {
return {
taskInfo:{
id: '',
title: '',
content: '',
extend: {}
},
extend_info: null,
remark: '',
skeleton: true,
type_value: 'town_task_type', //
}
},
onLoad(options) {
options.task_id?this.taskInfo.id=options.task_id:null;
options.type_value?this.type_value=options.type_value:null;
this.initTask();
},
onShow() {},
methods: {
async initTask(){
this.skeleton = true;
let res = await townTaskDetails({
id: this.taskInfo.id
});
if(res.data?.template_info?.extend){
if(res.data?.template_info?.extend?.goods_id && typeof res.data?.template_info?.extend?.goods_id!=='object'){
res.data.template_info.extend.goods_id = res.data?.template_info?.extend?.goods_id.split(',');
res.data.template_info.extend.store_name = res.data?.template_info?.extend?.store_name.split(';')||[];
}
this.extend_info = res.data?.template_info?.extend;
}
this.taskInfo = res.data;
let dict = await dictDataListsTypeValue({
type_value: this.type_value
})
dict.data.forEach((item)=>{
if(item.id==this.taskInfo.type){
this.remark = item.remark;
}
})
this.skeleton = false;
},
copyName(str = "", type = "商品名称") {
if (str) uni.setClipboardData({
data: str + "",
success: (e) => {
Toast(type + '已复制')
},
fail: (e) => {
Toast('复制失败')
}
})
}
},
}
import {
Toast
} from "../../libs/uniApi";
import {
townTaskDetails
} from "@/api/task.js"
import {
dictDataListsTypeValue
} from "@/api/oaPbulic.js"
export default {
data() {
return {
taskInfo: {
id: '',
title: '',
content: '',
extend: {}
},
extend_info: null,
remark: '',
skeleton: true,
type_value: 'town_task_type', //
}
},
onLoad(options) {
options.task_id ? this.taskInfo.id = options.task_id : null;
options.type_value ? this.type_value = options.type_value : null;
this.initTask();
},
onShow() {},
methods: {
async initTask() {
this.skeleton = true;
let res = await townTaskDetails({
id: this.taskInfo.id
});
if (res.data?.template_info?.extend) {
if (res.data?.template_info?.extend?.goods_id && typeof res.data?.template_info?.extend
?.goods_id !== 'object') {
res.data.template_info.extend.goods_id = res.data?.template_info?.extend?.goods_id.split(',');
res.data.template_info.extend.store_name = res.data?.template_info?.extend?.store_name.split(
';') || [];
}
this.extend_info = res.data?.template_info?.extend;
}
this.taskInfo = res.data;
let dict = await dictDataListsTypeValue({
type_value: this.type_value
// type_value: 'town_task_type_master'
})
dict.data.forEach((item) => {
if (item.id == this.taskInfo.type) {
this.remark = item.remark;
}
})
this.skeleton = false;
},
copyName(str = "", type = "商品名称") {
if (str) uni.setClipboardData({
data: str + "",
success: (e) => {
Toast(type + '已复制')
},
fail: (e) => {
Toast('复制失败')
}
})
}
},
}
</script>
<style lang="scss">
.task_page {
padding-top: 30rpx;
.task_page {
padding-top: 30rpx;
.card {
margin: 0 auto;
margin-bottom: 28rpx;
width: 694rpx;
background-color: #fff;
border-radius: 26rpx;
padding: 28rpx;
.card {
margin: 0 auto;
margin-bottom: 28rpx;
width: 694rpx;
background-color: #fff;
border-radius: 26rpx;
padding: 28rpx;
.c_title {
font-size: 32rpx;
font-weight: bold;
color: #333333;
margin-bottom: 20rpx;
}
.c_title {
font-size: 32rpx;
font-weight: bold;
color: #333333;
margin-bottom: 20rpx;
}
.file {
display: flex;
justify-content: left;
flex-wrap: wrap;
.file {
display: flex;
justify-content: left;
flex-wrap: wrap;
&_item {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid #ccc;
border-radius: 10rpx;
overflow: hidden;
position: relative;
&_item {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid #ccc;
border-radius: 10rpx;
overflow: hidden;
position: relative;
.image {
width: 100%;
height: 100%;
}
.image {
width: 100%;
height: 100%;
}
.del {
position: absolute;
height: 40rpx;
width: 40rpx;
top: 10rpx;
right: 10rpx;
}
}
.del {
position: absolute;
height: 40rpx;
width: 40rpx;
top: 10rpx;
right: 10rpx;
}
}
&_btn {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
border-radius: 10rpx;
&_btn {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
border-radius: 10rpx;
image {
width: 100rpx;
height: 100rpx;
}
}
image {
width: 100rpx;
height: 100rpx;
}
}
&_empty {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid transparent;
}
}
.store{
display: flex;
flex-wrap: wrap;
font-size: 26rpx;
color: #0122c7;
margin-top: -10rpx;
&_name{
flex-shrink: 0;
padding: 8rpx;
border: 5rpx solid #0122c7;
border-radius: 10rpx;
background-color: rgba(#0122c7, 0.1);
margin-right: 10rpx;
margin-top: 10rpx;
}
}
}
.loading{
padding: 28rpx;
}
}
&_empty {
flex-shrink: 0;
width: 200rpx;
height: 200rpx;
margin: 0 auto;
margin-bottom: 16rpx;
border: 2px solid transparent;
}
}
.store {
display: flex;
flex-wrap: wrap;
font-size: 26rpx;
color: #0122c7;
margin-top: -10rpx;
&_name {
flex-shrink: 0;
padding: 8rpx;
border: 5rpx solid #0122c7;
border-radius: 10rpx;
background-color: rgba(#0122c7, 0.1);
margin-right: 10rpx;
margin-top: 10rpx;
}
}
}
.loading {
padding: 28rpx;
}
}
</style>