Commit 5c9cfe35 authored by chuan.liu's avatar chuan.liu

违约处理 违约处理详情联调

parent 2bcd2c35
......@@ -8,30 +8,34 @@
<view class="scroll-item">
<view class="top">
<text class="title-no">TP10000021</text>
<text class="title-no">{{detail.id}}</text>
<view class="title-info">
<text class="order-date">2021-08-06 05:14</text>
<text class="item-block-btn__text title-info__status-fail__text">失效</text>
<text class="order-date">{{detail.createDate}}</text>
<text class="item-block-btn__text">{{detail.statusName}}</text>
</view>
</view>
<view class="middle view">
<view class="middle-title">
<text class="middle-title__text">处罚说明:</text>
<text class="middle-title__text">处罚说明:{{detail.notes}}</text>
</view>
<view class="text-block-box">
<view class="text-block-box" v-for="(item2,index2) in detail.punishEntries" :key="index2">
<view class="text-block">
<text class="middle-date">类型</text>
<text class="middle-date-des">黄牌警告</text>
<text class="middle-date-des">{{item2.punishTypeName}}</text>
</view>
<view class="text-block" v-if="item2.terminalName">
<text class="middle-date">终端名称</text>
<text class="middle-date-des">{{item2.terminalName}}</text>
</view>
<view class="text-block">
<text class="middle-date">截止时间</text>
<text class="middle-date-des">2021-08-06</text>
</view>
<view class="text-block text-block-last">
<text class="middle-date">有无异议</text>
<text class="middle-date-des">无异议</text>
<text class="middle-date-des">{{item2.punishEndTime}}</text>
</view>
</view>
<view class="text-block text-block-last">
<text class="middle-date">有无异议</text>
<text class="middle-date-des">{{detail.appealNotes=='1'?'有异议':'无异议'}}</text>
</view>
</view>
</view>
</view>
......@@ -44,12 +48,8 @@
} from 'vuex'
import {
apiSalesPlanTypesSelect
} from '@/servers/common.js'
import {
apiSalesPlan
} from '@/servers/purchasePlan.js'
apiGetProcessOrderDetail
} from '@/servers/breakwords.js'
export default {
......@@ -57,11 +57,9 @@
return {
loadingText: '加载中...',
condition: {
id: ''
},
lists: [{
'sss': '2'
}],
detail: {}
}
},
computed: {
......@@ -81,13 +79,28 @@
'height': `${this.sysinfo.safeArea.height - 44 - 30 }px`
}
},
},
created() {},
onLoad(option) {
console.log('breakwords-handle-detail', option)
if (option && option.id) {
this.condition.id = option.id
this.getOrderDetail()
}
},
methods: {
}
async getOrderDetail() {
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const res = await apiGetProcessOrderDetail(this.condition)
uni.hideLoading();
this.detail = res.data
}
},
}
</script>
......@@ -210,6 +223,8 @@
.text-block-box {
display: flex;
flex-direction: column;
border-bottom: 1px solid #F4F5F6;
margin-bottom: 30rpx;
}
.middle-date-right {
......
......@@ -7,24 +7,25 @@
<view class="main" :style="mainHeight">
<view class="navs-block">
<view class="navs-tab">
<view class="navs-tab-item" @click="checkTab(0)">
<picker class="search-type-text" @change="bindPickerYearChange" mode="date"
:value="condition.RT_GJAHR[0].LOW" fields='year'>
<text class="uni-input-text">{{condition.RT_GJAHR[0].LOW}}</text>
<view class="navs-tab-item">
<picker class="search-type-text" @change="bindPickerTypesChange" range-key='name'
mode="selector" :value="punishTypeSelected.name" :range="selectDataOptions.PunishType">
<text class="uni-input-text">{{punishTypeSelected.name}}</text>
</picker>
<image class="icon-arrow-down" src="@/static/image/arrow_down@3x.png" mode=""></image>
</view>
<view class="navs-tab-item">
<picker class="search-type-text" @change="bindPickerYearChange" mode="date"
:value="condition.RT_GJAHR[0].LOW" fields='year'>
<text class="uni-input-text">{{condition.RT_GJAHR[0].LOW}}</text>
<picker class="search-type-text" @change="bindPickerStatusChange" range-key='name'
mode="selector" :value="orderStatusSelected.name"
:range="selectDataOptions.ProcessOrderStatus">
<text class="uni-input-text">{{orderStatusSelected.name}}</text>
</picker>
<image class="icon-arrow-down" src="@/static/image/arrow_down@3x.png" mode=""></image>
</view>
<view class="navs-tab-item" @click="checkTab(1)">
<view class="navs-tab-item">
<picker class="search-type-text" @change="bindPickerYearChange" mode="date"
:value="condition.RT_GJAHR[0].LOW" fields='year'>
<text class="uni-input-text">年度 {{condition.RT_GJAHR[0].LOW}}</text>
:value="condition.year" fields='year'>
<text class="uni-input-text">年度 {{condition.year}}</text>
</picker>
<image class="icon-arrow-down" src="@/static/image/arrow_down@3x.png" mode=""></image>
</view>
......@@ -39,26 +40,30 @@
<cell v-for="(item,index) in lists" :key="index">
<view class="scroll-item">
<view class="top">
<text class="title-no">TP10000021</text>
<text class="title-no">{{item.id}}</text>
<view class="title-info">
<text class="order-date">2021-08-06 05:14</text>
<text class="item-block-btn__text title-info__status-fail__text">失效</text>
<text class="order-date">{{item.createDate}}</text>
<text class="item-block-btn__text">{{item.statusName}}</text>
</view>
</view>
<view class="middle view">
<view class="middle-title">
<text class="middle-title__text">处罚说明:</text>
<text class="middle-title__text">处罚说明:{{item.notes}}</text>
</view>
<view class="text-block-box">
<view class="text-block-box" v-for="(item2,index2) in item.punishEntries" :key="index2">
<view class="text-block">
<text class="middle-date">类型</text>
<text class="middle-date-des">黄牌警告</text>
<text class="middle-date-des">{{item2.punishTypeName}}</text>
</view>
<view class="text-block" v-if="item2.terminalName">
<text class="middle-date">终端名称</text>
<text class="middle-date-des">{{item2.terminalName}}</text>
</view>
<view class="text-block text-block-last">
<view class="middle-date-right">
<text class="middle-date">截止时间</text>
</view>
<text class="middle-date-des middle-date-right">2021-08-06</text>
<text class="middle-date-des middle-date-right">{{item2.punishEndTime}}</text>
</view>
</view>
</view>
......@@ -89,13 +94,11 @@
mapState
} from 'vuex'
import {
apiSalesPlanTypesSelect
} from '@/servers/common.js'
import {
apiSalesPlan
} from '@/servers/purchasePlan.js'
apiGetDictionary,
apiGetProcessOrder,
} from '@/servers/breakwords.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
......@@ -107,24 +110,13 @@
loadingText: '加载中...',
refreshing: false,
condition: {
MV_BP: '0081000010',
ROLE: 'WLYALL',
RT_GJAHR: [{
SIGN: 'I',
OPTION: 'EQ',
LOW: '',
HIGH: ''
}],
RT_PLAN_TYPE: [{
SIGN: 'I',
OPTION: 'EQ',
LOW: '',
HIGH: ''
}]
year: '',
punishTypes: [],
statusList: []
},
page: {
"PAGE": "1",
"PAGESIZE": "10",
"currentPage": "1",
"pageSize": "10",
},
loadParams: {
total: 0,
......@@ -134,10 +126,20 @@
},
selectedSalePlan: {},
selectedSalePlanTypes: [],
punishTypeSelected: {
'code': '',
'name': '全部类型'
},
orderStatusSelected: {
'code': '',
'name': '全部状态'
},
selectDataOptions: {
'PunishType': [],
'ProcessOrderStatus': [],
},
typesIndex: 0,
lists: [{
'sss': '2'
}],
lists: [],
}
},
computed: {
......@@ -160,11 +162,22 @@
},
created() {
this.condition.RT_GJAHR[0].LOW = timeFormat(new Date(), 'yyyy')
this.condition.MV_BP = '0081000010' || this.userInfo.code
this.condition.year = timeFormat(new Date(), 'yyyy')
// 处罚类型
this.getDictionary('PunishType')
// 任务单状态
this.getDictionary('ProcessOrderStatus')
this.getProcessOrder()
},
methods: {
async getSalesPlan(isRefresh) {
async getDictionary(key) {
const params = {
dictionaryKey: key
}
const res = await apiGetDictionary(params)
this.selectDataOptions[key] = res.data
},
async getProcessOrder(isRefresh) {
if (this.loadParams.isDone) {
return
}
......@@ -180,31 +193,22 @@
setTimeout(function() {
uni.hideLoading();
}, 2000);
// const res = await apiSalesPlan(params)
const res = []
const res = await apiGetProcessOrder(params)
uni.hideLoading();
const {
lt_result,
page,
pagesize,
total
} = res
this.page.PAGE = page
this.page.PAGESIZE = pagesize
this.loadParams.total = total
this.loadParams.totalPage = Math.ceil(total * 1 / this.page.PAGESIZE * 1)
const dataMap = lt_result && lt_result.map((item) => {
item.checked = false
return item
})
totalNumberOfResults,
numberOfPages
} = res.data.pagination
this.loadParams.total = totalNumberOfResults
this.loadParams.totalPage = numberOfPages
if (isRefresh) {
this.lists = dataMap
this.lists = res.data.results
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(dataMap)
this.lists = this.lists.concat(res.data.results)
}
setTimeout(() => {
......@@ -215,7 +219,7 @@
refresh(e) {
this.refreshing = true;
this.reset()
this.getSalesPlan(true)
this.getProcessOrder(true)
// #ifdef APP-NVUE
try {
// console.log('-------', this.$refs.list)
......@@ -228,9 +232,9 @@
},
scrolltolower() {
console.log('onReachBottom');
if (this.page.PAGE < this.loadParams.totalPage) {
this.page.PAGE++
this.getSalesPlan()
if (this.page.currentPage < this.loadParams.totalPage) {
this.page.currentPage++
this.getProcessOrder()
} else {
this.loadParams.isDone = true
this.loadingText = '-- 到底了 --'
......@@ -243,42 +247,30 @@
isDone: false,
isRefresh: false
}
this.page.PAGE = 1
this.page.currentPage = 1
this.lists = []
this.loadingText = '加载中'
},
async getSalesPlanTypes() {
const res = await apiSalesPlanTypesSelect()
this.selectedSalePlanTypes = res.DATA
this.selectedSalePlan = this.selectedSalePlanTypes[this.typesIndex]
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].KEY
this.getSalesPlan()
},
bindPickerTypesChange(e) {
console.log('bindPickerTypesChange', e.detail.value)
this.typesIndex = e.detail.value
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].KEY
this.getSalesPlan()
this.punishTypeSelected = this.selectDataOptions['PunishType'][e.detail.value]
this.condition.punishTypes[0] = this.punishTypeSelected.code
this.getProcessOrder(true)
},
bindPickerStatusChange(e) {
console.log('bindPickerStatusChange', e.detail.value)
this.orderStatusSelected = this.selectDataOptions['ProcessOrderStatus'][e.detail.value]
this.condition.statusList[0] = this.orderStatusSelected.code
this.getProcessOrder(true)
},
bindPickerYearChange(e) {
console.log('bindPickerYearChange', e.detail.value)
this.condition.RT_GJAHR[0].LOW = e.detail.value
this.getSalesPlan()
},
handleClick(e, content, index) {
console.log('click当前索引:', e, content, index);
},
nextStep() {
this.$emit('click', 'orderUpload')
},
preStep() {
uni.switchTab({
url: `/pages/go-order/go-order`
})
this.condition.year = e.detail.value
this.getProcessOrder(true)
},
checkDetal(item) {
uni.navigateTo({
url: `/pages/breakwords-handle-detail/breakwords-handle-detail`
url: `/pages/breakwords-handle-detail/breakwords-handle-detail?id=${item.id}`
})
}
}
......@@ -321,6 +313,7 @@
.scroll-area {
background: #f0f4f5;
padding: 0 16rpx;
overflow-y: scroll;
}
.navs-block {
......
......@@ -88,4 +88,24 @@ export async function apiGetSalesAreaAccountList(params) {
export async function apiGetMissionList(params) {
const res = await apiHelper.post('/wmdpwebservices/backlog/search/distributer', params)
return res
}
/**
* 查询处理单
* @param name 账户名
* @returns {Promise<AxiosResponse<T>>}
*/
export async function apiGetProcessOrder(params) {
const res = await apiHelper.post('/wmdpwebservices/processOrder/search', params)
return res
}
/**
* 处理单详情查询
* @param name 账户名
* @returns {Promise<AxiosResponse<T>>}
*/
export async function apiGetProcessOrderDetail(params) {
const res = await apiHelper.post('/wmdpwebservices/processOrder/info', params)
return res
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment