This commit is contained in:
2022-07-28 18:15:36 +08:00
parent 56ebfbd460
commit 93ec17b792
28 changed files with 1396 additions and 428 deletions

View File

@@ -1,171 +0,0 @@
const cols = [
{
title: '序号',
key: 'index',
align: 'center',
width: 0
},
{
title: '品名(品号)',
key: 'productName',
align: 'center',
width: 120
},
{
title: '品名(料号)',
key: 'partName',
align: 'center',
width: 120
},
{
title: '规格',
key: 'specification',
align: 'center',
width: 120
},
{
title: '密度',
key: 'density',
align: 'center',
width: 120
},
{
title: '门幅',
key: 'larghezza',
align: 'center',
width: 120
},
{
title: '品号',
key: 'productCode',
align: 'center',
width: 120
},
{
title: '料号',
key: 'itemCode',
align: 'center',
width: 120
},
{
title: '分类',
key: 'sort',
align: 'center',
width: 120
},
{
title: '克重',
key: 'grammage',
align: 'center',
width: 120
},
{
title: '市场报价',
key: 'marketPrice',
align: 'center',
width: 120
},
{
title: '加工方式',
key: 'processingMode',
align: 'center',
width: 120
},
{
title: '一阶大类',
key: 'firstLargeClass',
align: 'center',
width: 120
},
{
title: '添加时间',
key: 'createTime',
align: 'center',
width: 120
},
{
title: '厂商编码',
key: 'supplierCodename',
align: 'center',
width: 120
},
{
title: '品质',
key: 'quality',
align: 'center',
width: 120
},
{
title: '等级',
key: 'dominant',
align: 'center',
width: 120
},
{
title: '颜色',
key: 'colorCode',
align: 'center',
width: 120
},
{
title: '原料',
key: 'stockProduct',
align: 'center',
width: 120
},
{
title: '组织',
key: 'tissue',
align: 'center',
width: 120
},
{
title: '仓库数量',
key: 'wareNum',
align: 'center',
width: 120
},
{
title: '厂商库存',
key: 'factureInventory',
align: 'center',
width: 120
},
{
title: '材料成本价',
key: 'costPrice',
align: 'center',
width: 120
},
{
title: '描述信息',
key: 'description',
align: 'center',
width: 120
},
{
title: '定做时间(天)',
key: 'sustomMadeTime',
align: 'center',
width: 120
},
{
title: '是否现货',
key: 'isSpot',
align: 'center',
width: 120
},
{
title: '是否开票',
key: 'isBilling',
align: 'center',
width: 120
},
{
title: '备注',
key: 'remark',
align: 'center',
width: 120
}
]
export default cols

View File

@@ -0,0 +1,127 @@
<!--
* @Author: gtz
* @Date: 2022-07-28 10:22:30
* @LastEditors: gtz
* @LastEditTime: 2022-07-28 17:22:14
* @Description: file content
* @FilePath: \hf-pda\src\pages\eqInspection\components\eqItem.vue
-->
<template>
<div class="eqItem">
<div class="eqItem-header">
<div class="eqItem-title">
<short-line />
{{ injectData.equipmentName }}
</div>
<div class="eqItem-user">
{{ injectData.inspectionWorker }}
</div>
</div>
<div class="eqItem-main">
<div class="eqItem-main-left">
<div class="eqItem-main-left-item">
添加时间
<span>{{ injectData.createTime ? moment(injectData.createTime).format('YYYY-MM-DD HH:mm:ss') : '暂无' }}</span>
</div>
<div class="eqItem-main-left-item">
巡检时间
<span>{{ injectData.inspectionStartTime ? moment(injectData.inspectionStartTime).format('YYYY-MM-DD HH:mm:ss') : '暂无' }}</span>
</div>
</div>
<div class="eqItem-main-right" @click="toDetail">
<div class="eqItem-main-right-box">
<div style="opacity: .5;">查看详情</div>
<div>
<van-icon class-prefix="iconfont" name="jiantou" />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment'
import shortLine from '@/components/shortLine.vue'
export default {
name: 'eqItem',
components: { shortLine },
props: {
injectData: {
type: Object,
default: () => {}
}
},
data () {
return {
moment
}
},
methods: {
toDetail () {}
}
}
</script>
<style lang="scss" scoped>
.eqItem {
width: calc(100% - .75rem);
padding: .125rem .375rem;
border-radius: .25rem;
height: 2.125rem;
background: #fff;
box-shadow: .02rem .02rem .1rem rgba($color: #000000, $alpha: .2);
margin: .125rem 0;
.eqItem-header {
line-height: .875rem;
display: flex;
font-size: .34375rem;
.eqItem-title {
font-weight: bold;
max-width: 2.75rem;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
.eqItem-user {
flex: 1;
text-align: right;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
}
.eqItem-main {
display: flex;
.eqItem-main-left {
flex: 1;
padding-right: .1rem;
.eqItem-main-left-item {
line-height: .59375rem;
font-size: .3125rem;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
span {
opacity: .5;
}
}
}
.eqItem-main-right {
font-size: .3125rem;
width: 1.6rem;
display: flex;
align-items: flex-end;
justify-content: center;
.eqItem-main-right-box {
padding-bottom: .1rem;
.iconfont {
font-size: 0.17rem;
color: #4271FF;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,59 @@
<!--
* @Author: gtz
* @Date: 2022-07-28 10:22:30
* @LastEditors: gtz
* @LastEditTime: 2022-07-28 15:29:27
* @Description: file content
* @FilePath: \hf-pda\src\pages\eqInspection\components\eqPopup.vue
-->
<template>
<van-popup v-model="show" position="bottom" class="eqPopup">
<van-picker
title="标题"
show-toolbar
:columns="showEqList"
@confirm="onConfirm"
@cancel="onCancel"
/>
</van-popup>
</template>
<script>
export default {
name: 'eqPopup',
props: {
eqList: {
type: Array,
default: () => []
}
},
data () {
return {
show: false
}
},
computed: {
showEqList: function () {
return this.eqList.map(item => {
return item.name
})
}
},
methods: {
init () {
this.show = true
},
onConfirm (val, index) {
this.$emit('changeEq', index)
this.show = false
},
onCancel () {
this.show = false
}
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,78 @@
<!--
* @Author: gtz
* @Date: 2022-07-28 10:22:30
* @LastEditors: gtz
* @LastEditTime: 2022-07-28 17:26:08
* @Description: file content
* @FilePath: \hf-pda\src\pages\eqInspection\components\timePopup.vue
-->
<template>
<van-calendar
class="timePopup"
v-model="show"
type="range"
:min-date="minDate"
:default-date="defaultDate"
@confirm="onConfirm"
/>
</template>
<script>
import moment from 'moment'
export default {
props: {
defaultDate: {
type: Array,
default: () => {
return [new Date(), new Date() + 86400000]
}
}
},
name: 'timePopup',
data () {
return {
show: false,
date: null,
minDate: new Date(2020, 1, 1)
}
},
methods: {
init () {
this.show = true
},
formatDate (date) {
return moment(date).format('YYYY-MM-DDTHH:mm:ss')
},
onConfirm (date) {
const [start, end] = date
this.show = false
this.date = [
this.formatDate(start - (start.valueOf() + 28800000) % 86400000),
this.formatDate(end - (start.valueOf() + 28800000) % 86400000 + 86399000)
]
this.$emit('changeDate', this.date)
}
}
}
</script>
<style lang="scss">
.timePopup {
.van-calendar__day--start, .van-calendar__day--end {
background-color: #4271FF;
}
.van-calendar__day--middle::after {
background-color: transparent;
}
.van-calendar__day--middle {
background: rgba($color: #4271FF, $alpha: .2);
color: #fff;
}
.van-button--danger {
color: #fff;
background-color: #4271FF;
border: 0.02rem solid #4271FF;
}
}
</style>

View File

@@ -15,19 +15,63 @@
<!-- 信息列表主体 -->
<!-- 搜索区域 -->
<div class="eq-search">
<div class="eq-search-back"></div>
<div class="eq-search-main"></div>
<div class="eq-search-back" />
<div class="eq-search-main">
<van-row class="eq-search-item">
<van-col :span="7" class="eq-search-item-lable">设备名称</van-col>
<van-col :span="15" :offset="1" class="eq-search-item-input">
<van-field
v-model="eqName"
right-icon="arrow-down"
disabled
placeholder="请选择设备"
@click="handleEqSelect"
/>
</van-col>
</van-row>
<van-row class="eq-search-item">
<van-col :span="7" class="eq-search-item-lable">时间段</van-col>
<van-col :span="15" :offset="1" class="eq-search-item-input">
<van-field
v-model="timeStr"
right-icon="rili"
icon-prefix="iconfont"
disabled
placeholder="请选择时间段"
@click="handleTimeSelect"
/>
</van-col>
</van-row>
<van-row class="eq-search-btn">
<van-col :span="9" :offset="1">
<van-button class="eq-search-btn-item eq-search-btn-left" round>扫描新增</van-button>
</van-col>
<van-col :span="12" :offset="1">
<van-button class="eq-search-btn-item eq-search-btn-right" round @click="getDataList"> </van-button>
</van-col>
</van-row>
</div>
</div>
<div class="eq-list">
<eq-item v-for="item in dataList" :inject-data="item" :key="item.id" />
</div>
<water-fall @click.native="getMore" :isOver="isOver"></water-fall>
</van-pull-refresh>
<time-popup ref="timePopup" :default-date="timeSlot" @changeDate="changeDate" />
<eq-popup ref="eqPopup" :eq-list="eqList" @changeEq="changeEq" />
</div>
</template>
<script>
import { list, eqList } from '@/api/eqInspection'
import timePopup from './components/timePopup.vue'
import eqPopup from './components/eqPopup.vue'
import eqItem from './components/eqItem.vue'
import moment from 'moment'
export default {
name: 'eqInspection',
components: { timePopup, eqPopup, eqItem },
data () {
return {
queryList: {
@@ -41,35 +85,38 @@ export default {
isOver: true,
dataList: [],
eqList: [],
dataOption: {}
dataOption: {},
eqName: null,
timeSlot: [],
timeStr: null
}
},
mounted () {
this.getDataList()
this.getEqList()
document.querySelector('.eq-main').addEventListener('scroll', this.handleScroll, true)
// // 给浏览器加入一个空的历史纪录
// window.history.pushState(null, null, document.URL)
// // 给window添加一个popstate事件拦截返回键执行this.onBrowserBack事件addEventListener需要指向一个方法
// window.addEventListener('popstate', this.onBrowserBack, false)
// 给浏览器加入一个空的历史纪录
window.history.pushState(null, null, document.URL)
// 给window添加一个popstate事件拦截返回键执行this.onBrowserBack事件addEventListener需要指向一个方法
window.addEventListener('popstate', this.onBrowserBack, false)
},
destroyed () {
window.removeEventListener('popstate', this.onBrowserBack, false)
document.querySelector('.eq-main').removeEventListener('scroll', this.handleScroll, false)
},
// destroyed () {
// window.removeEventListener('popstate', this.onBrowserBack, false)
// document.querySelector('.ol-main').removeEventListener('scroll', this.handleScroll, false)
// },
methods: {
// 浏览器返回按钮监听
// onBrowserBack () {
// if (this.show || this.showItem || this.showTypeId || this.showTypeCode) {
// this.show = false
// this.showItem = false
// this.showTypeId = false
// this.showTypeCode = false
// window.history.pushState(null, null, document.URL)
// } else {
// this.$router.goBack()
// }
// },
onBrowserBack () {
if (this.eqVisable || this.timeVisable) {
this.eqVisable = false
this.timeVisable = false
window.history.pushState(null, null, document.URL)
} else {
this.$router.push({
name: 'index'
})
}
},
// 滚动事件监听
handleScroll () {
let clientHeight = document.documentElement.clientHeight // 客户区大小
@@ -102,7 +149,7 @@ export default {
if (result.success) {
this.dataList = result.data.records
this.dataOption = result.data
if (this.dataOption.total === this.queryList.current) {
if (this.dataOption.total / 10 <= this.queryList.current) {
this.isOver = false
} else {
this.isOver = true
@@ -118,7 +165,9 @@ export default {
current: 1,
size: 999
})
console.log(result)
if (result.success) {
this.eqList = result.data
}
},
// 分页器
onChange (v) {
@@ -126,14 +175,55 @@ export default {
},
// 返回上一页
onClickLeft () {
this.$router.goBack()
this.$router.push({
name: 'index'
})
},
// 重置筛选项
resetQuery () {
this.queryList = {
current: 1,
endTime: '',
equipmentId: '',
size: 10,
startTime: ''
}
this.eqName = null
this.timeStr = null
this.timeSlot = []
},
// 下拉刷新
async onRefresh () {
this.queryList.current = 1
this.resetQuery()
await this.getDataList()
this.$toast.success('刷新成功')
this.isLoading = false
},
// 弹出设备选择器
handleEqSelect () {
this.$nextTick(() => {
this.$refs.eqPopup.init()
})
},
// 弹出日历
handleTimeSelect () {
this.$nextTick(() => {
this.$refs.timePopup.init()
})
},
// 日期修改
changeDate (date) {
if (date && date.length) {
this.timeStr = `${moment(date[0]).format('YYYY/MM/DD')}-${moment(date[1]).format('YYYY/MM/DD')}`
this.queryList.startTime = date[0]
this.queryList.endTime = date[1]
this.timeSlot = [new Date(date[0]), new Date(date[1])]
}
},
// 设备修改
changeEq (index) {
this.eqName = this.eqList[index].name
this.queryList.equipmentId = this.eqList[index].id
}
}
}
@@ -173,6 +263,13 @@ export default {
width: 100%;
height: 3.625rem;
position: relative;
.iconfont {
font-size: .5rem;
position: relative;
top: .05rem;
left: .09rem;
color: #0B58FF;
}
.eq-search-back {
position: absolute;
top: 0;
@@ -183,13 +280,70 @@ export default {
}
.eq-search-main {
position: relative;
padding-top: .125rem;
width: 94%;
margin-left: 3%;
height: 3.625rem;
height: 3.5rem;
border-radius: .25rem;
background: #fff;
box-shadow: .02rem .02rem .1rem rgba($color: #000000, $alpha: .2);
input::-webkit-input-placeholder {
color: #131415;
font-size: .375rem;
}
input:-moz-placeholder {
color: #131415;
font-size: .375rem;
}
input::-moz-placeholder {
color: #131415;
font-size: .375rem;
}
input:-ms-input-placeholder {
color: #131415;
font-size: .375rem;
}
}
.eq-search-item {
padding-top: .25rem;
line-height: .875rem;
.eq-search-item-lable {
text-align: right;
font-size: .375rem;
}
.van-cell {
padding: 0 .25rem;
height: .875rem;
background: #F6F6F6;
border-radius: .1875rem;
.van-field__body {
height: .875rem;
.van-field__control {
height: .875rem;
}
}
}
}
.eq-search-btn {
margin-top: .25rem;
.eq-search-btn-item {
width: 100%;
font-size: .375rem;
}
.eq-search-btn-left {
color: #42D1A5;
border: 0.02rem solid #42D1A5;
}
.eq-search-btn-right {
color: #fff;
background: #4271FF;
border: 0.02rem solid #4271FF;
}
}
}
.eq-list {
width: 94%;
padding: 0 3%;
}
}
</style>

View File

@@ -1,171 +0,0 @@
const cols = [
{
title: '序号',
key: 'index',
align: 'center',
width: 0
},
{
title: '品名(品号)',
key: 'productName',
align: 'center',
width: 120
},
{
title: '品名(料号)',
key: 'partName',
align: 'center',
width: 120
},
{
title: '规格',
key: 'specification',
align: 'center',
width: 120
},
{
title: '密度',
key: 'density',
align: 'center',
width: 120
},
{
title: '门幅',
key: 'larghezza',
align: 'center',
width: 120
},
{
title: '品号',
key: 'productCode',
align: 'center',
width: 120
},
{
title: '料号',
key: 'itemCode',
align: 'center',
width: 120
},
{
title: '分类',
key: 'sort',
align: 'center',
width: 120
},
{
title: '克重',
key: 'grammage',
align: 'center',
width: 120
},
{
title: '市场报价',
key: 'marketPrice',
align: 'center',
width: 120
},
{
title: '加工方式',
key: 'processingMode',
align: 'center',
width: 120
},
{
title: '一阶大类',
key: 'firstLargeClass',
align: 'center',
width: 120
},
{
title: '添加时间',
key: 'createTime',
align: 'center',
width: 120
},
{
title: '厂商编码',
key: 'supplierCodename',
align: 'center',
width: 120
},
{
title: '品质',
key: 'quality',
align: 'center',
width: 120
},
{
title: '等级',
key: 'dominant',
align: 'center',
width: 120
},
{
title: '颜色',
key: 'colorCode',
align: 'center',
width: 120
},
{
title: '原料',
key: 'stockProduct',
align: 'center',
width: 120
},
{
title: '组织',
key: 'tissue',
align: 'center',
width: 120
},
{
title: '仓库数量',
key: 'wareNum',
align: 'center',
width: 120
},
{
title: '厂商库存',
key: 'factureInventory',
align: 'center',
width: 120
},
{
title: '材料成本价',
key: 'costPrice',
align: 'center',
width: 120
},
{
title: '描述信息',
key: 'description',
align: 'center',
width: 120
},
{
title: '定做时间(天)',
key: 'sustomMadeTime',
align: 'center',
width: 120
},
{
title: '是否现货',
key: 'isSpot',
align: 'center',
width: 120
},
{
title: '是否开票',
key: 'isBilling',
align: 'center',
width: 120
},
{
title: '备注',
key: 'remark',
align: 'center',
width: 120
}
]
export default cols