小程序端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

170 lines
5.0 KiB

<template>
<view class="v-pages">
<!-- 页面 筛选 -->
<view class="v-pages-filter">
<!-- 页面 搜索 -->
<view class="v-pages-search">
<uni-search-bar @confirm="search" v-model="queryParams.processingName" @cancel="cancel" @clear="clear"
placeholder="请输入溯源产品名称" cancelButton="always"></uni-search-bar>
</view>
</view>
<!-- 页面 列表 -->
<z-paging ref="paging" v-model="listData" :pagingStyle="padingStyle" @query="getListData">
<view class="v-pages-list v-container m-t-regular">
<view class="v-pages-list-item" v-for="(item,index) in listData" :key="item.id">
<!-- 页面 卡片 -->
<view class="v-card">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row">
<!-- 卡片 信息 -->
<view class="v-card-info">
<view class="v-card-title row">
<text class="name col">{{item.processingName}}</text>
</view>
<view class="v-card-state m-t-mini">
<text class="state secondary"
v-if="item.speciesName">{{item.speciesName}}</text>
<dict-tag class="state primary" type="source_type" :value="item.sourceType" />
</view>
<view class="v-card-code"><text
class="iconfont icon-code m-r-small"></text>{{item.traceabilityCode}}</view>
</view>
</view>
<!-- 卡片 下部 -->
<view class="v-card-bot">
<view class="v-card-small-item" @click="openPopup(index)">
<view class="v-card-small-box row v-page-form small">
<view class="v-form-item col">
<uni-icons type="calendar" size="14"></uni-icons>
<text
class="content m-r-small">{{getFormat(item.salesRecordsList[0].createTime)}}
</text>
销售
</view>
<view class="record"><text class="btn">销售记录</text></view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</z-paging>
<!-- 记录 弹框 -->
<uni-popup ref="popup">
<view class="popup-content v-container">
<view class="close" @click="closePopup">
<uni-icons type="close" size="30"></uni-icons>
</view>
<view class="m-t-extra m-b-extra">
<view class="v-popup-title"><text>{{RecordName}}</text> 销售记录</view>
<view class="popup-content-list">
<view class="v-card-small-item" v-for="(item,index) in RecordData" :key="index">
<view>
<uni-icons type="calendar" class="text-primary m-r-small" size="14"></uni-icons>
<text class="content">{{getFormat(item.createTime)}}</text>
</view>
<view class="v-card-small-box v-page-form small row m-t-small">
<view class="v-form-item col-12">
<text class="label">销售类型</text>
<dict-tag class="state primary" type="sales_type" :value="String(item.salesType)" />
</view>
<view class="v-form-item col-12">
<text class="label">销售数量</text>
<text class="content">{{formatNumber(item.salesNumber)}}公斤</text>
</view>
<view class="v-form-item col-24 m-t-mini">
<text class="label">销售金额</text>
<text class="content">{{formatData(item.salesVolume)}}</text>
</view>
<view class="v-form-item col-24 m-t-mini">
<text class="label">客户名称</text>
<text class="content">{{formatData(item.logisticsName)}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import * as ProductApi from "@/api/traceability/salerecord"
import mix from '@/utils/mix.js'
import DictTag from "@/components/DictTag/index"
export default {
components: {
DictTag
},
data() {
return {
padingStyle: {
top: '150rpx'
},
queryParams: {
processingName: null,
},
listData: [],
RecordName: null,
RecordData: [],
}
},
mixins: [mix],
methods: {
// 获取产品数据
async getListData(pageNo, pageSize) {
try {
const queryParams = {
pageNo: pageNo,
pageSize: pageSize,
processingName: this.queryParams.processingName,
}
const res = await ProductApi.getSaleRecordPage(queryParams)
this.$refs.paging.complete(res.data.list)
} catch {
this.$refs.paging.complete(false);
}
},
// 打开 弹窗
openPopup(index) {
this.RecordName = this.listData[index].processingName
this.RecordData = this.listData[index].salesRecordsList
this.$refs.popup.open()
},
// 关闭 弹窗
closePopup() {
this.$refs.popup.close()
},
//确定搜索
search(res) {
this.$refs.paging.reload()
},
//清除搜索
clear(res) {
this.queryParams.processingName = null;
this.$refs.paging.reload()
},
//取消搜索
cancel(res) {
this.queryParams.processingName = null;
this.$refs.paging.reload()
},
}
}
</script>
<style>
</style>