4月9日提交

master
rosehan 2 years ago
parent e290b39e6a
commit 45b8a88f69
  1. 70
      api/system/dict/data.js
  2. 62
      api/system/dict/type.js
  3. 16
      api/traceability/deliveryrecord/index.js
  4. 12
      api/traceability/product.js
  5. 63
      pages/traceability-code/inventory.vue
  6. 107
      pages/traceability-code/sales.vue
  7. 99
      pages/traceability-product/delivery.vue
  8. 52
      pages/traceability-product/index.vue
  9. 52
      pages/traceability-product/sales.vue
  10. BIN
      static/font/DIN Alternate Bold.ttf
  11. 216
      static/scss/v-layout.scss
  12. BIN
      static/test/pic.jpg
  13. 13
      utils/mix.js

@ -0,0 +1,70 @@
import request from '@/utils/request'
// 查询字典数据列表
export function listData(query) {
return request({
url: '/system/dict-data/page',
method: 'get',
params: query
})
}
// 查询字典数据详细
export function getData(dictCode) {
return request({
url: '/system/dict-data/get?id=' + dictCode,
method: 'get'
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict-data/type/' + dictType,
method: 'get'
})
}
// 新增字典数据
export function addData(data) {
return request({
url: '/system/dict-data/create',
method: 'post',
data: data
})
}
// 修改字典数据
export function updateData(data) {
return request({
url: '/system/dict-data/update',
method: 'put',
data: data
})
}
// 删除字典数据
export function delData(dictCode) {
return request({
url: '/system/dict-data/delete?id=' + dictCode,
method: 'delete'
})
}
// 导出字典数据
export function exportData(query) {
return request({
url: '/system/dict-data/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 查询全部字典数据列表
export function listSimpleDictDatas() {
return request({
url: '/system/dict-data/list-all-simple',
method: 'get',
})
}

@ -0,0 +1,62 @@
import request from '@/utils/request'
// 查询字典类型列表
export function listType(query) {
return request({
url: '/system/dict-type/page',
method: 'get',
params: query
})
}
// 查询字典类型详细
export function getType(dictId) {
return request({
url: '/system/dict-type/get?id=' + dictId,
method: 'get'
})
}
// 新增字典类型
export function addType(data) {
return request({
url: '/system/dict-type/create',
method: 'post',
data: data
})
}
// 修改字典类型
export function updateType(data) {
return request({
url: '/system/dict-type/update',
method: 'put',
data: data
})
}
// 删除字典类型
export function delType(dictId) {
return request({
url: '/system/dict-type/delete?id=' + dictId,
method: 'delete'
})
}
// 导出字典类型
export function exportType(query) {
return request({
url: '/system/dict-type/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获取字典选择框列表
export function listAllSimple() {
return request({
url: '/system/dict-type/list-all-simple',
method: 'get'
})
}

@ -0,0 +1,16 @@
import upload from '@/utils/upload'
import request from '@/utils/request'
// 获得配送记录 分页
export function getDeliveryRecordPage(params) {
return request({
url: '/traceability/delivery-record/page',
method: 'get',
params
})
}

@ -0,0 +1,12 @@
import upload from '@/utils/upload'
import request from '@/utils/request'
// 获取销售产品溯源码
export function getSaleRecordCodePage(params) {
return request({
url: '/traceability/sale-record/saleRecordCodePage',
method: 'get',
params
})
}

@ -0,0 +1,63 @@
<template>
<view class="v-pages">
<!-- 页面 溯源码头部 -->
<view class="v-pages-code">
<view class="v-code-top">
<view class="text">今日访问</view>
<view class="number"><text>1567</text></view>
</view>
<view class="v-code-data row m-t-regular">
<view class="v-code-data-item col-12">
<view class="number"><text>186</text></view>
<view class="text m-t-mini">昨日访问()</view>
</view>
<view class="v-code-data-item col-12">
<view class="number"><text>186</text></view>
<view class="text m-t-mini">总访问量()</view>
</view>
</view>
</view>
<!-- 页面 列表 -->
<view class="v-pages-list v-container m-t-regular">
<!-- 页面 卡片 -->
<view class="v-card">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row">
<!-- 卡片 图片 -->
<image src="../../static/test/pic.jpg" class="v-card-image"></image>
<!-- 卡片 信息 -->
<view class="v-card-info col">
<view class="v-card-title row"><text class="name col">西红柿</text><text class="tip">蔬菜</text>
</view>
<view class="v-card-state m-t-mini"><text class="state">无公害</text><text
class="state">自产</text>
</view>
<view class="v-page-form small row m-t-small">
<view class="v-form-item col-10"><text class="label">类型:</text><text
class="content">入市销售</text></view>
<view class="v-form-item col-14"><text class="label">销售时间:</text><text
class="content">2024-01-07</text></view>
</view>
</view>
</view>
<!-- 卡片 下部 -->
<view class="v-card-bot">
<view class="v-page-form small row">
<view class="v-form-item col"><text class="content">012568408591</text></view>
<view class="v-form-item"><button class="btn">分享</button></view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style>
</style>

@ -0,0 +1,107 @@
<template>
<view class="v-pages">
<!-- 页面 溯源码头部 -->
<view class="v-pages-code">
<view class="v-code-top">
<view class="text">今日访问</view>
<view class="number"><text>1567</text></view>
</view>
<view class="v-code-data row m-t-regular">
<view class="v-code-data-item col-12">
<view class="number"><text>186</text></view>
<view class="text m-t-mini">昨日访问()</view>
</view>
<view class="v-code-data-item col-12">
<view class="number"><text>186</text></view>
<view class="text m-t-mini">总访问量()</view>
</view>
</view>
</view>
<!-- 页面 列表 -->
<view class="v-pages-list v-container m-t-regular">
<view class="v-pages-list-item" v-for="(item,index) in SalesData" :key="index">
<!-- 页面 卡片 -->
<view class="v-card">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row">
<!-- 卡片 图片 -->
<image src="../../static/test/pic.jpg" class="v-card-image"></image>
<!-- 卡片 信息 -->
<view class="v-card-info col">
<view class="v-card-title row"><text class="name col">{{item.processingName}}</text><text
class="tip">{{item.speciesName}}</text>
</view>
<view class="v-card-state m-t-mini"><text class="state">{{item.sourceType}}</text><text
class="state">自产</text>
</view>
<view class="v-page-form small row m-t-small">
<view class="v-form-item col-10"><text class="label">类型:</text><text
class="content">{{item.salesType}}</text></view>
<view class="v-form-item col-14"><text class="label">销售时间:</text><text
class="content">{{getData(item.createTime)}}</text></view>
</view>
</view>
</view>
<!-- 卡片 下部 -->
<view class="v-card-bot">
<view class="v-page-form small row">
<view class="v-form-item col"><text class="content">{{item.traceabilityCode}}</text>
</view>
<view class="v-form-item"><button class="v-primary-btn">分享</button></view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
getSaleRecordCodePage
} from "@/api/traceability/product"
import mix from '@/utils/mix.js'
import {
getDicts
} from '@/api/system/dict/data.js'
export default {
data() {
return {
SalesData: null,
queryParams: {
pageNo: 1,
pageSize: 10
}
}
},
mixins: [mix],
onLoad: function() {
getDicts("sales_type").then(response => {
console.log("adfs",response)
});
this.getSalesData()
},
methods: {
//
getSalesData() {
getSaleRecordCodePage(this.queryParams).then(res => {
console.log(res.data.list)
this.SalesData = res.data.list
})
}
}
}
</script>
<style>
</style>

@ -0,0 +1,99 @@
<template>
<view class="v-pages">
<!-- 页面 筛选 -->
<view class="v-pages-filter">
<!-- 页面 搜索 -->
<view class="v-pages-search">aaf</view>
</view>
<!-- 页面 列表 -->
<view class="v-pages-list v-container m-t-regular">
<view class="v-pages-list-title m-b-extra">附近配送公司</view>
<!-- 页面 卡片 -->
<view class="v-pages-list-item" v-for="(item,index) in DeliveryData" :key="index">
<view class="v-card">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row align-center">
<!-- 卡片 图片 -->
<image src="../../static/test/pic.jpg" class="v-card-image circle"></image>
<!-- 卡片 信息 -->
<view class="v-card-info col">
<view class="v-card-title row"><text class="name">{{item.title}}</text>
</view>
<view class="v-page-form small">
<view class="v-form-item m-t-mini">
<text class="content">{{item.name}}</text>
<text class="content text-primary m-l-mini">{{item.phone}}</text>
</view>
<view class="v-form-item m-t-mini"><text class="content">{{item.address}}</text>
</view>
</view>
</view>
<view><button class="v-primary-btn circle">选TA</button></view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
getDeliveryRecordPage
} from "@/api/traceability/deliveryrecord/index"
import {
getDicts
} from '@/api/system/dict/data.js'
export default {
data() {
return {
DeliveryData: null,
queryParams: {
pageNo: 1,
pageSize: 10
}
}
},
onLoad: function() {
this.getDeliveryData()
},
methods: {
//
getDeliveryData() {
getDeliveryRecordPage(this.queryParams).then(res => {
console.log()
})
this.DeliveryData = [{
title: "速风物流有限公司",
name: "王小明",
phone: "18965520311",
address: "河北省石家庄市长安区"
}, {
title: "速风物流有限公司",
name: "王小明",
phone: "18965520311",
address: "河北省石家庄市长安区"
}, {
title: "速风物流有限公司",
name: "王小明",
phone: "18965520311",
address: "河北省石家庄市长安区"
}, {
title: "速风物流有限公司",
name: "王小明",
phone: "18965520311",
address: "河北省石家庄市长安区"
}]
}
}
}
</script>
<style>
</style>

@ -0,0 +1,52 @@
<template>
<view class="v-pages">
<!-- 页面 筛选 -->
<view class="v-pages-filter">
<!-- 页面 搜索 -->
<view class="v-pages-search">af</view>
<!-- 页面 选择 -->
<view class="v-pages-select row">
<view class="v-select-item col-8">产品来源</view>
<view class="v-select-item col-8">作物种类</view>
<view class="v-select-item col-8">认证类型</view>
</view>
</view>
<!-- 页面 列表 -->
<view class="v-pages-list v-container m-t-regular">
<!-- 页面 卡片 -->
<view class="v-card row">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row">
<!-- 卡片 图片 -->
<image src="../../static/test/pic.jpg" class="v-card-image"></image>
<!-- 卡片 信息 -->
<view class="v-card-info col">
<view class="v-card-title row"><text class="name col">西红柿</text><text class="tip">蔬菜</text>
</view>
<view class="v-card-state"><text class="state">无公害</text><text class="state">自产</text></view>
<view class="v-card-item">012568408591</view>
</view>
</view>
<!-- 卡片 下部 -->
<view class="v-card-bot">
<view class="v-page-form small row">
<view class="v-form-item col-12"><text>收获数量</text>5000公斤</view>
<view class="v-form-item col-12"><text>收获时间</text>2024-01-07</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss">
</style>

@ -0,0 +1,52 @@
<template>
<view class="v-pages">
<!-- 页面 筛选 -->
<view class="v-pages-filter">
<!-- 页面 搜索 -->
<view class="v-pages-search">af</view>
<!-- 页面 选择 -->
<view class="v-pages-select row">
<view class="v-select-item col-8">产品来源</view>
<view class="v-select-item col-8">作物种类</view>
<view class="v-select-item col-8">认证类型</view>
</view>
</view>
<!-- 页面 列表 -->
<view class="v-pages-list v-container m-t-regular">
<!-- 页面 卡片 -->
<view class="v-card row">
<!-- 卡片 内容 -->
<view class="v-card-content">
<!-- 卡片 上部 -->
<view class="v-card-top row">
<!-- 卡片 图片 -->
<image src="../../static/test/pic.jpg" class="v-card-image"></image>
<!-- 卡片 信息 -->
<view class="v-card-info col">
<view class="v-card-title row"><text class="name col">西红柿</text><text class="tip">蔬菜</text>
</view>
<view class="v-card-state"><text class="state">无公害</text><text class="state">自产</text></view>
<view class="v-card-item">012568408591</view>
</view>
</view>
<!-- 卡片 下部 -->
<view class="v-card-bot">
<view class="v-page-form small row">
<view class="v-form-item col-12"><text>收获数量</text>5000公斤</view>
<view class="v-form-item col-12"><text>收获时间</text>2024-01-07</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style>
</style>

@ -0,0 +1,216 @@
$v-primary: #14c171;
/* 字体引入 */
@font-face {
font-family: DIN Alternate;
src: url('/static/font/DIN Alternate Bold.ttf');
}
.number,
.number text,
.text {
font-family: DIN Alternate;
}
.align-center {
align-items: center;
}
.text-primary {
color: $v-primary;
}
.v-primary-btn {
font-size: 12px;
height: 20px;
padding: 0 10px;
color: #fff;
line-height: 20px;
border-radius: 2px;
background-color: $v-primary;
border: 1px solid $v-primary;
}
.v-primary-btn.circle {
border-radius: 20px;
}
.v-pages {
height: 100vh;
background-color: #f5f5f5;
}
.v-container {
margin: 0 16px;
}
// 首页 数据
.v-index-data {
margin-top: 50px;
padding: 10px;
border-radius: 10px;
background-color: #fff;
.v-list-item {
.name {
text-align: center;
}
.number {
font-size: 20px;
font-weight: 600;
text-align: center;
}
}
}
// 首页 导航
.v-index-nav {
.v-index-nav-item {
text-align: center;
.icon {
display: inline-block;
width: 50px;
height: 50px;
background-color: #999999;
}
.text {
text-align: center;
}
}
}
// 页面 筛选
.v-pages-filter {
padding: 8px;
background-color: #fff;
.v-pages-select {
.v-select-item {
text-align: center;
font-size: 14px;
}
}
}
// 页面 列表
.v-pages-list {
padding-bottom: 16px;
.v-pages-list-item:not(:last-child) {
margin-bottom: 16px;
}
}
// 页面 卡片
.v-card {
padding: 16px 16px 10px 16px;
font-size: 14px;
background-color: #fff;
border-radius: 8px;
.v-card-top {
padding-bottom: 4px;
.v-card-image {
width: 70px;
height: 70px;
border-radius: 5px;
}
.v-card-image.circle {
width: 50px;
height: 50px;
border-radius: 50px;
}
.v-card-info {
margin-left: 10px;
}
}
.v-card-bot {
position: relative;
margin-top: 8px;
padding-top: 10px;
&:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 1px;
background-color: rgba(0, 0, 0, 0.05);
}
}
.v-card-title {
align-items: center;
.name {
font-size: 16px;
font-weight: 600;
}
.tip {
color: rgba(20, 193, 113, 1);
background-color: rgba(20, 193, 113, 0.1);
padding: 1px 16px;
border-radius: 30px;
}
}
.v-card-state {
align-items: center;
.state {
padding: 1px 10px;
font-size: 12px;
color: rgba(20, 193, 113, 1);
background-color: rgba(20, 193, 113, 0.1);
border: 1px solid rgba(20, 193, 113, 0.1);
border-radius: 4px;
}
.state + .state {
margin-left: 8px;
}
}
}
// 页面 表单
.v-page-form.small {
.v-form-item {
font-size: 12px;
.label {
margin-right: 4px;
color: #999999;
}
.content {
font-family: DINAlternate;
}
}
}
// 页面 溯源码
.v-pages-code {
padding: 20px 20px 0 20px;
background: linear-gradient(to bottom, #d2fae9, #f5f5f5);
.v-code-top {
.text {
font-size: 14px;
}
.number {
color: rgba(20, 193, 113, 1);
text {
font-size: 28px;
font-weight: 600;
}
}
}
.v-code-data {
background-color: #eefef8;
border-radius: 10px;
padding: 16px;
.text {
font-size: 12px;
text-align: center;
}
.number {
text-align: center;
font-weight: 600;
text {
font-size: 22px;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

@ -0,0 +1,13 @@
export default {
methods: {
/** 时间戳处理 */
getData(timestamp) {
let date = new Date(parseInt(timestamp))
let Year = date.getFullYear()
let Moth = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
let Day = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate())
let GMT = Year + '-' + Moth + '-' + Day
return GMT
},
}
}
Loading…
Cancel
Save