update
This commit is contained in:
parent
dce88d549e
commit
d23f7a9109
124
pages.json
124
pages.json
@ -29,7 +29,8 @@
|
||||
"subPackages": [ //分包加载配置
|
||||
{
|
||||
"root": "pages/authorityApproval",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "权限审批",
|
||||
@ -47,7 +48,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/auditingPop",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "jointlySign",
|
||||
"style": {
|
||||
"navigationBarTitleText": "会签"
|
||||
@ -75,7 +77,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/settlementApproval",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
@ -118,7 +121,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/operatingStatements",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "经营报表",
|
||||
@ -149,7 +153,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/walkAroundManager",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "上传走动式管理",
|
||||
@ -173,7 +178,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/tender",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "tender",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -209,7 +215,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/mbwa",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "mbwa",
|
||||
"style": {
|
||||
"navigationBarTitleText": "走动式管理",
|
||||
@ -238,7 +245,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/serviceAreaReimbursement",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "serviceAreaReimbursement",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -256,7 +264,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/dataSummary",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "dataSummary",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -280,7 +289,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/askForLeave",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "askForLeave",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -309,7 +319,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/officialDocManagement",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "officialDocManagement",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -338,7 +349,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/businessApproval",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "businessApproval",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -374,7 +386,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/everdayRenven",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": false,
|
||||
@ -420,7 +433,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/suggestion",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "suggestion",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -437,7 +451,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/projectWarning",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "分润比例切换"
|
||||
@ -455,7 +470,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/contract",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "contract",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -472,7 +488,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/cashAudit",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "list",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -495,7 +512,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/investment",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "investment",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -512,7 +530,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/publicity",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "publicity",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -529,7 +548,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/expenseApproval",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "expenseApproval",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -547,7 +567,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/commodity_temp",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -565,7 +586,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/serverpartshoptotalsummary",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -582,7 +604,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/shopmobilesummary",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -599,7 +622,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/endaccountreport",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -616,7 +640,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/abnormalauditreport",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -633,7 +658,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/serverpartreport",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -650,7 +676,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/abnormalauditsummary",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -667,7 +694,8 @@
|
||||
},
|
||||
{
|
||||
"root": "pages/autoTest/abnormalaudit",
|
||||
"pages": [{
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
@ -681,6 +709,43 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pages/ProductReview",
|
||||
"pages": [
|
||||
{
|
||||
"path": "ProductReview",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "商品审批"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "productDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品审批"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "newDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "商品审批"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "newApproval",
|
||||
"style": {
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTitleText": "商品审批"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "transferPage",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
@ -694,7 +759,8 @@
|
||||
"selectedColor": "#3295f9",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [{
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "static/images/tab/home.png",
|
||||
"selectedIconPath": "static/images/tab/homeActive.png",
|
||||
|
||||
166
pages/ProductReview/ProductReview.vue
Normal file
166
pages/ProductReview/ProductReview.vue
Normal file
@ -0,0 +1,166 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- <view style="flex: 1;overflow: hidden;" >
|
||||
<scroll-view scroll-y="true" style="height: 100%;width: 100%;" @scrolltolower="loadMore"> -->
|
||||
<view v-if="pageList.length > 0">
|
||||
<list-unit v-for="(item, index) in pageList" :key="index" :item="item" :i="index"
|
||||
@goDetail="goDetail"></list-unit>
|
||||
|
||||
</view>
|
||||
<view v-else-if="!pageData.isLoading" style="height: 100%;">
|
||||
<noFound :nodata="pageList.length > 0 ? false : true" />
|
||||
</view>
|
||||
<view class="load-more" v-if="pageList.length > 0">
|
||||
<text>{{ !pageData.isEnd ? '正在加载,请稍后...' : '——— 我是有底线的 ———' }}</text>
|
||||
</view>
|
||||
<!-- </scroll-view>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters, mapMutations } from 'vuex'
|
||||
import ListUnit from './components/businessUnit.vue'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pageData: {
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
isEnd: false,
|
||||
isLoading: true
|
||||
},
|
||||
pageList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
ListUnit
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters({
|
||||
reloading: 'shouldReLoadingList',
|
||||
users: 'getUser'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['shouldReLoadingList']),
|
||||
getList() {
|
||||
let _this = this
|
||||
|
||||
let req = {
|
||||
SearchParameter: {
|
||||
Accept_Code: "",
|
||||
BusinessProcess_StateSearch: "",
|
||||
Operation_Type: 6,
|
||||
UserId: this.users.UserId
|
||||
},
|
||||
PageIndex: _this.pageData.pageIndex,
|
||||
PageSize: _this.pageData.pageSize,
|
||||
}
|
||||
|
||||
console.log('reqreqreqreq', req);
|
||||
|
||||
|
||||
this.$request.$webPost('EShangApiMain/BusinessProcess/GetBusinessProcessList', req).then(res => {
|
||||
console.log('resada', res);
|
||||
if (res.Result_Code === 100) {
|
||||
let list = res.Result_Data.List
|
||||
if (list.length > 0) {
|
||||
_this.pageList = this.pageData.pageIndex == 1 ? list : [..._this.pageList, ...list]
|
||||
}
|
||||
if (list.length < _this.pageData.pageSize) { // 返回条数小于每页条数
|
||||
_this.pageData.isEnd = true
|
||||
}
|
||||
_this.$forceUpdate()
|
||||
} else {
|
||||
_this.pageList = []
|
||||
}
|
||||
uni.hideLoading()
|
||||
setTimeout(function () {
|
||||
_this.pageData.isLoading = false
|
||||
}, 500)
|
||||
})
|
||||
|
||||
// _this.$request.$get("GetCommdityFlowList",{
|
||||
// pageIndex: _this.pageData.pageIndex,
|
||||
// pageSize: _this.pageData.pageSize
|
||||
// }).then(res => {
|
||||
// if(!res.ResultCode ||res.ResultCode!='100'){
|
||||
// _this.pageList = []
|
||||
// }else{
|
||||
// let list = res.Data.List
|
||||
// if (list.length > 0) {
|
||||
// _this.pageList = this.pageData.pageIndex==1 ? list : [..._this.pageList,...list]
|
||||
// }
|
||||
// if (list.length < _this.pageData.pageSize) { // 返回条数小于每页条数
|
||||
// _this.pageData.isEnd = true
|
||||
// }
|
||||
// _this.$forceUpdate()
|
||||
// }
|
||||
// })
|
||||
},
|
||||
loadMore() {
|
||||
if (!this.pageData.isEnd) {
|
||||
this.pageData.pageIndex += 1
|
||||
this.getList()
|
||||
}
|
||||
},
|
||||
goDetail(item) {
|
||||
let pageName = ''
|
||||
this.$util.toNextRoute('navigateTo', "/pages/businessApproval/productDetail?id=" + item.HIGHWAYPROINST_ID)
|
||||
|
||||
},
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.pageData.pageIndex = 1
|
||||
this.pageData.isEnd = false
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
})
|
||||
this.getList()
|
||||
setTimeout(function () {
|
||||
uni.stopPullDownRefresh()
|
||||
}, 1000)
|
||||
},
|
||||
onReachBottom() {
|
||||
this.loadMore()
|
||||
},
|
||||
onShow() {
|
||||
let _this = this
|
||||
if (this.reloading) {
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
})
|
||||
_this.pageData.pageIndex = 1
|
||||
_this.pageData.isEnd = false
|
||||
_this.getList()
|
||||
this.shouldReLoadingList(false)
|
||||
}
|
||||
|
||||
},
|
||||
onLoad() {
|
||||
this.pageData.isLoading = true
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
})
|
||||
this.getList()
|
||||
},
|
||||
onUnload() {
|
||||
this.$util.addUserBehaviorNew()
|
||||
},
|
||||
onHide() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
/* height: 100%; */
|
||||
}
|
||||
</style>
|
||||
89
pages/ProductReview/components/businessUnit.vue
Normal file
89
pages/ProductReview/components/businessUnit.vue
Normal file
@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<div class="card" :class="item.SORTNUM == 0 ? 'conten-border' : ''" @tap='goDetail' v-if="item">
|
||||
<div class="uni-flex jc-between" >
|
||||
<p class="contentName">
|
||||
{{item.SERVERPART_NAME}}
|
||||
<!-- <span v-if="item.HIGHWAYPROINST_NEXTID=='3000'" style="color:#D73535;">【退】</span>
|
||||
<span v-else-if="item.HIGHWAYPROINST_NEXTID=='4000'" style="color:#D73535;">【移】</span> -->
|
||||
</p>
|
||||
<text class="typeText" :class="item.HIGHWAYPROINST_NEXTID=='9000' ? 'typeText-color' : ''">{{item.SORTNUM==0 ? '待我处理': proStatus[item.HIGHWAYPROINST_NEXTID]}}</text>
|
||||
</div>
|
||||
<div class="content-index">{{i+1}}</div>
|
||||
<view style="line-height: 1;" class="content-type-text">
|
||||
{{item.PROINST_NAME}}
|
||||
</view>
|
||||
<view class="content-box-cashpay">
|
||||
<text >{{item.PRODEF_NAME }}</text>
|
||||
|
||||
</view>
|
||||
<view class="bb1"></view>
|
||||
<view class="uni-flex align-center jc-between" v-if="item.ACTINST_NAME">
|
||||
|
||||
<view class="uni-flex jc-top" >
|
||||
<i class="B-icon A-icon"></i>
|
||||
<text class="content-span">{{item.ACTINST_NAME}}</text>
|
||||
</view>
|
||||
<text class="content-span" v-if="!item.STAFF_NAME">{{item.HIGHWAYPROINST_CREATEDATE}}</text>
|
||||
</view>
|
||||
<view class="uni-flex jc-between" v-if="item.STAFF_NAME">
|
||||
<view class="uni-flex align-top" >
|
||||
<text class="G-icon A-icon" ></text>
|
||||
<text class="content-span staff-text">{{item.STAFF_NAME}}</text>
|
||||
</view>
|
||||
<text class="content-span lh15">{{item.HIGHWAYPROINST_CREATEDATE}}</text>
|
||||
</view>
|
||||
<view class="uni-flex jc-end" v-if="!item.ACTINST_NAME && !item.STAFF_NAME">
|
||||
|
||||
<text class="content-span">{{item.HIGHWAYPROINST_CREATEDATE}}</text>
|
||||
</view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
item: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
i: {
|
||||
type: Number,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
proStatus: {
|
||||
1000: '待受理',
|
||||
2000: '办理中',
|
||||
3000: '已驳回',
|
||||
4000: '已移交',
|
||||
9000: '已审结'
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
methods: {
|
||||
goDetail () {
|
||||
this.$emit('goDetail', this.item)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import url('../../../common/css/listUnit.css');
|
||||
.content-box-cashpay {
|
||||
margin-top: 40rpx;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
padding-bottom: 16rpx;
|
||||
}
|
||||
.content-box-cashpay text {
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
</style>
|
||||
88
pages/ProductReview/components/newBusinessUnit.vue
Normal file
88
pages/ProductReview/components/newBusinessUnit.vue
Normal file
@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<div class="card" :class="item.SORTNUM == 0 ? 'conten-border' : ''" @tap='goDetail' v-if="item">
|
||||
<div class="uni-flex jc-between" >
|
||||
<p class="contentName">
|
||||
{{item.Serverpart_Name}}
|
||||
<!-- <span v-if="item.HIGHWAYPROINST_NEXTID=='3000'" style="color:#D73535;">【退】</span>
|
||||
<span v-else-if="item.HIGHWAYPROINST_NEXTID=='4000'" style="color:#D73535;">【移】</span> -->
|
||||
</p>
|
||||
<text class="typeText" :class="item.BusinessProcess_State=='9000' ? 'typeText-color' : ''">{{proStatus[item.BusinessProcess_State]}}</text>
|
||||
</div>
|
||||
<div class="content-index">{{i+1}}</div>
|
||||
<!-- <view style="line-height: 1;" class="content-type-text">-->
|
||||
<!-- {{item.PROINST_NAME}}1-->
|
||||
<!-- </view>-->
|
||||
<view class="content-box-cashpay">
|
||||
<text >{{item.BusinessProcess_Name}}</text>
|
||||
|
||||
</view>
|
||||
<view class="bb1"></view>
|
||||
<view class="uni-flex align-center jc-between" v-if="item.ACTINST_NAME">
|
||||
|
||||
<view class="uni-flex jc-top" >
|
||||
<i class="B-icon A-icon"></i>
|
||||
<text class="content-span">{{item.ACTINST_NAME}}2</text>
|
||||
</view>
|
||||
<text class="content-span" v-if="!item.STAFF_NAME">3{{item.HIGHWAYPROINST_CREATEDATE}}</text>
|
||||
</view>
|
||||
<view class="uni-flex jc-between" v-if="item.Staff_Name">
|
||||
<view class="uni-flex align-top" >
|
||||
<text class="G-icon A-icon" ></text>
|
||||
<text class="content-span staff-text">{{item.Staff_Name}}</text>
|
||||
</view>
|
||||
<!-- <text class="content-span lh15">5{{item.HIGHWAYPROINST_CREATEDATE}}</text>-->
|
||||
<view class="uni-flex jc-end" v-if="!item.ACTINST_NAME && !item.STAFF_NAME">
|
||||
<text class="content-span">{{item.BusinessProcess_StartDate}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
item: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
i: {
|
||||
type: Number,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
proStatus: {
|
||||
2000: '待我处理',
|
||||
3000: '待我处理',
|
||||
9000: '已审结',
|
||||
9999: '已否决',
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
methods: {
|
||||
goDetail () {
|
||||
this.$emit('goDetail', this.item)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import url('../../../common/css/listUnit.css');
|
||||
.content-box-cashpay {
|
||||
margin-top: 40rpx;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
padding-bottom: 16rpx;
|
||||
}
|
||||
.content-box-cashpay text {
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
</style>
|
||||
147
pages/ProductReview/newApproval.vue
Normal file
147
pages/ProductReview/newApproval.vue
Normal file
@ -0,0 +1,147 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- <view style="flex: 1;overflow: hidden;" >
|
||||
<scroll-view scroll-y="true" style="height: 100%;width: 100%;" @scrolltolower="loadMore"> -->
|
||||
<view v-if="pageList.length>0">
|
||||
<list-unit v-for="(item,index) in pageList" :key="index" :item="item" :i="index" @goDetail="goDetail"></list-unit>
|
||||
</view>
|
||||
<view v-else-if="!pageData.isLoading" style="height: 100%;">
|
||||
<noFound :nodata="pageList.length>0 ? false : true"/>
|
||||
</view>
|
||||
<view class="load-more" v-if="pageList.length>0">
|
||||
<text>{{!pageData.isEnd ? '正在加载,请稍后...':'——— 我是有底线的 ———'}}</text>
|
||||
</view>
|
||||
<!-- </scroll-view>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters,mapMutations} from 'vuex'
|
||||
import ListUnit from './components/newBusinessUnit.vue'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pageData: {
|
||||
pageIndex:1,
|
||||
pageSize:10,
|
||||
isEnd: false,
|
||||
isLoading: true,
|
||||
list:[]
|
||||
},
|
||||
pageList:[]
|
||||
}
|
||||
},
|
||||
components:{
|
||||
ListUnit
|
||||
},
|
||||
|
||||
computed:{
|
||||
...mapGetters({reloading:'shouldReLoadingList'})
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['shouldReLoadingList']),
|
||||
loadMore(){
|
||||
if(!this.pageData.isEnd) {
|
||||
this.pageData.pageIndex += 1
|
||||
this.getData()
|
||||
}
|
||||
},
|
||||
goDetail(item) {
|
||||
let pageName = ''
|
||||
this.$util.toNextRoute('navigateTo', "/pages/businessApproval/newDetail?id=" + item.BusinessProcess_ID)
|
||||
},
|
||||
getData() {
|
||||
let _this = this
|
||||
this.$request.$webPost('EShangApiMain/BusinessProcess/GetBusinessProcessList', {
|
||||
QueryType:"0",
|
||||
SearchParameter:{
|
||||
Operation_Type: "10",
|
||||
BusinessProcess_StateSearch: "2000,2010,2020,2030,2040,2050,2060,2070,2080,2090,3000,9000,9999",
|
||||
},
|
||||
ShowWholePower: true,
|
||||
PageIndex:this.pageData.pageIndex,
|
||||
PageSize: 10,
|
||||
SortStr:'BUSINESSAPPROVAL_STATE,BUSINESS_STARTDATE desc'
|
||||
// SortStr: 'BusinessProcess_State,BusinessProcess_StartDate desc'
|
||||
}).then(res => {
|
||||
console.log('res',res)
|
||||
if(!res.Result_Code ||res.Result_Code!='100'){
|
||||
_this.pageList = []
|
||||
}else{
|
||||
let list = res.Result_Data.List
|
||||
if (list.length > 0) {
|
||||
_this.pageList = this.pageData.pageIndex==1 ? list : [..._this.pageList,...list]
|
||||
}
|
||||
if (list.length < _this.pageData.pageSize) { // 返回条数小于每页条数
|
||||
_this.pageData.isEnd = true
|
||||
}
|
||||
_this.$forceUpdate()
|
||||
|
||||
}
|
||||
uni.hideLoading()
|
||||
setTimeout(function(){
|
||||
_this.pageData.isLoading = false
|
||||
},500)
|
||||
})
|
||||
},
|
||||
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.pageData.pageIndex = 1
|
||||
this.pageData.isEnd = false
|
||||
uni.showLoading({
|
||||
title:'正在加载'
|
||||
})
|
||||
this.getData()
|
||||
setTimeout(function() {
|
||||
uni.stopPullDownRefresh()
|
||||
}, 1000)
|
||||
},
|
||||
onReachBottom(){
|
||||
this.loadMore()
|
||||
},
|
||||
onShow() {
|
||||
let _this = this
|
||||
if(this.reloading) {
|
||||
uni.showLoading({
|
||||
title:'正在加载'
|
||||
})
|
||||
_this.pageData.pageIndex = 1
|
||||
_this.pageData.isEnd = false
|
||||
// _this.getData()
|
||||
console.log('onShow')
|
||||
_this.getData()
|
||||
this.shouldReLoadingList(false)
|
||||
}else{
|
||||
console.log('onShow')
|
||||
_this.getData()
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.pageData.isLoading= true
|
||||
uni.showLoading({
|
||||
title:'正在加载'
|
||||
})
|
||||
// this.getData()
|
||||
this.getData()
|
||||
},
|
||||
onUnload() {
|
||||
this.$util.addUserBehaviorNew()
|
||||
},
|
||||
onHide() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
/* height: 100%; */
|
||||
}
|
||||
|
||||
</style>
|
||||
1076
pages/ProductReview/newDetail.vue
Normal file
1076
pages/ProductReview/newDetail.vue
Normal file
File diff suppressed because it is too large
Load Diff
646
pages/ProductReview/productDetail.vue
Normal file
646
pages/ProductReview/productDetail.vue
Normal file
@ -0,0 +1,646 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="base-info pb20">
|
||||
<view class="content-title">{{baseData.HIGHWAYPROINST_DESC}}</view>
|
||||
<view class="main-card">
|
||||
<div class="card-title">
|
||||
<h4>{{baseData.SERVERPART_NAME}}</h4>
|
||||
<div class="card-status" :style="baseData.HIGHWAYPROINST_NEXTID!=9000 ?'color:#df7f42;':''">
|
||||
{{proStatus[baseData.HIGHWAYPROINST_NEXTID]}}</div>
|
||||
</div>
|
||||
<div class="base-body" style="align-items: center;">
|
||||
<i class="ico ico-user"></i><span class="item-title">申请人:</span><text>{{baseData.STAFF_NAME}}</text>
|
||||
</div>
|
||||
<div class="base-body" style="align-items: center;">
|
||||
<i class="ico ico-sjx"></i><span class="item-title">创建日期:
|
||||
</span><text>{{baseData.HIGHWAYPROINST_CREATEDATE}}</text>
|
||||
</div>
|
||||
<div class="base-body">
|
||||
<view class="uni-flex" style="align-items: center;">
|
||||
<i class="ico ico-bz"></i><span class="item-title">业务说明: </span>
|
||||
|
||||
</view>
|
||||
|
||||
<text>{{baseData.PROINST_NAME}}</text>
|
||||
</div>
|
||||
</view>
|
||||
<div class="file-body" v-if="baseData.FileList && baseData.FileList.length>0">
|
||||
<div class="uni-flex base-body" style="align-items: center;">
|
||||
<i class="ico ico-fj"></i>
|
||||
<span class="item-title">附件文件</span>
|
||||
</div>
|
||||
<div class="imgBox">
|
||||
<filesUnit v-for="(file,i) in baseData.FileList" :fileItem="file" :key="i"></filesUnit>
|
||||
</div>
|
||||
</div>
|
||||
<div class="file-body" v-if="baseData.QualificationList && baseData.QualificationList.length>0">
|
||||
<div class="uni-flex base-body" style="align-items: center;">
|
||||
<i class="ico ico-fj"></i>
|
||||
<span class="item-title">资质文件</span>
|
||||
</div>
|
||||
<div class="imgBox">
|
||||
<filesUnit v-for="(file,i) in baseData.QualificationList" :fileItem="file" :key="i"></filesUnit>
|
||||
</div>
|
||||
</div>
|
||||
<view class="button-box" v-if="baseData.USER_ID==users.UserId">
|
||||
<span @tap="showPop(4000)">
|
||||
<image src="/static/images/yj-btn.png" mode="aspectFit"></image> 移交
|
||||
</span>
|
||||
<span @tap="showPop(2000)">
|
||||
<image src="/static/images/sh-btn.png" mode="aspectFit"></image> 审核
|
||||
</span>
|
||||
<span @tap="showPop(3000)" v-if="baseData.CAN_REJECT===1">
|
||||
<image src="/static/images/bh-btn.png" mode="aspectFit"></image> 驳回
|
||||
</span>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="base-info mt20" v-if="baseData.RejectApproved.length>0">
|
||||
<div class="uni-list-cell uni-collapse">
|
||||
<div class="cat-box uni-list-cell-navigate">
|
||||
<b>驳回意见</b>
|
||||
</div>
|
||||
<div class="process-box uni-collapse-content uni-active">
|
||||
<processUnit :item="baseData.RejectApproved[0]" :approveType="0" />
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
<view class="base-info">
|
||||
<div class="uni-list-cell uni-collapse">
|
||||
<div class="cat-box uni-list-cell-navigate"
|
||||
:class="cardShow ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="cardShow =!cardShow">
|
||||
<b>审批流程</b>
|
||||
</div>
|
||||
<div class="process-box uni-collapse-content" :class="cardShow ? 'uni-active' : ''" v-show="cardShow">
|
||||
<processUnit v-for="item in baseData.ApproveList" :item="item" :key="item.APPROVED_ID"
|
||||
:approveType="1" />
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
<view class="page-title">{{baseData.ACCEPT_CODE == 100100 ? '商品新增' : '信息修改'}}详情</view>
|
||||
|
||||
<div class="uni-list-cell uni-collapse base-info" v-for="(item,index) in cateArr" :key="index">
|
||||
<div class="cat-box uni-list-cell-navigate"
|
||||
:class="cardShowMap[item.id] ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="isShowCate(item)">
|
||||
<b>{{item.name}}</b>
|
||||
</div>
|
||||
<div class="uni-collapse-content" :class="cardShowMap[item.id]? 'uni-active' : ''"
|
||||
v-show="cardShowMap[item.id]">
|
||||
<div class="main-card" v-for="(proUnit, cardIndex) in item.child" :key="cardIndex">
|
||||
<div class="card-top">
|
||||
<view class="uni-flex" style="justify-content: space-between;">
|
||||
<div class="pro-name-box">
|
||||
<p class="product-name">{{proUnit.COMMODITY_NAME}}</p>
|
||||
<!-- <p class="product-detail"><i class="ico ico-cate"></i>{{proUnit.COMMODITY_BARCODE}}</p> -->
|
||||
</div>
|
||||
<div class="pro-orther-box ">
|
||||
<p class="product-detail lh28">
|
||||
<text class="unit-text-b1">售价</text> <b
|
||||
class="product-price">¥{{$util.fmoney(proUnit.COMMODITY_RETAILPRICE,2)}}</b>
|
||||
</p>
|
||||
<!-- <p class="product-detail">{{proUnit.COMMODITY_RULE}} <text style="color: #CCCCCC;margin: 0 8upx;">|</text> {{proUnit.COMMODITY_UNIT}} <text style="color: #CCCCCC;margin: 0 8upx;">|</text> <text :class="proUnit.COMMODITY_STATE==1 ? 'product-status' : 'uni-text-gray'">{{proUnit.COMMODITY_STATE_NAME}}</text></p> -->
|
||||
</div>
|
||||
|
||||
</view>
|
||||
<div class="uni-flex" style="justify-content: space-between;">
|
||||
|
||||
<p class="product-detail"><i class="ico ico-cate"></i>{{proUnit.COMMODITY_BARCODE}}</p>
|
||||
|
||||
<div class="pro-orther-box">
|
||||
|
||||
<p class="product-detail">{{proUnit.COMMODITY_RULE}} <text
|
||||
style="color: #CCCCCC;margin: 0 8upx;">|</text> {{proUnit.COMMODITY_UNIT}} <text
|
||||
style="color: #CCCCCC;margin: 0 8upx;">|</text> <text
|
||||
:class="proUnit.COMMODITY_STATE==1 ? 'product-status' : 'uni-text-gray'">{{proUnit.COMMODITY_STATE_NAME}}</text>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul :class="(baseData.ACCEPT_CODE==='100100') ? 'card-detail': (changeList[proUnit.COMMODITY_ID] ? 'card-change-detail' : 'no-show')">
|
||||
<template v-if="baseData.ACCEPT_CODE==='100100'">
|
||||
<li style="flex:2;">进货价格:<text
|
||||
style="color:#333;">{{proUnit.COMMODITY_PURCHASEPRICE ? '¥'+$util.fmoney(proUnit.COMMODITY_PURCHASEPRICE) : '-'}}</text></li>
|
||||
<li style="text-align: center;flex:1;">是否散装:<text
|
||||
style="color:#333;">{{proUnit.ISBULK_NAME}}</text></li>
|
||||
<li style="text-align: right;flex:1.5;">称重方式:<text
|
||||
style="color:#333;">{{proUnit.METERINGMETHOD_NAME}}</text></li>
|
||||
</template>
|
||||
<template v-else>
|
||||
<!-- 调整的商品参数 -->
|
||||
<li v-for='(changeItem, i) in changeList[proUnit.COMMODITY_ID]' :key="i">
|
||||
{{changeItem.changeName}}:
|
||||
<template v-if="changeItem.isprice">
|
||||
<b class="product-price">¥{{changeItem.nowV}}</b>
|
||||
<span class="through-line text-b9">¥{{changeItem.org}}</span>
|
||||
<b class="uni-icon"
|
||||
:class="(changeItem.org < changeItem.nowV) ?'uni-icon-arrowthinup': ' uni-icon-arrowthindown'"></b>
|
||||
</template>
|
||||
<template v-else>
|
||||
<text class="uni-text-gray">{{changeItem.nowV}}</text>
|
||||
<text class="through-line">{{changeItem.org}}</text>
|
||||
</template>
|
||||
|
||||
</li>
|
||||
</template>
|
||||
<li v-if="baseData.HIGHWAYPROINST_NEXTID==='9000'">生效时间:<text
|
||||
class="uni-text-gray">{{proUnit.OPERATE_DATE}}</text></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const json = {
|
||||
COMMODITY_NAME: '品名',
|
||||
COMMODITY_BARCODE: '条码',
|
||||
COMMODITYTYPE_NAME: '类别',
|
||||
COMMODITY_UNIT: '单位',
|
||||
COMMODITY_RULE: '规格',
|
||||
COMMODITY_STATE_NAME: '状态',
|
||||
COMMODITY_ORI: '产地',
|
||||
COMMODITY_RETAILPRICE: '售价',
|
||||
COMMODITY_PURCHASEPRICE: '进价',
|
||||
BUSINESSTYPE_NAME: '业态',
|
||||
COMMODITY_GRADE_NAME: '质量等级',
|
||||
ISBULK_NAME: '是否散装',
|
||||
METERINGMETHOD_NAME: '称重方式',
|
||||
}
|
||||
|
||||
import {
|
||||
mapGetters
|
||||
} from 'vuex'
|
||||
import processUnit from '@/components/auditingProcess/item.vue'
|
||||
import filesUnit from '@/components/filesComponent/fileUnit.vue'
|
||||
|
||||
export default {
|
||||
|
||||
components: {
|
||||
filesUnit,
|
||||
processUnit
|
||||
},
|
||||
computed: {
|
||||
...mapGetters({
|
||||
'users': 'getUser'
|
||||
}),
|
||||
|
||||
},
|
||||
data() {
|
||||
|
||||
return {
|
||||
baseData: {},
|
||||
pageData: [],
|
||||
changeList: [],
|
||||
cateArr: [],
|
||||
cardShowMap: {},
|
||||
commodityTree: {},
|
||||
cardShow: true,
|
||||
doUser: false,
|
||||
proStatus: {
|
||||
1000: '待受理',
|
||||
2000: '办理中',
|
||||
3000: '已驳回',
|
||||
4000: '已移交',
|
||||
9000: '已审结'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isShowCate(item) {
|
||||
|
||||
this.cardShowMap[item.id] = !this.cardShowMap[item.id]
|
||||
},
|
||||
getYes(val) {
|
||||
return val === 1 ? '是 ' : '否'
|
||||
},
|
||||
|
||||
showPop(type) {
|
||||
let _this = this
|
||||
let url = ''
|
||||
switch (type) {
|
||||
case 4000:
|
||||
url = '/pages/auditingPop/transfer?businessType=2000&PROINST_ID=' + _this.baseData
|
||||
.HIGHWAYPROINST_ID + '&NOWACTINST_ID=' + _this.baseData.NOWACTINST_ID
|
||||
break;
|
||||
case 2000:
|
||||
url = '/pages/auditingPop/toExamine?businessType=2000&PROINST_ID=' + _this.baseData
|
||||
.HIGHWAYPROINST_ID + '&NOWACTINST_ID=' + _this.baseData.NOWACTINST_ID + '&ApproName=' + _this
|
||||
.baseData.ACTINST_NAME + '&NeedApproved=1'
|
||||
break;
|
||||
case 3000:
|
||||
url = '/pages/auditingPop/reject?businessType=2000&PROINST_ID=' + _this.baseData
|
||||
.HIGHWAYPROINST_ID + '&NOWACTINST_ID=' + _this.baseData.NOWACTINST_ID
|
||||
break;
|
||||
}
|
||||
this.$util.toNextRoute('navigateTo', url)
|
||||
},
|
||||
|
||||
getDetail(id) {
|
||||
let _this = this
|
||||
_this.$request.$get("GetCommodityFlowDetail", {
|
||||
|
||||
HIGHWAYPROINST_ID: id
|
||||
}).then(rs => {
|
||||
// console.log(_this.loadingType)
|
||||
if (!rs.ResultCode || rs.ResultCode != '100') {
|
||||
_this.isShow = false
|
||||
|
||||
} else {
|
||||
_this.isShow = true
|
||||
}
|
||||
uni.hideLoading()
|
||||
let _data = rs.Data
|
||||
_this.baseData = _data
|
||||
// 解析附件信息
|
||||
if (_data.FileList) {
|
||||
_data.FileList.map(v => {
|
||||
let name = v.ATTACHMENT_URL.split('.')
|
||||
v.type = name[name.length - 1]
|
||||
v.name = v.ATTACHMENT_DESC
|
||||
v.path = v.ATTACHMENT_URL
|
||||
})
|
||||
}
|
||||
// 解析资质文件信息
|
||||
if (_data.QualificationList) {
|
||||
_data.QualificationList.map(v => {
|
||||
let name = v.IMAGE_URL.split('.')
|
||||
v.type = name[name.length - 1]
|
||||
v.name = v.IMAGE_TITLE
|
||||
v.path = v.IMAGE_URL
|
||||
})
|
||||
}
|
||||
_this.getChange()
|
||||
_this.$forceUpdate()
|
||||
|
||||
})
|
||||
},
|
||||
getChange() { // 获取调整过的商品参数
|
||||
let _this = this
|
||||
let itemName = Object.keys(json) // 数据名称
|
||||
let changeItem = {} //
|
||||
let map = {}
|
||||
let cateArr = []
|
||||
let cardShowMap = {}
|
||||
|
||||
_this.baseData.CommodityList.forEach(item => {
|
||||
|
||||
if (!map[item.COMMODITY_TYPE]) {
|
||||
map[item.COMMODITY_TYPE] = []
|
||||
cardShowMap[item.COMMODITY_TYPE] = true
|
||||
cateArr.push({
|
||||
id: item.COMMODITY_TYPE,
|
||||
name: item.COMMODITYTYPE_NAME,
|
||||
child: map[item.COMMODITY_TYPE]
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
map[item.COMMODITY_TYPE].push(item)
|
||||
itemName.forEach(el => {
|
||||
let fName = 'F_' + el
|
||||
|
||||
// item[el] 现参数值 item[fName] 原参数值
|
||||
if (item[fName] && item[el] !== item[fName]) {
|
||||
|
||||
if (!changeItem[item.COMMODITY_ID]) {
|
||||
changeItem[item.COMMODITY_ID] = []
|
||||
}
|
||||
let originValue = item[fName]
|
||||
let nowValue = item[el]
|
||||
let arr = {
|
||||
changeName: json[el],
|
||||
org: originValue,
|
||||
nowV: nowValue,
|
||||
isprice: false
|
||||
}
|
||||
if (json[el].indexOf('价') > -1) {
|
||||
arr.org = _this.$util.fmoney(originValue, 2)
|
||||
arr.nowV = _this.$util.fmoney(nowValue, 2)
|
||||
arr.isprice = true
|
||||
}
|
||||
changeItem[item.COMMODITY_ID].push(arr)
|
||||
}
|
||||
})
|
||||
})
|
||||
_this.changeList = changeItem
|
||||
// _this.commodityTree = map
|
||||
_this.cateArr = cateArr
|
||||
_this.cardShowMap = cardShowMap
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
onLoad(option) {
|
||||
let _this = this
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
})
|
||||
this.getDetail(option.id)
|
||||
|
||||
uni.$on('2000', function(data) {
|
||||
if (data) {
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
})
|
||||
_this.pageData.pageIndex = 1
|
||||
_this.pageData.isEnd = false
|
||||
_this.getDetail(_this.baseData.HIGHWAYPROINST_ID)
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
onUnload() {
|
||||
this.$util.addUserBehaviorNew()
|
||||
uni.$off('2000');
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
onHide() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.mt20 {
|
||||
margin-top: 10upx;
|
||||
}
|
||||
|
||||
.uni-icon {
|
||||
font-size: 28upx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.uni-text-gray {
|
||||
font-size: 24upx;
|
||||
}
|
||||
|
||||
.uni-icon-arrowthindown {
|
||||
color: #50b045;
|
||||
}
|
||||
|
||||
.uni-icon-arrowthinup {
|
||||
color: #ff4952;
|
||||
}
|
||||
|
||||
.no-show {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pb20 {
|
||||
padding-bottom: 40upx;
|
||||
}
|
||||
|
||||
.pb8 {
|
||||
padding-bottom: 8upx;
|
||||
}
|
||||
|
||||
.lh28 {
|
||||
line-height: 54upx;
|
||||
}
|
||||
|
||||
.file-body {
|
||||
padding: 12rpx 26rpx;
|
||||
}
|
||||
|
||||
.imgBox {
|
||||
padding: 0 28rpx;
|
||||
}
|
||||
|
||||
.base-info {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.base-info+.base-info {
|
||||
margin-top: 20upx;
|
||||
}
|
||||
|
||||
.content-title {
|
||||
height: 115upx;
|
||||
line-height: 115upx;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.main-card {
|
||||
/* border: 1upx solid #ddd; */
|
||||
border-radius: 6upx;
|
||||
box-shadow: 0 2upx 6upx rgba(0, 0, 0, 0.1);
|
||||
margin-left: 24upx;
|
||||
margin-right: 24upx;
|
||||
margin-top: 2rpx;
|
||||
}
|
||||
|
||||
.main-card+.main-card {
|
||||
margin-top: 20upx;
|
||||
}
|
||||
|
||||
.uni-collapse-content .main-card:nth-last-child(1) {
|
||||
margin-bottom: 40upx;
|
||||
|
||||
}
|
||||
|
||||
.card-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.card-title h4 {
|
||||
padding: 20upx 0 15upx 20upx;
|
||||
}
|
||||
|
||||
.card-status {
|
||||
font-size: 22upx;
|
||||
color: #999;
|
||||
padding-right: 16upx;
|
||||
}
|
||||
|
||||
.base-body {
|
||||
font-size: 24upx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
padding: 15upx 20upx;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.item-title {
|
||||
color: #777;
|
||||
width: 120upx;
|
||||
/* text-align: justify; */
|
||||
height: 40upx;
|
||||
font-size: 24upx;
|
||||
/* white-space: nowrap; */
|
||||
}
|
||||
|
||||
.item-title:after {
|
||||
display: inline-block;
|
||||
content: '';
|
||||
padding-left: 100%;
|
||||
}
|
||||
|
||||
.base-body+.base-body {
|
||||
border-top: 1upx dashed #eee;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
|
||||
padding: 15upx 0 15upx 30upx;
|
||||
font-size: 26upx;
|
||||
color: #949494;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.cat-card {
|
||||
padding: 30upx 0;
|
||||
}
|
||||
|
||||
.cat-box {
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
margin-left: 30upx;
|
||||
margin-right: 30upx;
|
||||
}
|
||||
|
||||
.cat-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card-top {
|
||||
|
||||
padding: 16upx 24upx;
|
||||
}
|
||||
|
||||
.card-top .product-name {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
max-width: 400upx;
|
||||
font-size: 30upx;
|
||||
padding-bottom: 8upx;
|
||||
}
|
||||
|
||||
.card-top .pro-name-box {
|
||||
flex: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.product-detail {
|
||||
color: #696969;
|
||||
font-size: 24upx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.card-top .pro-orther-box {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.card-top .pro-orther-box .product-detail {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.product-price {
|
||||
color: #ee8437;
|
||||
margin-left: 10upx;
|
||||
}
|
||||
|
||||
.product-status {
|
||||
color: #6dbf9c;
|
||||
font-size: 24upx;
|
||||
}
|
||||
|
||||
.card-detail {
|
||||
border-top: 1upx dashed #eee;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0 24upx 24upx 24upx;
|
||||
}
|
||||
|
||||
.card-detail li {
|
||||
padding-top: 20upx;
|
||||
line-height: 30upx;
|
||||
/* flex: 33.3%; */
|
||||
font-size: 24upx;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.card-change-detail {
|
||||
border-top: 1upx dashed #eee;
|
||||
padding: 0 20upx 20upx 20upx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.card-change-detail li {
|
||||
padding-top: 20upx;
|
||||
line-height: 30upx;
|
||||
font-size: 25upx;
|
||||
padding-right: 20upx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.card-change-detail .through-line {
|
||||
text-decoration: line-through;
|
||||
color: #cbcbcb;
|
||||
margin-left: 16upx;
|
||||
}
|
||||
|
||||
.text-b9 {
|
||||
color: #b9b9b9
|
||||
}
|
||||
|
||||
.process-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.uni-list-cell:after {
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.button-box {
|
||||
padding-top: 36upx;
|
||||
display: flex;
|
||||
/* padding-bottom: 40upx; */
|
||||
justify-content: space-around;
|
||||
padding-bottom: 6upx;
|
||||
}
|
||||
|
||||
.button-box image {
|
||||
width: 100upx;
|
||||
height: 100upx;
|
||||
}
|
||||
|
||||
.button-box span {
|
||||
font-size: 24upx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ico-user:before {
|
||||
background-image: url('../../static/images/tender/lxr.png');
|
||||
}
|
||||
|
||||
.ico-sjx:before {
|
||||
background-image: url('../../static/images/expense/sjx.png');
|
||||
}
|
||||
|
||||
.ico-cate:before {
|
||||
width: 26upx;
|
||||
height: 25upx;
|
||||
background-image: url('../../static/images/txm_logo.png');
|
||||
}
|
||||
</style>
|
||||
47
pages/ProductReview/transferPage.vue
Normal file
47
pages/ProductReview/transferPage.vue
Normal file
@ -0,0 +1,47 @@
|
||||
<template>
|
||||
<view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
user: (state)=>{
|
||||
return {
|
||||
UserId: state.userData.UserId,
|
||||
UserName: state.userData.UserName,
|
||||
Membership_Phone: state.userData.Membership_Phone,
|
||||
Membership_Id: state.userData.Membership_Id,
|
||||
Membership_Type: state.userData.Membership_Type
|
||||
}
|
||||
},
|
||||
toDoMsg: (state)=>{
|
||||
return state.toDoMsg
|
||||
},
|
||||
menus: (state)=> {
|
||||
return state.userData.AuthorityInfo
|
||||
}
|
||||
}),
|
||||
},
|
||||
onLoad(){
|
||||
if (this.menus['d55da792-5edc-4b73-8635-07246121157f']===1){
|
||||
this.$util.toNextRoute('redirectTo', "/pages/businessApproval/newApproval")
|
||||
}else{
|
||||
this.$util.toNextRoute('redirectTo', "/pages/businessApproval/businessApproval")
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@ -4,14 +4,8 @@
|
||||
<template>
|
||||
<div class="new-content">
|
||||
<div class="header-card">
|
||||
<image
|
||||
:src="
|
||||
'/static/images/revenue/' + theRequest.ProvinceCode + '.png'
|
||||
"
|
||||
mode="aspectFit"
|
||||
class="head-log"
|
||||
v-if="theRequest.ProvinceCode"
|
||||
></image>
|
||||
<image :src="'/static/images/revenue/' + theRequest.ProvinceCode + '.png'
|
||||
" mode="aspectFit" class="head-log" v-if="theRequest.ProvinceCode"></image>
|
||||
<view class="head-cost-text"> 实时营收 </view>
|
||||
<div class="top-number">
|
||||
<text>{{ today.timeMoney || "0.00" }}</text>
|
||||
@ -20,8 +14,7 @@
|
||||
<text class="fs12">客单交易 </text>
|
||||
<text class="ml10"> {{ today.totalTicketCount || 0 }}</text>
|
||||
<text class="fs12">(单)</text>
|
||||
<text class="ml-135 fs12"
|
||||
>客单均价 ¥
|
||||
<text class="ml-135 fs12">客单均价 ¥
|
||||
</text>
|
||||
<text>{{ today.avrticketCount || "0.00" }}</text>
|
||||
</div>
|
||||
@ -29,19 +22,10 @@
|
||||
</div>
|
||||
<div class="modle-title jc-between uni-flex ai-center">
|
||||
<div class="uni-flex ai-center">
|
||||
<image
|
||||
src="/static/images/revenue/yestoday-an.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image src="/static/images/revenue/yestoday-an.png" mode="aspectFit"></image>
|
||||
<text class="strong-text ml10">营收汇总</text>
|
||||
</div>
|
||||
<picker
|
||||
mode="date"
|
||||
@change="bindDateChange"
|
||||
:end="lastDay"
|
||||
start="2019-12-01"
|
||||
:value="theRequest.time"
|
||||
>
|
||||
<picker mode="date" @change="bindDateChange" :end="lastDay" start="2019-12-01" :value="theRequest.time">
|
||||
<text class="revenue-date">{{ headMsg.dayOfShow }}</text>
|
||||
</picker>
|
||||
</div>
|
||||
@ -52,20 +36,14 @@
|
||||
<span>元</span>
|
||||
</div>
|
||||
<div class="uni-flex ai-center">
|
||||
<div
|
||||
v-if="theRequest.GroupType != '1000'"
|
||||
style="margin-right: 8rpx"
|
||||
>
|
||||
<div v-if="theRequest.GroupType != '1000'" style="margin-right: 8rpx">
|
||||
{{ headMsg.name }}
|
||||
</div>
|
||||
<div class="upLoad-text">{{ headMsg.uploadState }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 营收数据总览 -->
|
||||
<div
|
||||
class="uni-flex justify-around mode-content"
|
||||
v-if="headMsg.MARKET_REVENUE"
|
||||
>
|
||||
<div class="uni-flex justify-around mode-content" v-if="headMsg.MARKET_REVENUE">
|
||||
<div class="check-unit">
|
||||
<text>商超营收</text>
|
||||
<div class="check-price-color">
|
||||
@ -143,10 +121,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="uni-flex justify-around mode-content"
|
||||
v-if="headMsg.ShowTM"
|
||||
>
|
||||
<div class="uni-flex justify-around mode-content" v-if="headMsg.ShowTM">
|
||||
<div class="check-unit">
|
||||
<text>通美公司</text>
|
||||
<div class="check-price-color">
|
||||
@ -161,32 +136,18 @@
|
||||
</template>
|
||||
<view style="background-color: #fff">
|
||||
<!-- 昨日日结上传 -->
|
||||
<div
|
||||
class="uni-inline-item modle-title jc-between"
|
||||
v-if="regionList.length > 0"
|
||||
>
|
||||
<div class="uni-inline-item modle-title jc-between" v-if="regionList.length > 0">
|
||||
<view class="uni-inline-item">
|
||||
<image
|
||||
src="/static/images/revenue/yestoday-region.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image src="/static/images/revenue/yestoday-region.png" mode="aspectFit"></image>
|
||||
<text class="strong-text">日结上传</text>
|
||||
</view>
|
||||
<view
|
||||
style="font-size: 26rpx"
|
||||
v-if="theRequest.ProvinceCode == '340000'"
|
||||
>门店上传
|
||||
<span class="upload-count">{{ headMsg.uploadState }}</span></view
|
||||
>
|
||||
<view style="font-size: 26rpx" v-if="theRequest.ProvinceCode == '340000'">门店上传
|
||||
<span class="upload-count">{{ headMsg.uploadState }}</span>
|
||||
</view>
|
||||
</div>
|
||||
|
||||
<template v-if="theRequest && theRequest.GroupType == 1020">
|
||||
<div
|
||||
v-for="(item, i) in regionList"
|
||||
:key="i"
|
||||
class="region-cell"
|
||||
@tap="toDetail(item)"
|
||||
>
|
||||
<div v-for="(item, i) in regionList" :key="i" class="region-cell" @tap="toDetail(item)">
|
||||
<div class="region-cell-unit">
|
||||
<text>{{ item.SERVERPART_NAME }}</text>
|
||||
<div class="ct01">
|
||||
@ -210,13 +171,10 @@
|
||||
<text>%</text>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="region-cell-unit"
|
||||
:class="{
|
||||
<div class="region-cell-unit" :class="{
|
||||
'ct-red': item.UPLOAD_COUNT != item.TOTAL_COUNT,
|
||||
'weisc-ico': item.UPLOAD_COUNT != item.TOTAL_COUNT,
|
||||
}"
|
||||
>
|
||||
}">
|
||||
{{ item.UPLOADSTATE }}
|
||||
</div>
|
||||
<div class="region-cell-image">
|
||||
@ -225,12 +183,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="theRequest && theRequest.GroupType == 1000">
|
||||
<div
|
||||
class="region-title"
|
||||
:class="{ active: regionShow1 }"
|
||||
v-show="regionList.length > 1"
|
||||
@tap="regionShow1 = !regionShow1"
|
||||
>
|
||||
<div class="region-title" :class="{ active: regionShow1 }" v-show="regionList.length > 1"
|
||||
@tap="regionShow1 = !regionShow1">
|
||||
省内区域
|
||||
</div>
|
||||
<div v-show="regionShow1">
|
||||
@ -259,33 +213,21 @@
|
||||
<text>%</text>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="region-cell-unit"
|
||||
:class="{ 'ct-red': item.UPLOAD_COUNT != item.TOTAL_COUNT }"
|
||||
>
|
||||
<div class="region-cell-unit" :class="{ 'ct-red': item.UPLOAD_COUNT != item.TOTAL_COUNT }">
|
||||
{{ item.UPLOADSTATE }}
|
||||
</div>
|
||||
<div class="region-cell-image">
|
||||
<text
|
||||
class="uni-icon-arrowright uni-icon"
|
||||
:class="{ active: item.show }"
|
||||
></text>
|
||||
<text class="uni-icon-arrowright uni-icon" :class="{ active: item.show }"></text>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="region-cell-area" v-show="item.show">
|
||||
<li
|
||||
v-for="(child, index) in item.ServerpartList"
|
||||
:class="{ visited: child.visited }"
|
||||
:key="index"
|
||||
@tap="toDetail(child)"
|
||||
>
|
||||
<li v-for="(child, index) in item.ServerpartList" :class="{ visited: child.visited }" :key="index"
|
||||
@tap="toDetail(child)">
|
||||
<div>{{ child.SERVERPART_NAME }}</div>
|
||||
<div>{{ $util.fmoney(child.CASHPAY, 2) }}<text>元</text></div>
|
||||
<div
|
||||
:class="{
|
||||
<div :class="{
|
||||
'ct-red': child.UPLOAD_COUNT != child.TOTAL_COUNT,
|
||||
}"
|
||||
>
|
||||
}">
|
||||
{{ child.UPLOADSTATE }}
|
||||
</div>
|
||||
</li>
|
||||
@ -293,12 +235,8 @@
|
||||
</block>
|
||||
</div>
|
||||
<template v-if="regionList.length > 1">
|
||||
<div
|
||||
class="region-title"
|
||||
:class="{ active: regionShow2 }"
|
||||
v-show="regionList.length > 1"
|
||||
@tap="regionShow2 = !regionShow2"
|
||||
>
|
||||
<div class="region-title" :class="{ active: regionShow2 }" v-show="regionList.length > 1"
|
||||
@tap="regionShow2 = !regionShow2">
|
||||
省外区域
|
||||
</div>
|
||||
<div v-show="regionShow2">
|
||||
@ -327,10 +265,7 @@
|
||||
<text>%</text>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="region-cell-unit"
|
||||
:class="{ 'ct-red': item.UPLOAD_COUNT != item.TOTAL_COUNT }"
|
||||
>
|
||||
<div class="region-cell-unit" :class="{ 'ct-red': item.UPLOAD_COUNT != item.TOTAL_COUNT }">
|
||||
{{ item.UPLOADSTATE }}
|
||||
</div>
|
||||
<div class="region-cell-image">
|
||||
@ -338,19 +273,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<ul class="region-cell-area" v-show="item.show">
|
||||
<li
|
||||
v-for="(child, index) in item.ServerpartList"
|
||||
:class="{ visited: child.visited }"
|
||||
:key="index"
|
||||
@tap="toDetail(child, '451200')"
|
||||
>
|
||||
<li v-for="(child, index) in item.ServerpartList" :class="{ visited: child.visited }" :key="index"
|
||||
@tap="toDetail(child, '451200')">
|
||||
<div>{{ child.SERVERPART_NAME }}</div>
|
||||
<div>{{ child.CASHPAY }}<text>元</text></div>
|
||||
<div
|
||||
:class="{
|
||||
<div :class="{
|
||||
'ct-red': child.UPLOAD_COUNT != child.TOTAL_COUNT,
|
||||
}"
|
||||
>
|
||||
}">
|
||||
{{ child.UPLOADSTATE }}
|
||||
</div>
|
||||
</li>
|
||||
@ -360,167 +289,96 @@
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<shopCell
|
||||
v-for="(item, i) in regionList"
|
||||
:key="i"
|
||||
:item="item"
|
||||
@toggleShow="toggleShow"
|
||||
:i="i"
|
||||
>
|
||||
<shopCell v-for="(item, i) in regionList" :key="i" :item="item" @toggleShow="toggleShow" :i="i">
|
||||
</shopCell>
|
||||
</template>
|
||||
|
||||
<!-- 除安徽省外的 昨日营收占比 -->
|
||||
<div
|
||||
v-if="
|
||||
<div v-if="
|
||||
theRequest &&
|
||||
theRequest.GroupType != 1010 &&
|
||||
theRequest.ProvinceCode != '340000'
|
||||
"
|
||||
>
|
||||
">
|
||||
<div class="uni-inline-item modle-title">
|
||||
<image
|
||||
src="/static/images/revenue/type-operation.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image src="/static/images/revenue/type-operation.png" mode="aspectFit"></image>
|
||||
<text class="strong-text">营收占比</text>
|
||||
</div>
|
||||
<view class="box-operation">
|
||||
<div class="operation-tab-box">
|
||||
<div
|
||||
class="operation-tab-unit"
|
||||
v-if="modelProgress.length > 0"
|
||||
@tap="selectTab('nowTab', 4)"
|
||||
:class="{ active: nowTab == 4 }"
|
||||
>
|
||||
<div class="operation-tab-unit" v-if="modelProgress.length > 0" @tap="selectTab('nowTab', 4)"
|
||||
:class="{ active: nowTab == 4 }">
|
||||
经营模式
|
||||
</div>
|
||||
<div
|
||||
class="operation-tab-unit"
|
||||
v-if="regionProgress.length > 0"
|
||||
@tap="selectTab('nowTab', 1)"
|
||||
:class="{ active: nowTab == 1 }"
|
||||
>
|
||||
<div class="operation-tab-unit" v-if="regionProgress.length > 0" @tap="selectTab('nowTab', 1)"
|
||||
:class="{ active: nowTab == 1 }">
|
||||
经营业态
|
||||
</div>
|
||||
<div
|
||||
class="operation-tab-unit"
|
||||
v-if="tradeType.length > 0"
|
||||
@tap="selectTab('nowTab', 2)"
|
||||
:class="{ active: nowTab == 2 }"
|
||||
>
|
||||
<div class="operation-tab-unit" v-if="tradeType.length > 0" @tap="selectTab('nowTab', 2)"
|
||||
:class="{ active: nowTab == 2 }">
|
||||
经营类型
|
||||
</div>
|
||||
<div
|
||||
class="operation-tab-unit"
|
||||
v-if="areaProgress.length > 0"
|
||||
@tap="selectTab('nowTab', 3)"
|
||||
:class="{ active: nowTab == 3 }"
|
||||
>
|
||||
<div class="operation-tab-unit" v-if="areaProgress.length > 0" @tap="selectTab('nowTab', 3)"
|
||||
:class="{ active: nowTab == 3 }">
|
||||
区域营收
|
||||
</div>
|
||||
</div>
|
||||
<div class="operation-content-box">
|
||||
<div v-show="nowTab == 1" v-if="regionProgress.length > 0">
|
||||
<canvas
|
||||
canvas-id="businessCont"
|
||||
id="businessCont"
|
||||
class="operation-content"
|
||||
@touchstart="touchPie($event, 'businessCont')"
|
||||
></canvas>
|
||||
<canvas canvas-id="businessCont" id="businessCont" class="operation-content"
|
||||
@touchstart="touchPie($event, 'businessCont')"></canvas>
|
||||
<div>
|
||||
<div
|
||||
class="operation-c-list"
|
||||
v-for="(item, o) in regionProgress"
|
||||
:key="o"
|
||||
>
|
||||
<div class="operation-c-list" v-for="(item, o) in regionProgress" :key="o">
|
||||
<div class="operation-cl-unit">
|
||||
<text>{{ item.name }} {{ item.bili }}%</text>
|
||||
<text>{{ item.data }}元</text>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div
|
||||
class="bgO"
|
||||
:style="{ width: item.bili + '%' }"
|
||||
></div>
|
||||
<div class="bgO" :style="{ width: item.bili + '%' }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="nowTab == 2" v-if="tradeType.length > 0">
|
||||
<canvas
|
||||
canvas-id="typeCont"
|
||||
id="typeCont"
|
||||
class="operation-content"
|
||||
@touchstart="touchPie($event, 'typeCont')"
|
||||
></canvas>
|
||||
<canvas canvas-id="typeCont" id="typeCont" class="operation-content"
|
||||
@touchstart="touchPie($event, 'typeCont')"></canvas>
|
||||
<div>
|
||||
<div
|
||||
class="operation-c-list"
|
||||
v-for="(item, o) in tradeType"
|
||||
:key="o"
|
||||
>
|
||||
<div class="operation-c-list" v-for="(item, o) in tradeType" :key="o">
|
||||
<div class="operation-cl-unit">
|
||||
<text>{{ item.name }} {{ item.bili }}%</text>
|
||||
<text>{{ item.data }}元</text>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div
|
||||
class="bgO"
|
||||
:style="{ width: item.bili + '%' }"
|
||||
></div>
|
||||
<div class="bgO" :style="{ width: item.bili + '%' }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="nowTab == 3" v-if="areaProgress.length > 0">
|
||||
<canvas
|
||||
canvas-id="areaCont"
|
||||
id="areaCont"
|
||||
class="operation-content"
|
||||
@touchstart="touchPie($event, 'areaCont')"
|
||||
></canvas>
|
||||
<canvas canvas-id="areaCont" id="areaCont" class="operation-content"
|
||||
@touchstart="touchPie($event, 'areaCont')"></canvas>
|
||||
<div>
|
||||
<div
|
||||
class="operation-c-list"
|
||||
v-for="(item, o) in areaProgress"
|
||||
:key="o"
|
||||
>
|
||||
<div class="operation-c-list" v-for="(item, o) in areaProgress" :key="o">
|
||||
<div class="operation-cl-unit">
|
||||
<text>{{ item.name }} {{ item.bili }}%</text>
|
||||
<text>{{ item.data }}元</text>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div
|
||||
class="bgO"
|
||||
:style="{ width: item.bili + '%' }"
|
||||
></div>
|
||||
<div class="bgO" :style="{ width: item.bili + '%' }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="nowTab == 4" v-if="modelProgress.length > 0">
|
||||
<canvas
|
||||
canvas-id="modelCont"
|
||||
id="modelCont"
|
||||
class="operation-content"
|
||||
@touchstart="touchPie($event, 'modelCont')"
|
||||
></canvas>
|
||||
<canvas canvas-id="modelCont" id="modelCont" class="operation-content"
|
||||
@touchstart="touchPie($event, 'modelCont')"></canvas>
|
||||
<div>
|
||||
<div
|
||||
class="operation-c-list"
|
||||
v-for="(item, o) in modelProgress"
|
||||
:key="o"
|
||||
>
|
||||
<div class="operation-c-list" v-for="(item, o) in modelProgress" :key="o">
|
||||
<div class="operation-cl-unit">
|
||||
<text>{{ item.name }} {{ item.bili }}%</text>
|
||||
<text>{{ item.data }}元</text>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div
|
||||
class="bgO"
|
||||
:style="{ width: item.bili + '%' }"
|
||||
></div>
|
||||
<div class="bgO" :style="{ width: item.bili + '%' }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -532,55 +390,39 @@
|
||||
<view v-if="revenuelineList[0]">
|
||||
<div class="uni-flex ai-center jc-between">
|
||||
<view class="uni-inline-item modle-title">
|
||||
<image
|
||||
src="/static/images/revenue/ysqs.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image src="/static/images/revenue/ysqs.png" mode="aspectFit"></image>
|
||||
<text class="strong-text">营收趋势</text>
|
||||
</view>
|
||||
<view class="line-tab-unit active"> 近七日 </view>
|
||||
</div>
|
||||
<view class="revenue-line-box">
|
||||
<view class="uni-flex ai-center">
|
||||
<view
|
||||
class="revenue-line-data"
|
||||
:class="{ active: revenueLineType == 0 }"
|
||||
@click="changeDate('revenueLineType', 0)"
|
||||
>
|
||||
<view class="revenue-line-data" :class="{ active: revenueLineType == 0 }"
|
||||
@click="changeDate('revenueLineType', 0)">
|
||||
<p>营收金额</p>
|
||||
<p>{{ $util.fmoney(revenueLineMsg.Revenue_Amount, 2) }}</p>
|
||||
</view>
|
||||
<view
|
||||
class="revenue-line-data"
|
||||
:class="{ active: revenueLineType == 1 }"
|
||||
@click="changeDate('revenueLineType', 1)"
|
||||
>
|
||||
<view class="revenue-line-data" :class="{ active: revenueLineType == 1 }"
|
||||
@click="changeDate('revenueLineType', 1)">
|
||||
<p>客单笔数</p>
|
||||
<p>{{ $util.fmoney(revenueLineMsg.Ticke_Count, 2) }}</p>
|
||||
</view>
|
||||
<view
|
||||
class="revenue-line-data"
|
||||
:class="{ active: revenueLineType == 2 }"
|
||||
@click="changeDate('revenueLineType', 2)"
|
||||
>
|
||||
<view class="revenue-line-data" :class="{ active: revenueLineType == 2 }"
|
||||
@click="changeDate('revenueLineType', 2)">
|
||||
<p>客单均价</p>
|
||||
<p>{{ $util.fmoney(revenueLineMsg.Average_Amount, 2) }}</p>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-title">
|
||||
{{ typeName[revenueLineType] }}比上周
|
||||
<text class="text-week"
|
||||
>({{ `${sevenDate[0]}-${sevenDate[1]}` }})</text
|
||||
></view
|
||||
>
|
||||
<view
|
||||
:class="{
|
||||
<text class="text-week">({{ `${sevenDate[0]}-${sevenDate[1]}` }})</text>
|
||||
</view>
|
||||
<view :class="{
|
||||
'up-text-title':
|
||||
revenuelineList[revenueLineType].Top_Difference > 0,
|
||||
'down-text-title':
|
||||
revenuelineList[revenueLineType].Top_Difference < 0,
|
||||
}"
|
||||
>
|
||||
}">
|
||||
{{
|
||||
$util
|
||||
.fmoney(revenuelineList[revenueLineType].Top_Difference, 2)
|
||||
@ -589,46 +431,30 @@
|
||||
</view>
|
||||
<view class="text-title">{{ typeName[revenueLineType] }}趋势</view>
|
||||
<view>
|
||||
<canvas
|
||||
canvas-id="revenueLine"
|
||||
id="revenueLine"
|
||||
class="operation-content"
|
||||
@touchstart="touchPie($event, 'revenueLine')"
|
||||
></canvas>
|
||||
<canvas canvas-id="revenueLine" id="revenueLine" class="operation-content"
|
||||
@touchstart="touchPie($event, 'revenueLine')"></canvas>
|
||||
</view>
|
||||
</view>
|
||||
<view class="revenue-line-box">
|
||||
<view class="title">客单交易</view>
|
||||
<view class="text-title"> 客单数量比上周 </view>
|
||||
<view
|
||||
:class="{
|
||||
<view :class="{
|
||||
'up-text-title': revenueLineMsg.down_deff > 0,
|
||||
'down-text-title': revenueLineMsg.down_deff < 0,
|
||||
}"
|
||||
>
|
||||
}">
|
||||
{{ $util.fmoney(revenueLineMsg.down_deff, 2).replace("-", "") }}%
|
||||
</view>
|
||||
<view>
|
||||
<canvas
|
||||
canvas-id="revenueClounm"
|
||||
id="revenueClounm"
|
||||
class="operation-content"
|
||||
></canvas>
|
||||
<canvas canvas-id="revenueClounm" id="revenueClounm" class="operation-content"></canvas>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 商品销售排行 -->
|
||||
<div class="uni-inline-item modle-title">
|
||||
<image
|
||||
src="/static/images/revenue/product-ranking.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image src="/static/images/revenue/product-ranking.png" mode="aspectFit"></image>
|
||||
<text class="strong-text">商品销售排行</text>
|
||||
</div>
|
||||
<RankContent
|
||||
:wechatPushSalesList="wechatPushSalesList"
|
||||
v-if="!isLoading"
|
||||
></RankContent>
|
||||
<RankContent :wechatPushSalesList="wechatPushSalesList" v-if="!isLoading"></RankContent>
|
||||
<!-- <div class="uni-inline-item ranking-tab-box">
|
||||
<div class="ranking-tab-unit" @tap="selectTab('nowRank',1000)" :class="{'active':nowRank==1000}">商超
|
||||
</div>
|
||||
@ -654,10 +480,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<div v-if="!showPage && !isLoading">
|
||||
<noFound
|
||||
:nodata="!showPage && !isLoading"
|
||||
:text="'您暂无' + lastDay + '营收数据'"
|
||||
/>
|
||||
<noFound :nodata="!showPage && !isLoading" :text="'您暂无' + lastDay + '营收数据'" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -1526,7 +1349,7 @@ export default {
|
||||
title: "正在加载...",
|
||||
});
|
||||
const toSnhuiPageProvinceCode = [
|
||||
340000, 520000, 451200, 510000, 530000, 620000, 630000, 330200, 330300,
|
||||
340000, 520000, 451200, 510000, 530000, 620000, 630000, 330200, 330300, 734100
|
||||
]; // 需要跳转到安徽类型的每日营收推送页面
|
||||
|
||||
if (option.ProvinceCode) {
|
||||
@ -1599,6 +1422,7 @@ export default {
|
||||
this.theRequest.ProvinceCode != 510000 &&
|
||||
this.theRequest.ProvinceCode != 620000 &&
|
||||
this.theRequest.ProvinceCode != 630000 &&
|
||||
this.theRequest.ProvinceCode != 734100 &&
|
||||
this.theRequest.ProvinceCode != 330200
|
||||
) {
|
||||
uni.setNavigationBarColor({
|
||||
|
||||
@ -1,24 +1,13 @@
|
||||
<template>
|
||||
<view class="content" v-show="menus">
|
||||
<menuModel
|
||||
v-for="(menu, index) in modelMenu"
|
||||
:key="index"
|
||||
:title="menu.name"
|
||||
:class="{ 'line-block': index != 0 }"
|
||||
>
|
||||
<menuModel v-for="(menu, index) in modelMenu" :key="index" :title="menu.name" :class="{ 'line-block': index != 0 }">
|
||||
<view class="uni-flex align-top" name="slot">
|
||||
<menuItem
|
||||
v-for="item in menu.list"
|
||||
:key="item.id"
|
||||
:item="item"
|
||||
:doCout="toDoMsg ? toDoMsg[item.id] : 0"
|
||||
:active="
|
||||
item.id == 'd5a9e3ef-3699-448f-abcc-819179df60bd' ||
|
||||
<menuItem v-for="item in menu.list" :key="item.id" :item="item" :doCout="toDoMsg ? toDoMsg[item.id] : 0"
|
||||
:active="item.id == 'd5a9e3ef-3699-448f-abcc-819179df60bd' ||
|
||||
menus[item.id] == 1 ||
|
||||
this.membershipType === 9999
|
||||
"
|
||||
@handleClick="toPage"
|
||||
></menuItem>
|
||||
" @handleClick="toPage">
|
||||
</menuItem>
|
||||
</view>
|
||||
</menuModel>
|
||||
<!-- <view class="home-model">
|
||||
@ -166,11 +155,60 @@ export default {
|
||||
uni.scanCode({
|
||||
onlyFromCamera: true,
|
||||
success: function (res) {
|
||||
console.log("条码类型:" + res.scanType);
|
||||
console.log("条码内容:" + res.result);
|
||||
if (res.scanType.indexOf("QR_CODE") > -1) {
|
||||
if (res.result.indexOf("pages/walkAroundManager/index") > -1) {
|
||||
// 地址路径
|
||||
let pageUrl = res.result
|
||||
console.log('res.resultres.resultres.result', res.result);
|
||||
let pageObj = _this.handleGetId(res.result)
|
||||
let CacheObj = uni.getStorageSync('CacheObj')
|
||||
if (CacheObj) {
|
||||
let title = ''
|
||||
let content = ''
|
||||
let same = false
|
||||
console.log('CacheObj.id', CacheObj.id);
|
||||
console.log('ididididid', pageObj.id);
|
||||
// 判断缓存中的内容 是不是当前点位的信息
|
||||
if (Number(CacheObj.id) === Number(pageObj.id)) {
|
||||
title = '发现未提交的巡查草稿'
|
||||
content = '检测到您上次有未提交的巡查内容,是否恢复这些数据继续编辑?'
|
||||
same = true
|
||||
} else if (CacheObj.id) {
|
||||
title = `发现未提交的巡查`
|
||||
content = `点击跳转将跳转到【${CacheObj.title}】点位巡查`
|
||||
same = false
|
||||
}
|
||||
uni.showModal({
|
||||
title: title,
|
||||
content: content,
|
||||
cancelText: '重新开始',
|
||||
confirmText: same ? '恢复草稿' : "跳转点位",
|
||||
success: async function (res) {
|
||||
if (same) {
|
||||
if (res.confirm) {
|
||||
|
||||
_this.$util.toNextRoute("navigateTo", "/" + pageUrl + `&&pageType=1`);
|
||||
} else if (res.cancel) {
|
||||
uni.setStorageSync('CacheObj', null)
|
||||
_this.$util.toNextRoute("navigateTo", "/" + pageUrl);
|
||||
}
|
||||
} else {
|
||||
if (res.confirm) {
|
||||
_this.$util.toNextRoute("navigateTo", `/pages/walkAroundManager/index?id=${CacheObj.id}&&pageType=1`);
|
||||
} else if (res.cancel) {
|
||||
uni.setStorageSync('CacheObj', null)
|
||||
_this.$util.toNextRoute("navigateTo", "/" + pageUrl);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
_this.$util.toNextRoute("navigateTo", "/" + res.result);
|
||||
}
|
||||
|
||||
// _this.$util.toNextRoute("navigateTo", "/" + res.result);
|
||||
} else {
|
||||
let result = res.result.toLocaleLowerCase();
|
||||
if (
|
||||
@ -223,6 +261,16 @@ export default {
|
||||
},
|
||||
});
|
||||
},
|
||||
// 拿到二维码 ?id=388 的id值
|
||||
handleGetId(url) {
|
||||
const query = url.split('?')[1];
|
||||
if (!query) return {};
|
||||
return query.split('&').reduce((acc, item) => {
|
||||
const [key, value] = item.split('=');
|
||||
acc[key] = value;
|
||||
return acc;
|
||||
}, {});
|
||||
},
|
||||
recordBrowsing(item) {
|
||||
// 点击业务模块事件
|
||||
let _this = this;
|
||||
@ -322,6 +370,7 @@ export default {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.uni-flex {
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
@ -65,7 +65,8 @@
|
||||
<label class="choiceItem" v-for="(subItem, subIndex) in item.question.options" :key="subItem.text"
|
||||
:style="{ marginBottom: subIndex + 1 === item.question.options.length ? '0' : '' }">
|
||||
<view>
|
||||
<radio :value="subItem.text" color="#409eff" style="transform: scale(0.8)" />
|
||||
<radio :checked="item.choiceResponse[0] === subItem.text" :value="subItem.text" color="#409eff"
|
||||
style="transform: scale(0.8)" />
|
||||
<!-- :checked="subIndex === current" -->
|
||||
</view>
|
||||
<view>{{ subItem.text }}</view>
|
||||
@ -165,7 +166,7 @@
|
||||
<view class="bottomBtnBox">
|
||||
<view class="bottomBtn" @click="submitUpload">提交</view>
|
||||
</view>
|
||||
|
||||
<!--
|
||||
<view v-if="false">
|
||||
<div class="pageHeader">
|
||||
<div class="hederContent">
|
||||
@ -271,7 +272,7 @@
|
||||
|
||||
<button v-if="!submit" class="btn" @click="submitUpload">提交</button>
|
||||
</div>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<uniPopup ref="checkPopup" type="bottom" :show="isShowPopup" @hidePopup="handleClosePopup">
|
||||
<view class="popupBox">
|
||||
@ -351,6 +352,7 @@ export default {
|
||||
popupShowObj: {},
|
||||
questionType: "", // 判断是 单选还是多选
|
||||
submiting: false, // 判断是否已经点击过了
|
||||
isSubmitted: false,// 判断是否已经提交成功了
|
||||
};
|
||||
},
|
||||
components: {
|
||||
@ -361,12 +363,91 @@ export default {
|
||||
user: "getUser",
|
||||
}),
|
||||
},
|
||||
onLoad(query) {
|
||||
async onLoad(query) {
|
||||
// pageType 1的话 就是将缓存信息录入 没有就是重新开始
|
||||
console.log("query", query);
|
||||
|
||||
this.handleGetModalData(query.id);
|
||||
await this.handleGetModalData(query.id);
|
||||
|
||||
let CacheObj = uni.getStorageSync('CacheObj')
|
||||
if (CacheObj && query.pageType === '1') {
|
||||
|
||||
this.handleSetCacheDetial(CacheObj)
|
||||
}
|
||||
},
|
||||
onUnload() {
|
||||
// 没提交过就走了 说明是需要进行缓存的
|
||||
if (!this.isSubmitted) {
|
||||
// 巡检内容
|
||||
let inspectionContent = this.uploadResult
|
||||
// 上面的巡检图片
|
||||
let inspectionImgList = this.imgsList
|
||||
// 情况类型
|
||||
let situation = this.current // 0 正常 1 紧急
|
||||
|
||||
console.log('dsadasd', this.requestionRadioList);
|
||||
|
||||
// 把当前已经选择了的问题答案 记录一下
|
||||
let chooseAnswer = {}
|
||||
|
||||
if (this.requestionRadioList && this.requestionRadioList.length > 0) {
|
||||
this.requestionRadioList.forEach((item) => {
|
||||
if (item.choiceResponse) {
|
||||
chooseAnswer[item.id] = {
|
||||
choiceResponse: item.choiceResponse,
|
||||
imageResponse: item.imageResponse
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 需要缓存的内容
|
||||
let CacheObj = {
|
||||
inspectionContent: inspectionContent, // 巡检内容
|
||||
inspectionImgList: inspectionImgList, // 巡检图片
|
||||
situation: situation, // 0 正常 1 紧急
|
||||
chooseAnswer: chooseAnswer,// 当前已经选择了的记录问题
|
||||
id: this.detailObj.id,// 点位id
|
||||
title: this.detailObj.title
|
||||
}
|
||||
|
||||
uni.setStorageSync('CacheObj', CacheObj)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 将缓存记录中的内容 再赋值到这条记录里面
|
||||
handleSetCacheDetial(CacheObj) {
|
||||
// 巡检内容
|
||||
this.uploadResult = CacheObj.inspectionContent
|
||||
// 巡检图片
|
||||
this.imgsList = CacheObj.inspectionImgList
|
||||
// 是否异常
|
||||
this.current = CacheObj.situation
|
||||
|
||||
// 把缓存里面已经有了的数据 匹配到问题列表的字段里面
|
||||
if (CacheObj.chooseAnswer) {
|
||||
let obj = CacheObj.chooseAnswer
|
||||
let list = JSON.parse(JSON.stringify(this.requestionRadioList))
|
||||
|
||||
for (let key in obj) {
|
||||
if (list && list.length > 0) {
|
||||
list.forEach(item => {
|
||||
|
||||
if (Number(item.id) === Number(key)) {
|
||||
item.choiceResponse = obj[key].choiceResponse
|
||||
item.imageResponse = obj[key].imageResponse
|
||||
item.showAddImg = obj[key].imageResponse && obj[key].imageResponse.length > 0
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
this.requestionRadioList = list
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
// 新的 在外面选择答案的内容
|
||||
handleOutRadioChange(e, obj) {
|
||||
console.log('eeee', e);
|
||||
@ -422,10 +503,6 @@ export default {
|
||||
},
|
||||
// 提交表单内容
|
||||
async submitUpload() {
|
||||
if (this.submiting) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("user", this.user);
|
||||
console.log("this.detailObj", this.detailObj);
|
||||
|
||||
@ -517,9 +594,6 @@ export default {
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.log("requestionRadioList", this.requestionRadioList);
|
||||
console.log("requestionCheckedList", this.requestionCheckedList);
|
||||
|
||||
console.log("haveError", haveError);
|
||||
if (!haveError && this.current === 1) {
|
||||
uni.showToast({
|
||||
@ -529,6 +603,11 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (this.submiting) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.submiting = true;
|
||||
let extendObj = {
|
||||
uploadResult: this.uploadResult,
|
||||
@ -554,7 +633,6 @@ export default {
|
||||
};
|
||||
|
||||
console.log("req", req);
|
||||
// return
|
||||
// 原node接口
|
||||
// const data = await this.$request.$webNodePOST(
|
||||
// `questionnaire-responses`,
|
||||
@ -567,7 +645,7 @@ export default {
|
||||
);
|
||||
console.log("data", data);
|
||||
|
||||
this.submiting = false;
|
||||
|
||||
console.log("data", data);
|
||||
if (data.Result_Code === 100) {
|
||||
this.submit = true;
|
||||
@ -576,7 +654,16 @@ export default {
|
||||
icon: "none",
|
||||
});
|
||||
let _this = this;
|
||||
_this.isSubmitted = true
|
||||
|
||||
|
||||
let CacheObj = uni.getStorageSync('CacheObj')
|
||||
if (CacheObj) {
|
||||
uni.setStorageSync('CacheObj', null)
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
_this.submiting = false;
|
||||
_this.$util.toNextRoute(
|
||||
"redirectTo",
|
||||
`/pages/walkAroundManager/statusPage?id=${data.Result_Data.id}`
|
||||
|
||||
BIN
static/images/revenue/734100.png
Normal file
BIN
static/images/revenue/734100.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
Loading…
x
Reference in New Issue
Block a user