甘浙APP
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"tabWidth": 4,
|
"tabWidth": 2,
|
||||||
"singleQuote": true,
|
"singleQuote": true,
|
||||||
"semi": false,
|
"semi": false,
|
||||||
"printWidth": 100,
|
"printWidth": 100,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "业务办理"
|
"navigationBarTitleText": "首页"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 工作台
|
// 工作台
|
||||||
|
|
@ -36,6 +36,20 @@
|
||||||
"navigationBarTitleText": "我的"
|
"navigationBarTitleText": "我的"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 工器具领料
|
||||||
|
{
|
||||||
|
"path": "pages/toolsLease/toolsLease",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 工器具领料-新增
|
||||||
|
{
|
||||||
|
"path": "pages/toolsLease/toolsLeaseAdd",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
/* 新购及其页面 */
|
/* 新购及其页面 */
|
||||||
// 验收
|
// 验收
|
||||||
{
|
{
|
||||||
|
|
@ -548,22 +562,22 @@
|
||||||
"list": [
|
"list": [
|
||||||
{
|
{
|
||||||
"pagePath": "pages/index/index",
|
"pagePath": "pages/index/index",
|
||||||
"text": "业务办理",
|
"text": "首页",
|
||||||
"iconPath": "static/yeWuBanLi.png",
|
"iconPath": "static/home.png",
|
||||||
"selectedIconPath": "static/yeWuBanLiSelected.png"
|
"selectedIconPath": "static/homeSelected.png"
|
||||||
},
|
|
||||||
{
|
|
||||||
"pagePath": "pages/work/index",
|
|
||||||
"text": "工作台",
|
|
||||||
"iconPath": "static/work.png",
|
|
||||||
"selectedIconPath": "static/workSelected.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pagePath": "pages/search/index",
|
|
||||||
"text": "查询",
|
|
||||||
"iconPath": "static/search.png",
|
|
||||||
"selectedIconPath": "static/searchSelected.png"
|
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// "pagePath": "pages/work/index",
|
||||||
|
// "text": "工作台",
|
||||||
|
// "iconPath": "static/work.png",
|
||||||
|
// "selectedIconPath": "static/workSelected.png"
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "pagePath": "pages/search/index",
|
||||||
|
// "text": "查询",
|
||||||
|
// "iconPath": "static/search.png",
|
||||||
|
// "selectedIconPath": "static/searchSelected.png"
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
"pagePath": "pages/my/index",
|
"pagePath": "pages/my/index",
|
||||||
"text": "我的",
|
"text": "我的",
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,19 @@
|
||||||
<view class="accept page-common">
|
<view class="accept page-common">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<uni-forms :model="formData" ref="form" label-width="200rpx" :rule="rules.value" :border="true" >
|
<uni-forms :model="formData" ref="form" label-width="200rpx" :rule="rules.value" :border="true" >
|
||||||
<uni-forms-item label="领用单位" name="unitId" required>
|
<uni-forms-item label="领用班组" name="teamId" required>
|
||||||
<eselect
|
<uni-data-select v-model="formData.teamId"
|
||||||
|
placeholder="请选择领用班组"
|
||||||
|
:localdata="unitList" @change="getUnit" >
|
||||||
|
</uni-data-select>
|
||||||
|
<!-- <eselect
|
||||||
style="width: 100%; height: 90rpx"
|
style="width: 100%; height: 90rpx"
|
||||||
v-model="formData.unitId"
|
v-model="formData.unitId"
|
||||||
ref="treeSelect"
|
ref="treeSelect"
|
||||||
:options="unitList"
|
:options="unitList"
|
||||||
@change="getProject"
|
@change="getProject"
|
||||||
@clear="clearUnit"
|
@clear="clearUnit"
|
||||||
></eselect>
|
></eselect> -->
|
||||||
</uni-forms-item>
|
</uni-forms-item>
|
||||||
<uni-forms-item label="领用工程" name="proId" required>
|
<uni-forms-item label="领用工程" name="proId" required>
|
||||||
<eselect
|
<eselect
|
||||||
|
|
@ -22,9 +26,9 @@
|
||||||
@clear="clearPro"
|
@clear="clearPro"
|
||||||
></eselect>
|
></eselect>
|
||||||
</uni-forms-item>
|
</uni-forms-item>
|
||||||
<uni-forms-item label="采购申请编号" name="applyCode" required>
|
<!-- <uni-forms-item label="采购申请编号" name="applyCode" required>
|
||||||
<uni-easyinput v-model="formData.applyCode" maxlength="10" placeholder="请输入领料人" />
|
<uni-easyinput v-model="formData.applyCode" maxlength="10" placeholder="请输入采购申请编号" />
|
||||||
</uni-forms-item>
|
</uni-forms-item> -->
|
||||||
<uni-forms-item label="领料人" name="leasePerson" required>
|
<uni-forms-item label="领料人" name="leasePerson" required>
|
||||||
<uni-easyinput v-model="formData.leasePerson" maxlength="10" placeholder="请输入领料人" />
|
<uni-easyinput v-model="formData.leasePerson" maxlength="10" placeholder="请输入领料人" />
|
||||||
</uni-forms-item>
|
</uni-forms-item>
|
||||||
|
|
@ -137,13 +141,13 @@
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
import eselect from '@/components/tree-select/eselect.vue'
|
import eselect from '@/components/tree-select/eselect.vue'
|
||||||
import { onLoad,onReady } from '@dcloudio/uni-app'
|
import { onLoad,onReady } from '@dcloudio/uni-app'
|
||||||
import { getUnitList,getProjectList,getConfigList,getLevelThreeType,insertApp,getAgreementInfoById,getListsByConfigId,getTypeDataList,leaseTask } from '../../services/back.js';
|
import { getBmTeamList,getProjectList,getConfigList,getLevelThreeType,insertApp,getAgreementInfoById,getListsByConfigId,getTypeDataList,leaseTask } from '@/services/back.js';
|
||||||
const taskInfo = ref({})
|
const taskInfo = ref({})
|
||||||
const treeSelect = ref(null)
|
const treeSelect = ref(null)
|
||||||
const treeSelect2 = ref(null)
|
const treeSelect2 = ref(null)
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
value: {
|
value: {
|
||||||
unitId: '',
|
teamId: '',
|
||||||
proId: '',
|
proId: '',
|
||||||
leasePerson: '',
|
leasePerson: '',
|
||||||
phone: '',
|
phone: '',
|
||||||
|
|
@ -233,11 +237,22 @@ const getUnit = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: proId.value,
|
projectId: proId.value,
|
||||||
}
|
}
|
||||||
getUnitList(obj)
|
getBmTeamList()
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res)
|
console.log('🚀 ~ .班组 ~ res:', res)
|
||||||
unitList.value = res.data
|
// unitList.value = res.data
|
||||||
// getAgreement()
|
if (res.data.rows.length > 0) {
|
||||||
|
unitList.value = res.data.rows.map(option => {
|
||||||
|
return {
|
||||||
|
value: option.id,
|
||||||
|
text: option.teamName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
unitList.value = []
|
||||||
|
}
|
||||||
|
console.log('🚀 ~ getUnit ~ unitList.value:', unitList.value)
|
||||||
|
|
||||||
if (unitId.value && proId.value) {
|
if (unitId.value && proId.value) {
|
||||||
getAgreement()
|
getAgreement()
|
||||||
}
|
}
|
||||||
|
|
@ -247,20 +262,20 @@ const getUnit = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//工程
|
//工程
|
||||||
const getProject = async (e) => {
|
const getProject = async () => {
|
||||||
flagFile.value = false
|
// flagFile.value = false
|
||||||
if (e.typeKey == 'fbs') {
|
// if (e.typeKey == 'fbs') {
|
||||||
flagFile.value = true
|
// flagFile.value = true
|
||||||
}
|
// }
|
||||||
console.log('🚀 ~ getProject ~ e:', e)
|
// console.log('🚀 ~ getProject ~ e:', e)
|
||||||
unitId.value = e?.id || ''
|
// unitId.value = e?.id || ''
|
||||||
formData.value.unitId = e?.id || ''
|
// formData.value.unitId = e?.id || ''
|
||||||
let obj = {
|
// let obj = {
|
||||||
unitId: unitId.value,
|
// unitId: unitId.value,
|
||||||
// "isApp":true
|
// // "isApp":true
|
||||||
}
|
// }
|
||||||
try {
|
try {
|
||||||
const res = await getProjectList(obj);
|
const res = await getProjectList({});
|
||||||
proList.value = res.data;
|
proList.value = res.data;
|
||||||
// proId.value=""
|
// proId.value=""
|
||||||
// treeSelect2.value.clearInput();
|
// treeSelect2.value.clearInput();
|
||||||
|
|
@ -449,19 +464,20 @@ const submitNum = async() => {
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for (let i = 0; i < typeList.value.length; i++) {
|
// for (let i = 0; i < typeList.value.length; i++) {
|
||||||
if (typeList.value[i].preNum <= 0 || !typeList.value[i].preNum) {
|
// if (typeList.value[i].preNum <= 0 || !typeList.value[i].preNum) {
|
||||||
uni.showToast({
|
// uni.showToast({
|
||||||
title: '预领数量不能为空或等于0',
|
// title: '预领数量不能为空或等于0',
|
||||||
icon: 'none',
|
// icon: 'none',
|
||||||
duration: 1000
|
// duration: 1000
|
||||||
})
|
// })
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
let obj = {
|
let obj = {
|
||||||
"leaseApplyInfo":{
|
"leaseApplyInfo":{
|
||||||
"unitId":unitId.value,
|
"unitId":unitId.value,
|
||||||
|
"teamId":formData.value.teamId,
|
||||||
"projectId":proId.value,
|
"projectId":proId.value,
|
||||||
"agreementId":agreementId.value,
|
"agreementId":agreementId.value,
|
||||||
"leasePerson":formData.value.leasePerson,
|
"leasePerson":formData.value.leasePerson,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,233 @@
|
||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="new-purchase">
|
||||||
|
<div class="title-text">
|
||||||
|
<div></div>
|
||||||
|
<div class="purchase-title">业务办理</div>
|
||||||
|
</div>
|
||||||
|
<view
|
||||||
|
class="purchase-item"
|
||||||
|
:key="index"
|
||||||
|
@tap="onNavigateTo(item.url)"
|
||||||
|
v-for="(item, index) in newInfoList"
|
||||||
|
>
|
||||||
|
<image :src="item.iconSrc" mode="scaleToFill" />
|
||||||
|
<text>
|
||||||
|
{{ item.title }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- <view class="new-purchase">
|
||||||
|
<div class="title-text">
|
||||||
|
<div></div>
|
||||||
|
<div class="purchase-title">电子档案</div>
|
||||||
|
</div>
|
||||||
|
<view
|
||||||
|
class="purchase-item"
|
||||||
|
:key="index"
|
||||||
|
@tap="onNavigateTo(item.url)"
|
||||||
|
v-for="(item, index) in newPurchaseList"
|
||||||
|
>
|
||||||
|
<image :src="item.iconSrc" mode="scaleToFill" />
|
||||||
|
<text>
|
||||||
|
{{ item.title }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="new-purchase">
|
||||||
|
<div class="title-text">
|
||||||
|
<div></div>
|
||||||
|
<div class="purchase-title">检验预警</div>
|
||||||
|
</div>
|
||||||
|
<view
|
||||||
|
class="purchase-item"
|
||||||
|
:key="index"
|
||||||
|
@tap="onNavigateTo(item.url)"
|
||||||
|
v-for="(item, index) in pickingList"
|
||||||
|
>
|
||||||
|
<image :src="item.iconSrc" mode="scaleToFill" />
|
||||||
|
<text>
|
||||||
|
{{ item.title }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
|
||||||
|
<view class="new-purchase">
|
||||||
|
<div class="title-text">
|
||||||
|
<div></div>
|
||||||
|
<div class="purchase-title">综合查询</div>
|
||||||
|
</div>
|
||||||
|
<view
|
||||||
|
class="purchase-item"
|
||||||
|
:key="index"
|
||||||
|
@tap="onNavigateTo(item.url)"
|
||||||
|
v-for="(item, index) in integratedQueryList"
|
||||||
|
>
|
||||||
|
<image :src="item.iconSrc" mode="scaleToFill" />
|
||||||
|
<text>
|
||||||
|
{{ item.title }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue'
|
||||||
|
// 业务办理
|
||||||
|
const newInfoList = ref([
|
||||||
|
{
|
||||||
|
title: '工器具领料申请',
|
||||||
|
url: '/pages/business/leaseApply',
|
||||||
|
iconSrc: '../../static/workbench/bianMa.png',
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '直转申请',
|
||||||
|
// url: '/pages/business/directApply',
|
||||||
|
// iconSrc: '../../static/workbench/panDian.png',
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '费用减免',
|
||||||
|
// url: '/pages/business/discountApply',
|
||||||
|
// iconSrc: '../../static/workbench/panDian.png',
|
||||||
|
// },
|
||||||
|
])
|
||||||
|
// 电子档案
|
||||||
|
const newPurchaseList = ref([
|
||||||
|
{
|
||||||
|
title: '电子档案',
|
||||||
|
url: '',
|
||||||
|
iconSrc: '../../static/workbench/purchaseAccept.png',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
// 检验预警
|
||||||
|
const pickingList = ref([
|
||||||
|
{
|
||||||
|
title: '检验预期',
|
||||||
|
url: '',
|
||||||
|
iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
// 综合查询
|
||||||
|
const integratedQueryList = ref([
|
||||||
|
// {
|
||||||
|
// title: '电子标签查询',
|
||||||
|
// url: '/pages/integratedQuery/electronicTag/index',
|
||||||
|
// iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '工器具领料记录',
|
||||||
|
url: '/pages/integratedQuery/receiveRecord/index',
|
||||||
|
iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '直转记录',
|
||||||
|
// url: '/pages/integratedQuery/directRotationRecord/index',
|
||||||
|
// iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '结算减免记录',
|
||||||
|
// url: '/pages/integratedQuery/derateRecord/index',
|
||||||
|
// iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '结算记录',
|
||||||
|
// url: '/pages/integratedQuery/settleAccountsRecord/index',
|
||||||
|
// iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// title: '在用查询',
|
||||||
|
// url: '/pages/integratedQuery/inUseRecord/index',
|
||||||
|
// iconSrc: '../../static/workbench/backCreate.png',
|
||||||
|
// },
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
const onNavigateTo = (url) => {
|
||||||
|
uni.navigateTo({ url })
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
page {
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
padding: 24rpx;
|
||||||
|
min-height: 100vh;
|
||||||
|
background-color: #f7f8fa;
|
||||||
|
|
||||||
|
|
||||||
|
// 功能区块样式
|
||||||
|
.new-purchase {
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
padding: 10rpx 8rpx;
|
||||||
|
margin-bottom: 8rpx;
|
||||||
|
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
// 标题样式
|
||||||
|
.purchase-title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
margin-top: 5px;
|
||||||
|
padding: 0px 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
// font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text div:first-child {
|
||||||
|
width: 5px;
|
||||||
|
height: 10px;
|
||||||
|
margin-right: 8px;
|
||||||
|
background-color: #2d73cf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 功能项样式
|
||||||
|
.purchase-item {
|
||||||
|
width: 25%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
padding: 4rpx 0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
transform: scale(0.95);
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图标样式
|
||||||
|
image {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文字样式
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #262626;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,233 +1,453 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="page-bg">
|
||||||
<view class="new-purchase">
|
<view class="upper-user">
|
||||||
<div class="title-text">
|
<view class="user-lef">
|
||||||
<div></div>
|
<image src="/src/static/bg1.jpg" mode="" />
|
||||||
<div class="purchase-title">业务办理</div>
|
</view>
|
||||||
</div>
|
<view class="user-rig">
|
||||||
<view
|
<view>你好!{{ username }}</view>
|
||||||
class="purchase-item"
|
<view>欢迎使用材料站管理系统</view>
|
||||||
:key="index"
|
</view>
|
||||||
@tap="onNavigateTo(item.url)"
|
|
||||||
v-for="(item, index) in newInfoList"
|
|
||||||
>
|
|
||||||
<image :src="item.iconSrc" mode="scaleToFill" />
|
|
||||||
<text>
|
|
||||||
{{ item.title }}
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="new-purchase">
|
|
||||||
<div class="title-text">
|
|
||||||
<div></div>
|
|
||||||
<div class="purchase-title">电子档案</div>
|
|
||||||
</div>
|
|
||||||
<view
|
|
||||||
class="purchase-item"
|
|
||||||
:key="index"
|
|
||||||
@tap="onNavigateTo(item.url)"
|
|
||||||
v-for="(item, index) in newPurchaseList"
|
|
||||||
>
|
|
||||||
<image :src="item.iconSrc" mode="scaleToFill" />
|
|
||||||
<text>
|
|
||||||
{{ item.title }}
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="new-purchase">
|
|
||||||
<div class="title-text">
|
|
||||||
<div></div>
|
|
||||||
<div class="purchase-title">检验预警</div>
|
|
||||||
</div>
|
|
||||||
<view
|
|
||||||
class="purchase-item"
|
|
||||||
:key="index"
|
|
||||||
@tap="onNavigateTo(item.url)"
|
|
||||||
v-for="(item, index) in pickingList"
|
|
||||||
>
|
|
||||||
<image :src="item.iconSrc" mode="scaleToFill" />
|
|
||||||
<text>
|
|
||||||
{{ item.title }}
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="new-purchase">
|
|
||||||
<div class="title-text">
|
|
||||||
<div></div>
|
|
||||||
<div class="purchase-title">综合查询</div>
|
|
||||||
</div>
|
|
||||||
<view
|
|
||||||
class="purchase-item"
|
|
||||||
:key="index"
|
|
||||||
@tap="onNavigateTo(item.url)"
|
|
||||||
v-for="(item, index) in integratedQueryList"
|
|
||||||
>
|
|
||||||
<image :src="item.iconSrc" mode="scaleToFill" />
|
|
||||||
<text>
|
|
||||||
{{ item.title }}
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
<view class="sliders">
|
||||||
|
<view>
|
||||||
|
<h2>{{ todayDatas.dayLeaseNum || 0 }}</h2>
|
||||||
|
<span>当日领料</span>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<h2>{{ todayDatas.dayBackNum || 0 }}</h2>
|
||||||
|
<span>当日退料</span>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<h2>{{ todayDatas.dayInputNum || 0 }}</h2>
|
||||||
|
<span>当日入库</span>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<h2>{{ todayDatas.dayOutNum || 0 }}</h2>
|
||||||
|
<span>当日出库</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="sections">
|
||||||
|
<view v-for="(part, index) in isUsingList" :key="index" @click="jumpUrl(part.iconMark)">
|
||||||
|
<image :src="`/src/static/${part.iconMark}.png`" mode="" />
|
||||||
|
<span>{{ part.iconName }}</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<h4 style="width: 90%; margin: 3vh auto">业务统计</h4>
|
||||||
|
<view class="wait-do">
|
||||||
|
<view class="llsp" @click="jumpUrl('fetchExam')">
|
||||||
|
<h4>{{ waitList.leaseNum || 0 }}</h4>
|
||||||
|
<h5>工器具领料</h5>
|
||||||
|
</view>
|
||||||
|
<view class="tlsp" @click="jumpUrl('exitExam')">
|
||||||
|
<h4>{{ waitList.backNum || 0 }}</h4>
|
||||||
|
<h5>工器具退料</h5>
|
||||||
|
</view>
|
||||||
|
<view class="bfsh" @click="jumpUrl('crashExam')">
|
||||||
|
<h4>{{ waitList.scrapNum || 0 }}</h4>
|
||||||
|
<h5>材料退料</h5>
|
||||||
|
</view>
|
||||||
|
<view class="sysh" @click="jumpUrl('testExam')">
|
||||||
|
<h4>{{ waitList.trialNum || 0 }}</h4>
|
||||||
|
<h5>材料领料</h5>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <h4
|
||||||
|
style="
|
||||||
|
width: 90%;
|
||||||
|
margin: 3vh auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<span>通知公告</span>
|
||||||
|
<text @click="seeMore" style="color: #5297ff; font-weight: normal; font-size: 12px"
|
||||||
|
>查看更多>></text
|
||||||
|
>
|
||||||
|
</h4>
|
||||||
|
<view
|
||||||
|
class="single-notice"
|
||||||
|
v-for="(notice, index) in noticeList"
|
||||||
|
:key="index"
|
||||||
|
@click="noticeDetail(notice.noticeId)"
|
||||||
|
>
|
||||||
|
<view class="notice-lef">
|
||||||
|
<image src="/src/static/notice.png" mode="" />
|
||||||
|
</view>
|
||||||
|
<view class="notice-rig">
|
||||||
|
<h4>{{ notice.noticeTitle }}</h4>
|
||||||
|
<h5>{{ notice.createTime }}</h5>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uni-popup ref="popup" type="center" :mask-click="false">
|
||||||
|
<view class="popup">
|
||||||
|
<view class="pop-top">
|
||||||
|
<h4>公告({{ unreadIndex.value + 1 }}/{{ unreadList.value.length }})</h4>
|
||||||
|
<uni-icons
|
||||||
|
style="color: #aaaaaa; font-weight: bold"
|
||||||
|
type="closeempty"
|
||||||
|
@click="closePopup"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
<view
|
||||||
|
class="unread-notice"
|
||||||
|
v-for="(list, index) in unreadList"
|
||||||
|
:key="index"
|
||||||
|
v-show="index == unreadIndex"
|
||||||
|
>
|
||||||
|
<view class="tit">
|
||||||
|
{{ list.noticeTitle }}
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view>发布人:{{ list.createBy }}</view>
|
||||||
|
<view>发布时间:{{ list.createTime }}</view>
|
||||||
|
<view>公告内容:{{ list.noticeContent }}</view>
|
||||||
|
</view>
|
||||||
|
<view
|
||||||
|
class="read-one"
|
||||||
|
v-show="unreadIndex.value < unreadList.value.length - 1"
|
||||||
|
@click="readOneNotice(list.noticeId)"
|
||||||
|
>
|
||||||
|
我知道了
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-popup> -->
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref, reactive, getCurrentInstance, onMounted } from 'vue'
|
||||||
// 业务办理
|
import { onShow, onNavigationBarButtonTap } from '@dcloudio/uni-app'
|
||||||
const newInfoList = ref([
|
|
||||||
{
|
|
||||||
title: '领用申请',
|
|
||||||
url: '/pages/business/leaseApply',
|
|
||||||
iconSrc: '../../static/workbench/bianMa.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '直转申请',
|
|
||||||
url: '/pages/business/directApply',
|
|
||||||
iconSrc: '../../static/workbench/panDian.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '费用减免',
|
|
||||||
url: '/pages/business/discountApply',
|
|
||||||
iconSrc: '../../static/workbench/panDian.png',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
// 电子档案
|
|
||||||
const newPurchaseList = ref([
|
|
||||||
{
|
|
||||||
title: '电子档案',
|
|
||||||
url: '',
|
|
||||||
iconSrc: '../../static/workbench/purchaseAccept.png',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
// 检验预警
|
const { proxy } = getCurrentInstance()
|
||||||
const pickingList = ref([
|
const popup = ref(null)
|
||||||
{
|
|
||||||
title: '检验预期',
|
const showLoading = ref(false)
|
||||||
url: '',
|
const username = ref(uni.getStorageSync('userInfo').username)
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
const noticeList = ref([])
|
||||||
},
|
const todayDatas = reactive({
|
||||||
|
dayLeaseNum: '',
|
||||||
|
dayBackNum: '',
|
||||||
|
dayInputNum: '',
|
||||||
|
dayBackNum: '',
|
||||||
|
dayOutNum: '',
|
||||||
|
})
|
||||||
|
const waitList = reactive({
|
||||||
|
lldsp: '',
|
||||||
|
tldsp: '',
|
||||||
|
bfdsh: '',
|
||||||
|
sydsh: '',
|
||||||
|
leaseNum: '',
|
||||||
|
backNum: '',
|
||||||
|
scrapNum: '',
|
||||||
|
trialNum: '',
|
||||||
|
})
|
||||||
|
const isUsingList = ref([
|
||||||
|
{ iconMark: 'materialsLease', iconName: '材料领料' },
|
||||||
|
{ iconMark: 'materialsBack', iconName: '材料退料' },
|
||||||
|
{ iconMark: 'toolsLease', iconName: '工器具领料' },
|
||||||
|
{ iconMark: 'toolsBack', iconName: '工器具退料' },
|
||||||
])
|
])
|
||||||
|
const percent = ref('')
|
||||||
|
const unreadList = ref([])
|
||||||
|
const unreadIndex = ref(0)
|
||||||
|
const store = ref([])
|
||||||
|
|
||||||
// 综合查询
|
function seeMore() {
|
||||||
const integratedQueryList = ref([
|
uni.navigateTo({
|
||||||
{
|
url: '/pages/moreNotice/moreNotice',
|
||||||
title: '电子标签查询',
|
})
|
||||||
url: '/pages/integratedQuery/electronicTag/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '领用记录',
|
|
||||||
url: '/pages/integratedQuery/receiveRecord/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '直转记录',
|
|
||||||
url: '/pages/integratedQuery/directRotationRecord/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '结算减免记录',
|
|
||||||
url: '/pages/integratedQuery/derateRecord/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '结算记录',
|
|
||||||
url: '/pages/integratedQuery/settleAccountsRecord/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '在用查询',
|
|
||||||
url: '/pages/integratedQuery/inUseRecord/index',
|
|
||||||
iconSrc: '../../static/workbench/backCreate.png',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
const onNavigateTo = (url) => {
|
|
||||||
uni.navigateTo({ url })
|
|
||||||
}
|
}
|
||||||
|
function noticeDetail(id) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/noticeDetail/noticeDetail?noticeId=${id}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function jumpUrl(path) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/${path}/${path}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function extractTextFromHTML(htmlString) {
|
||||||
|
return htmlString.replace(/<[^>]*>/g, '')
|
||||||
|
}
|
||||||
|
function openPopup() {
|
||||||
|
popup.value && popup.value.open()
|
||||||
|
}
|
||||||
|
function closePopup() {
|
||||||
|
const noticeArr = unreadList.value.map((item) => item.noticeId)
|
||||||
|
uploadUnNotice(noticeArr)
|
||||||
|
popup.value && popup.value.close()
|
||||||
|
}
|
||||||
|
function readOneNotice(noticeId) {
|
||||||
|
uploadUnNotice([noticeId])
|
||||||
|
unreadIndex.value++
|
||||||
|
}
|
||||||
|
function uploadUnNotice(arr) {
|
||||||
|
proxy.$api.index
|
||||||
|
.uploadNotice({
|
||||||
|
noticeId: arr,
|
||||||
|
userId: uni.getStorageSync('userInfo').userid,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
// 可根据需要处理
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
// 可根据需要处理
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 页面显示时获取数据
|
||||||
|
onShow(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
// 顶部按钮事件
|
||||||
|
onNavigationBarButtonTap((e) => {
|
||||||
|
if (e.text == '权限') {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/authManage/authManage',
|
||||||
|
})
|
||||||
|
} else if (e.text == '扫一扫') {
|
||||||
|
uni.scanCode({
|
||||||
|
success: (res) => {
|
||||||
|
const fixedRes = res.result.split('=')[1]
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/indexScan/indexScan?scan=${fixedRes}`,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
page {
|
.page-bg {
|
||||||
overflow: hidden;
|
background: url('/src/static/bgd.png');
|
||||||
overflow-y: auto;
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
.content {
|
.upper-user {
|
||||||
padding: 24rpx;
|
width: 85%;
|
||||||
min-height: 100vh;
|
/* margin: 8vh auto; */
|
||||||
background-color: #f7f8fa;
|
margin-bottom: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 15rpx;
|
||||||
// 功能区块样式
|
padding-top: 8vh;
|
||||||
.new-purchase {
|
display: flex;
|
||||||
background-color: #fff;
|
.user-lef {
|
||||||
border-radius: 20rpx;
|
width: 15%;
|
||||||
padding: 10rpx 8rpx;
|
height: 6vh;
|
||||||
margin-bottom: 8rpx;
|
border-radius: 50%;
|
||||||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
|
overflow: hidden;
|
||||||
display: flex;
|
image {
|
||||||
flex-wrap: wrap;
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
// 标题样式
|
|
||||||
.purchase-title {
|
|
||||||
font-size: 32rpx;
|
|
||||||
font-weight: 600;
|
|
||||||
color: #262626;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title-text {
|
|
||||||
margin-top: 5px;
|
|
||||||
padding: 0px 0;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
// font-size: 14px;
|
|
||||||
font-weight: bold;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title-text div:first-child {
|
|
||||||
width: 5px;
|
|
||||||
height: 10px;
|
|
||||||
margin-right: 8px;
|
|
||||||
background-color: #2d73cf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 功能项样式
|
|
||||||
.purchase-item {
|
|
||||||
width: 25%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
padding: 4rpx 0;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 图标样式
|
|
||||||
image {
|
|
||||||
width: 120rpx;
|
|
||||||
height: 120rpx;
|
|
||||||
margin-bottom: 2rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 文字样式
|
|
||||||
text {
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #262626;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
.user-rig {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 20rpx;
|
||||||
|
view {
|
||||||
|
width: 100%;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
view:first-child {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
view:last-child {
|
||||||
|
font-size: 12px;
|
||||||
|
letter-spacing: 6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.sliders {
|
||||||
|
width: 85%;
|
||||||
|
/* height: 5vh; */
|
||||||
|
margin: 4vh auto;
|
||||||
|
margin-bottom: 2vh;
|
||||||
|
border-radius: 15rpx 15rpx 0 0;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
backdrop-filter: blur(2px);
|
||||||
|
border: 1px solid #b3d3ff;
|
||||||
|
padding: 1.3vh 0;
|
||||||
|
display: flex;
|
||||||
|
view {
|
||||||
|
width: 25%;
|
||||||
|
height: 50px;
|
||||||
|
border-right: 1px solid #cde2ff;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
view:last-child {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.sections {
|
||||||
|
width: 90%;
|
||||||
|
margin: 15rpx auto;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-top: 2vh;
|
||||||
|
view {
|
||||||
|
width: 25%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 2vh;
|
||||||
|
image {
|
||||||
|
width: 58%;
|
||||||
|
height: 6vh;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
font-size: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.wait-do {
|
||||||
|
width: 90%;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-around;
|
||||||
|
view {
|
||||||
|
width: 48%;
|
||||||
|
height: 13vh;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 25rpx;
|
||||||
|
h4 {
|
||||||
|
margin-bottom: 5rpx;
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.llsp {
|
||||||
|
background: url('/src/static/llsp.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.tlsp {
|
||||||
|
background: url('/src/static/tlsp.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.bfsh {
|
||||||
|
background: url('/src/static/bfsh.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.sysh {
|
||||||
|
background: url('/src/static/sysh.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.single-notice {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
border-bottom: 1px solid #dee3ea;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 20rpx 5%;
|
||||||
|
display: flex;
|
||||||
|
background-color: #fff;
|
||||||
|
.notice-lef {
|
||||||
|
width: 12%;
|
||||||
|
height: 5.5vh;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.notice-rig {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-left: 20rpx;
|
||||||
|
h4 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #8f9298;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.popup {
|
||||||
|
width: 80vw;
|
||||||
|
height: 90vh;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
overflow-y: auto;
|
||||||
|
background: linear-gradient(#d9e7fe, #fff, #fff, #fff);
|
||||||
|
.pop-top {
|
||||||
|
width: 100%;
|
||||||
|
height: 5vh;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0 25rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.unread-notice {
|
||||||
|
width: 85%;
|
||||||
|
margin: 40rpx auto;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
.tit {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.info {
|
||||||
|
width: 100%;
|
||||||
|
view {
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
}
|
||||||
|
view:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.read-one {
|
||||||
|
width: 40%;
|
||||||
|
margin: 40rpx auto;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
padding: 10rpx 0;
|
||||||
|
background-color: #3788ff;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -323,6 +323,7 @@ const options2 = ref([
|
||||||
// 点击滑动按钮
|
// 点击滑动按钮
|
||||||
const onClick = (e, item) => {
|
const onClick = (e, item) => {
|
||||||
console.log("tttttttttt",e,item)
|
console.log("tttttttttt",e,item)
|
||||||
|
console.log('🚀 ~ onClick ~ taskStatus.value:', taskStatus.value)
|
||||||
if(taskStatus.value==3){//出库进行中
|
if(taskStatus.value==3){//出库进行中
|
||||||
console.log("333333333333333333333333333")
|
console.log("333333333333333333333333333")
|
||||||
if (e.index === 0) {
|
if (e.index === 0) {
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@
|
||||||
<span class="code">{{ item.code }}</span>
|
<span class="code">{{ item.code }}</span>
|
||||||
<div class="cont">
|
<div class="cont">
|
||||||
<uni-tag
|
<uni-tag
|
||||||
:text="item.taskStatus === 3 ? '未完成' : '已完成'"
|
:text="item.taskStatus === 1 ? '未完成' : '已完成'"
|
||||||
:type="item.taskStatus === 3 ? 'warning' : 'success'"
|
:type="item.taskStatus === 1 ? 'warning' : 'success'"
|
||||||
:custom-style="item.taskStatus === 4 ? successStyle : ''"
|
:custom-style="item.taskStatus === 4 ? successStyle : ''"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -132,7 +132,7 @@ const queryParams = ref({
|
||||||
startTime: '', // 开始时间
|
startTime: '', // 开始时间
|
||||||
endTime: '', // 结束时间
|
endTime: '', // 结束时间
|
||||||
keyWord: '', // 关键字
|
keyWord: '', // 关键字
|
||||||
statusList: [3], // 状态
|
statusList: [1], // 状态
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 3,
|
pageSize: 3,
|
||||||
})
|
})
|
||||||
|
|
@ -222,7 +222,7 @@ const changeTab = (index) => {
|
||||||
queryParams.value.pageNum = 1
|
queryParams.value.pageNum = 1
|
||||||
getTableList(true)
|
getTableList(true)
|
||||||
} else if (index == 1) {
|
} else if (index == 1) {
|
||||||
queryParams.value.statusList = [3] // 查未完成的
|
queryParams.value.statusList = [1] // 查未完成的
|
||||||
queryParams.value.pageNum = 1
|
queryParams.value.pageNum = 1
|
||||||
getTableList(true)
|
getTableList(true)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,244 @@
|
||||||
|
<template>
|
||||||
|
<uni-nav-bar
|
||||||
|
dark
|
||||||
|
:fixed="true"
|
||||||
|
shadow
|
||||||
|
background-color="#4AA4EA"
|
||||||
|
status-bar
|
||||||
|
left-icon="left"
|
||||||
|
left-text="返回"
|
||||||
|
title="领料出库"
|
||||||
|
right-text="新增"
|
||||||
|
@clickLeft="back"
|
||||||
|
@clickRight="add"
|
||||||
|
/>
|
||||||
|
<div class="content">
|
||||||
|
<div class="query">
|
||||||
|
<uni-datetime-picker
|
||||||
|
v-model="queryParams.range"
|
||||||
|
type="daterange"
|
||||||
|
start-placeholder="开始"
|
||||||
|
end-placeholder="结束"
|
||||||
|
/>
|
||||||
|
<uni-easyinput
|
||||||
|
errorMessage
|
||||||
|
v-model="queryParams.keyWord"
|
||||||
|
focus
|
||||||
|
placeholder="请输入内容"
|
||||||
|
style="margin: 0 5px"
|
||||||
|
/>
|
||||||
|
<button size="mini" style="background-color: #f0a037; color: #fff" @click="handleQuery">
|
||||||
|
查询
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="width: 60%; margin: 10px auto">
|
||||||
|
<uni-segmented-control
|
||||||
|
:values="items"
|
||||||
|
:current="current"
|
||||||
|
@clickItem="onClickItem"
|
||||||
|
styleType="button"
|
||||||
|
activeColor="#007aff"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 滚动列表 -->
|
||||||
|
<scroll-view scroll-y @scrolltolower="onScrollTolower">
|
||||||
|
<uni-swipe-action>
|
||||||
|
<uni-swipe-action-item
|
||||||
|
:right-options="current == 0 ? options : []"
|
||||||
|
v-for="(item, index) in tableList"
|
||||||
|
:key="index"
|
||||||
|
@click="(e) => onClickSwipe(e, item)"
|
||||||
|
>
|
||||||
|
<div class="list">
|
||||||
|
<div style="margin-right: 8px">{{ index + 1 }}.</div>
|
||||||
|
<div class="item">
|
||||||
|
<div>申请时间: {{ item.createTime }}</div>
|
||||||
|
<div>领料单号: {{ item.code }}</div>
|
||||||
|
<div>领料工器具: {{ item.maTypeNames }}</div>
|
||||||
|
<div>领料班组: {{ item.teamName }}</div>
|
||||||
|
<div>领料工程: {{ item.projectName }}</div>
|
||||||
|
<div>领料人: {{ item.leasePerson }}</div>
|
||||||
|
<div>预领数量: {{ item.preCountNum || 0 }}</div>
|
||||||
|
<div>已领数量: {{ item.alNum || 0 }}</div>
|
||||||
|
<div>待领数量: {{ item.waitCountNum || 0 }}</div>
|
||||||
|
<div>
|
||||||
|
状态:
|
||||||
|
<uni-tag
|
||||||
|
:text="item.taskStatusName"
|
||||||
|
:inverted="true"
|
||||||
|
:type="item.taskStatus == 1 ? 'error' : 'success'"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</uni-swipe-action-item>
|
||||||
|
</uni-swipe-action>
|
||||||
|
|
||||||
|
<div style="display: flex; justify-content: center; align-items: center; height: 50px">
|
||||||
|
{{ finish ? '没有更多数据了~' : '正在加载...' }}
|
||||||
|
</div>
|
||||||
|
</scroll-view>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { onLoad } from '@dcloudio/uni-app'
|
||||||
|
import { ref, reactive, computed } from 'vue'
|
||||||
|
import { getPickingOutboundListAPI, deleteLeaseApplyApi } from '@/services/picking/outbound.js'
|
||||||
|
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
range: [],
|
||||||
|
keyWord: '',
|
||||||
|
taskStatus: 1,
|
||||||
|
})
|
||||||
|
const items = ref(['未完成', '已完成'])
|
||||||
|
const current = ref(0)
|
||||||
|
const tableList = ref([])
|
||||||
|
const total = ref(0)
|
||||||
|
const options = ref([
|
||||||
|
{
|
||||||
|
text: '编辑',
|
||||||
|
style: {
|
||||||
|
backgroundColor: '#2f8cf0',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '删除',
|
||||||
|
style: {
|
||||||
|
backgroundColor: '#ff4949',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
])
|
||||||
|
const finish = computed(() => {
|
||||||
|
if (total.value === tableList.value.length) return true
|
||||||
|
})
|
||||||
|
const back = () => {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const add = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/toolsLease/toolsLeaseAdd',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
console.log('🚀 ~ handleQuery ~ handleQuery:', queryParams)
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = async () => {
|
||||||
|
const params = {
|
||||||
|
pageNum: queryParams.pageNum,
|
||||||
|
pageSize: queryParams.pageSize,
|
||||||
|
startTime: queryParams.range && queryParams.range[0],
|
||||||
|
endTime: queryParams.range && queryParams.range[1],
|
||||||
|
keyWord: queryParams.keyWord,
|
||||||
|
taskStatus: queryParams.taskStatus,
|
||||||
|
}
|
||||||
|
console.log('🚀 ~ getList ~ params:', params)
|
||||||
|
try {
|
||||||
|
const res = await getPickingOutboundListAPI(params)
|
||||||
|
console.log('🚀 ~ getList ~ res:', res)
|
||||||
|
if (res.code == 200) {
|
||||||
|
tableList.value = res.data.rows
|
||||||
|
console.log('🚀 ~ getList ~ tableList.value:', tableList.value)
|
||||||
|
total.value = res.data.total
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log('🚀 ~ getList ~ error:', error)
|
||||||
|
tableList.value = []
|
||||||
|
total.value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击列表项
|
||||||
|
const onClickItem = (item) => {
|
||||||
|
current.value = item.currentIndex
|
||||||
|
queryParams.taskStatus = item.currentIndex == 0 ? 1 : 4
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 滚动事件
|
||||||
|
const onScrollTolower = () => {
|
||||||
|
console.log('🚀 ~ onScrollTolower ~ onScrollTolower:')
|
||||||
|
if (total.value > tableList.value.length) {
|
||||||
|
queryParams.pageSize += 10
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 滑动
|
||||||
|
const onClickSwipe = (e, item) => {
|
||||||
|
console.log('🚀 ~ onClickSwipe ~ e:', e, item)
|
||||||
|
if (e.index == 0) {
|
||||||
|
// 编辑
|
||||||
|
const params = JSON.stringify({
|
||||||
|
id: item.id,
|
||||||
|
taskId: item.taskId,
|
||||||
|
isEdit: true,
|
||||||
|
})
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/toolsLease/toolsLeaseAdd?params=${params}`,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 删除
|
||||||
|
deleteItem(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
const deleteItem = (item) => {
|
||||||
|
console.log('🚀 ~ deleteItem ~ item:', item)
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '确定删除吗?',
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
deleteLeaseApplyApi([item.id])
|
||||||
|
.then((res) => {
|
||||||
|
console.log('🚀 ~ .then ~ res:', res)
|
||||||
|
if (res.code == 200) {
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log('🚀 ~ deleteItem ~ err:', err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onLoad((options) => {
|
||||||
|
console.log('🚀 ~ onLoad ~ options:', options)
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.content {
|
||||||
|
padding: 10px;
|
||||||
|
height: calc(100vh - 147px);
|
||||||
|
.query {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
color: #f0a037;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
min-height: 120px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: #fafafa;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 8px;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
<template>
|
||||||
|
<uni-nav-bar
|
||||||
|
dark
|
||||||
|
:fixed="true"
|
||||||
|
shadow
|
||||||
|
background-color="#4AA4EA"
|
||||||
|
status-bar
|
||||||
|
left-icon="left"
|
||||||
|
left-text="返回"
|
||||||
|
:title="title"
|
||||||
|
right-icon="scan"
|
||||||
|
@clickLeft="back"
|
||||||
|
/>
|
||||||
|
<div>
|
||||||
|
新增
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { onLoad } from '@dcloudio/uni-app'
|
||||||
|
import { ref, reactive } from 'vue'
|
||||||
|
|
||||||
|
const title = ref('新增领料')
|
||||||
|
const params = ref({})
|
||||||
|
|
||||||
|
const back = () => {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onLoad((opt) => {
|
||||||
|
console.log('onLoad', opt)
|
||||||
|
params.value = JSON.parse(opt.params)
|
||||||
|
title.value = params.value.isEdit ? '编辑领料' : '新增领料'
|
||||||
|
console.log('🚀 ~ onLoad ~ params.value:', params.value)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -196,7 +196,7 @@ export const getDetailsByIdApi = (data) => {
|
||||||
export const leaseTask = (data) => {
|
export const leaseTask = (data) => {
|
||||||
return http({
|
return http({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: '/material/leaseTask',
|
url: '/material/lease_apply_info',
|
||||||
data:data,
|
data:data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -263,3 +263,12 @@ export const directEdit = (data) => {
|
||||||
data:data,
|
data:data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 班组-下拉
|
||||||
|
export const getBmTeamList = (data) => {
|
||||||
|
return http({
|
||||||
|
method: 'GET',
|
||||||
|
url: '/material/bmTeam/list',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -10,6 +10,14 @@ export const getPickingOutboundListAPI = (data) => {
|
||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 删除
|
||||||
|
export const deleteLeaseApplyApi = (id) => {
|
||||||
|
return http({
|
||||||
|
method: 'delete',
|
||||||
|
url: `/material/lease_apply_info/${id}`,
|
||||||
|
data: id
|
||||||
|
})
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 领料出库 ---- 任务详情
|
* 领料出库 ---- 任务详情
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
|
@ -7,10 +7,11 @@ import { useMemberStore } from '@/stores'
|
||||||
*/
|
*/
|
||||||
const ENV = process.env.NODE_ENV
|
const ENV = process.env.NODE_ENV
|
||||||
// export const baseURL = ENV === 'development' ? 'http://192.168.0.244:18580' : 'http://192.168.0.244:18580'//测试
|
// export const baseURL = ENV === 'development' ? 'http://192.168.0.244:18580' : 'http://192.168.0.244:18580'//测试
|
||||||
export const baseURL = ENV === 'development' ? 'http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api/' : 'http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api/'//生产
|
// export const baseURL = ENV === 'development' ? 'http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api/' : 'http://sgwpdm.ah.sgcc.com.cn/iws/jiju-api/'//生产
|
||||||
// export const baseURL = ENV === 'development' ? '/api' : '/iws/jiju-api'; // 宏源服务
|
// export const baseURL = ENV === 'development' ? '/api' : '/iws/jiju-api'; // 宏源服务
|
||||||
// export const baseURL = ENV === 'development' ? 'http://192.168.0.234:18080' : '***'
|
// export const baseURL = ENV === 'development' ? 'http://192.168.0.234:18080' : '***'
|
||||||
// export const baseURL = ENV === 'development' ? 'http://192.168.2.27:18080' : 'http://192.168.2.27:18080'//马
|
export const baseURL = ENV === 'development' ? 'http://192.168.1.117:18080' : 'http://192.168.1.117:18080'//马
|
||||||
|
console.log('🚀 ~ baseURL:', baseURL)
|
||||||
// export const baseURL = ENV === 'development' ? '/api' : '***'
|
// export const baseURL = ENV === 'development' ? '/api' : '***'
|
||||||
|
|
||||||
// **********OCR识别为NVUE文件页面请求URL需要同步配置**********
|
// **********OCR识别为NVUE文件页面请求URL需要同步配置**********
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ export default defineConfig({
|
||||||
'/api': {
|
'/api': {
|
||||||
// target: 'http://192.168.2.76:18080',
|
// target: 'http://192.168.2.76:18080',
|
||||||
// target: 'http://192.168.0.244:18580',
|
// target: 'http://192.168.0.244:18580',
|
||||||
target: 'http://36.33.26.201:19988/prod-api/',
|
// target: 'http://36.33.26.201:19988/prod-api/',
|
||||||
// target: 'http://192.168.0.234:18080',
|
target: 'http://192.168.1.117:18080',
|
||||||
// target: 'http://localhost:18080',
|
// target: 'http://localhost:18080',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (path) => {
|
rewrite: (path) => {
|
||||||
|
|
|
||||||