| New file |
| | |
| | | <template> |
| | | <view |
| | | class="modal-mask" |
| | | v-if="visible" |
| | | @click="handleCancel" |
| | | > |
| | | <view |
| | | class="modal-container" |
| | | @click.stop |
| | | > |
| | | <view class="modal-header"> |
| | | <text |
| | | :class="'cuIcon-' + icon" |
| | | :style="{ fontSize: '48rpx', color: iconColor }" |
| | | ></text> |
| | | <text class="modal-title">{{ title }}</text> |
| | | </view> |
| | | <view class="modal-body"> |
| | | <text class="modal-message"> |
| | | {{ message }} |
| | | </text> |
| | | </view> |
| | | <view class="modal-footer"> |
| | | <button |
| | | class="modal-btn modal-btn-cancel" |
| | | @click="handleCancel" |
| | | > |
| | | {{ cancelText }} |
| | | </button> |
| | | <button |
| | | class="modal-btn modal-btn-confirm" |
| | | @click="handleConfirm" |
| | | :disabled="isconfirm" |
| | | :loading="isconfirm" |
| | | > |
| | | {{ confirmText }} |
| | | </button> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'ConfirmModal', |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: '提示' |
| | | }, |
| | | message: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | icon: { |
| | | type: String, |
| | | default: 'deliver' |
| | | }, |
| | | iconColor: { |
| | | type: String, |
| | | default: '#0081ff' |
| | | }, |
| | | cancelText: { |
| | | type: String, |
| | | default: '取消' |
| | | }, |
| | | confirmText: { |
| | | type: String, |
| | | default: '确定' |
| | | }, |
| | | isconfirm: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCancel() { |
| | | this.$emit('update:visible', false) |
| | | this.$emit('cancel') |
| | | }, |
| | | handleConfirm() { |
| | | this.$emit('confirm') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* 弹窗遮罩层 */ |
| | | .modal-mask { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 999; |
| | | } |
| | | /* 弹窗容器 */ |
| | | .modal-container { |
| | | width: 600rpx; |
| | | background-color: #ffffff; |
| | | border-radius: 24rpx; |
| | | overflow: hidden; |
| | | box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.15); |
| | | } |
| | | |
| | | /* 弹窗头部 */ |
| | | .modal-header { |
| | | padding: 40rpx 30rpx 20rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | background: linear-gradient(135deg, #f0f7ff 0%, #e8f4ff 100%); |
| | | } |
| | | |
| | | .modal-title { |
| | | font-size: 34rpx; |
| | | font-weight: bold; |
| | | color: #333; |
| | | /* margin-top: 16rpx; */ |
| | | } |
| | | |
| | | /* 弹窗内容 */ |
| | | .modal-body { |
| | | padding: 30rpx; |
| | | } |
| | | .modal-message { |
| | | font-size: 30rpx; |
| | | color: #666; |
| | | text-align: center; |
| | | display: block; |
| | | } |
| | | /* 弹窗底部按钮 */ |
| | | .modal-footer { |
| | | display: flex; |
| | | border-top: 1rpx solid #eee; |
| | | } |
| | | .modal-btn { |
| | | flex: 1; |
| | | height: 100rpx; |
| | | line-height: 100rpx; |
| | | font-size: 32rpx; |
| | | border: none; |
| | | border-radius: 0; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .modal-btn::after { |
| | | border: none; |
| | | } |
| | | |
| | | .modal-btn-cancel { |
| | | color: #999; |
| | | border-right: 1rpx solid #eee; |
| | | } |
| | | |
| | | .modal-btn-confirm { |
| | | color: #fff; |
| | | background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%); |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .modal-btn-confirm:active { |
| | | background: linear-gradient(135deg, #0070dd 0%, #1480e8 100%); |
| | | } |
| | | |
| | | .modal-btn-cancel:active { |
| | | background-color: #f5f5f5; |
| | | } |
| | | </style> |
| | |
| | | "productionMatCall":"生产叫料", |
| | | "matDirectDelivery":"生产直送", |
| | | "productDirectDelivery":"成品直出", |
| | | "matPreparation":"生产备料" |
| | | "matPreparation":"生产备料", |
| | | "other":"综合" |
| | | |
| | | |
| | | }, |
| | |
| | | {
|
| | | "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
| | | {
|
| | | "path": "pages/login/index",
|
| | | "style": {
|
| | | "navigationBarTitleText": "%page.login%",
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | { |
| | | "pages": [ |
| | | { |
| | | "path": "pages/login/index", |
| | | "style": { |
| | | "navigationBarTitleText": "%page.login%", |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/index", |
| | | "style": { |
| | | "navigationBarTitleText": "%page.index%" |
| | | } |
| | | },
|
| | | {
|
| | | "path": "pages/home/index",
|
| | | "style": {
|
| | | "navigationBarTitleText": "%page.index%"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut/order_out_type",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据类型"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut/orderList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据列表",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut/orderDetlList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据明细列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut/outLocView",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库库位视图"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/emptyTray/outBound",
|
| | | "style": {
|
| | | "navigationBarTitleText": "空托出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/emptyTray/inBound",
|
| | | "style": {
|
| | | "navigationBarTitleText": "空托入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderPick",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOutItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matPreparation",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产备料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matPreparationItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产备料详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderIn",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderInExecute",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderInItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/transferType",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨类型"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/orderTransfer",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/orderTransferItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨订单详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/matTransfer",
|
| | | "style": {
|
| | | "navigationBarTitleText": "移库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/taskInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "工作任务"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/stationInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "站点信息"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/locInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库位信息"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/buffStore",
|
| | | "style": {
|
| | | "navigationBarTitleText": "灌桶入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matDirectDelivery",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产直送"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/productDirectDelivery",
|
| | | "style": {
|
| | | "navigationBarTitleText": "成品直出"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/productionMatCall",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产叫料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/wavePick",
|
| | | "style": {
|
| | | "navigationBarTitleText": "波次拣货"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/check/checkOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "盘点单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/check/checkOrderItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "初盘"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/check/firstCheck",
|
| | | "style": {
|
| | | "navigationBarTitleText": "初盘"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/wavePickItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "波次拣货"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/rece/standard",
|
| | | "style": {
|
| | | "navigationBarTitleText": "标准收货"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/rece/other",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据收货"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/disc",
|
| | | "style": {
|
| | | "navigationBarTitleText": "组盘"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/AGV/AGVStaBind",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV站点绑定"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/AGV/StaUnBind",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV站点解绑"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/AGV/StartInTask",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/AGV/BindAndInTask",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV绑定&入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/matnrPalletising",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据组托"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/itemSelect",
|
| | | "style": {
|
| | | "navigationBarTitleText": "选择物料",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/untie",
|
| | | "style": {
|
| | | "navigationBarTitleText": "解绑"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inspect/report",
|
| | | "style": {
|
| | | "navigationBarTitleText": "报检"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inspect/check",
|
| | | "style": {
|
| | | "navigationBarTitleText": "质检解锁"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inspect/bad",
|
| | | "style": {
|
| | | "navigationBarTitleText": "质检上锁"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/labour",
|
| | | "style": {
|
| | | "navigationBarTitleText": "人工上架"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/upper",
|
| | | "style": {
|
| | | "navigationBarTitleText": "上架"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/fastPicking",
|
| | | "style": {
|
| | | "navigationBarTitleText": "快速拣货"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/mat/matSelected",
|
| | | "style": {
|
| | | "navigationBarTitleText": "物料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/mat/matQuery",
|
| | | "style": {
|
| | | "navigationBarTitleText": "物料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/mat/matList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/login/logOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "退出登录"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/menuHome",
|
| | | "style": {
|
| | | "navigationBarTitleText": "主页",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/inOutManage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入出库管理",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/AGV/AGVPakin",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV组托",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/orderList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单列表",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/AGV/AGVPakin2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV组托",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/orderManage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据管理",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/purchaseOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "采购入库单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/wrkMast",
|
| | | "style": {
|
| | | "navigationBarTitleText": "工作档查询维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/wrkMastManage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "任务管理",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/waitPakin",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库通知档",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/wrkDetl",
|
| | | "style": {
|
| | | "navigationBarTitleText": "工作档明细",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/AGV/emptyPakin",
|
| | | "style": {
|
| | | "navigationBarTitleText": "空板入库",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/stationManage/stationManage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "站点查询维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/outOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/AGV/AGVPakin3",
|
| | | "style": {
|
| | | "navigationBarTitleText": "组托入库",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/preview",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库预览",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/AGV/emptyOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "呼叫空货架",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/wrkMastLog",
|
| | | "style": {
|
| | | "navigationBarTitleText": "工作历史档",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/waitPakinLog",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库通知历史档",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/orderList2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单列表",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/stationManage/stationDetl",
|
| | | "style": {
|
| | | "navigationBarTitleText": "站点详情",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/pakinOrderSelect",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/pakinOrderSelectV2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/order/orderCar",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待组托列表",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/orderOutSelect",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库订单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/orderOutSelectV2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库订单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/orderList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待出列表",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/orderCheck",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库确认",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/orderCheck_2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库确认",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/checkLocDetl",
|
| | | "style": {
|
| | | "navigationBarTitleText": "盘点",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/locDetl",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库存明细",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/locDetlList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库存明细",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/mat/mat",
|
| | | "style": {
|
| | | "navigationBarTitleText": "检索物料",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/mat/matSelected",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品详情",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/stationManage/pickAgain",
|
| | | "style": {
|
| | | "navigationBarTitleText": "再次拣料",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/stationManage/pickAgainDetl",
|
| | | "style": {
|
| | | "navigationBarTitleText": "再次拣料明细",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/bcpOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半入库单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/bcpOrder_xs",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品入库单_吸塑",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/bcpDbOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品调拨单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/bcpDbOrderV2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品调拨单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/orderCar",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待组托列表",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/orderCar_xs",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待组托列表_吸塑",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/locMastManage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库位管理",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/locMove",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库位转移",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/bcp/bcpDbList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨库位",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/bcpOrderOutSelect",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品出库单",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/orderOut/bcpOrderOutSelect_2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品出库单_二厂",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/locMoveMast",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨任务管理",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/wrkMast/DBList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨任务管理"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/processOrder/processOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品加工单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/processOrder/processList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待加工列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/processOrder/orderCheck",
|
| | | "style": {
|
| | | "navigationBarTitleText": "加工出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/backStock/backStocksOrder",
|
| | | "style": {
|
| | | "navigationBarTitleText": "半成品回退单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/backStock/backStockList",
|
| | | "style": {
|
| | | "navigationBarTitleText": "回调库位"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/stationManage/confirmProcessed",
|
| | | "style": {
|
| | | "navigationBarTitleText": "已加工确认"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/waitOrder/waitOrderIn",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待包装入库单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/waitOrder/waitOrderOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待包装出库单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/checkLocDetl2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库位盘点"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/locDetl2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库存明细"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/checkLocDetl/locDetlList2",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库存明细"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/comOrder/orderIn",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/comOrder/orderOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/comOrder/orderCar",
|
| | | "style": {
|
| | | "navigationBarTitleText": "待组托列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/comOrder/checkOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库确认"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/phyz/inStock/inStock",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库上架"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/listing/unPakin",
|
| | | "style": {
|
| | | "navigationBarTitleText": "组托解绑"
|
| | | }
|
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "uni-app",
|
| | | "navigationBarBackgroundColor": "#F8F8F8",
|
| | | "backgroundColor": "#F8F8F8"
|
| | | },
|
| | | "uniIdRouter": {}
|
| | | {
|
| | | "path": "pages/icon",
|
| | | "style": {
|
| | | "navigationBarTitleText": "单据列表"
|
| | | }
|
| | | }, |
| | | { |
| | | "path": "pages/other/transferView/orderList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/other/transferView/orderDetlList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据明细列表", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOut/order_out_type", |
| | | "style": { |
| | | "navigationBarTitleText": "单据类型" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOut/orderList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据列表", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOut/orderDetlList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据明细列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOutView/order_out_type", |
| | | "style": { |
| | | "navigationBarTitleText": "单据类型" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOutView/orderList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据列表", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOutView/orderDetlList", |
| | | "style": { |
| | | "navigationBarTitleText": "单据明细列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOut/outLocView", |
| | | "style": { |
| | | "navigationBarTitleText": "出库库位视图" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/emptyTray/outBound", |
| | | "style": { |
| | | "navigationBarTitleText": "空托出库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/emptyTray/inBound", |
| | | "style": { |
| | | "navigationBarTitleText": "空托入库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderPick", |
| | | "style": { |
| | | "navigationBarTitleText": "订单出库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOut", |
| | | "style": { |
| | | "navigationBarTitleText": "出库订单" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/orderOutItem", |
| | | "style": { |
| | | "navigationBarTitleText": "订单出库详情" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/matPreparation", |
| | | "style": { |
| | | "navigationBarTitleText": "生产备料" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/matPreparationItem", |
| | | "style": { |
| | | "navigationBarTitleText": "生产备料详情" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inbound/orderIn", |
| | | "style": { |
| | | "navigationBarTitleText": "入库订单" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inbound/orderInExecute", |
| | | "style": { |
| | | "navigationBarTitleText": "入库订单列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inbound/orderInItem", |
| | | "style": { |
| | | "navigationBarTitleText": "入库订单详情" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/transfer/transferType", |
| | | "style": { |
| | | "navigationBarTitleText": "调拨类型" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/transfer/orderTransfer", |
| | | "style": { |
| | | "navigationBarTitleText": "调拨订单" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/transfer/orderTransferItem", |
| | | "style": { |
| | | "navigationBarTitleText": "调拨订单详情" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/transfer/matTransfer", |
| | | "style": { |
| | | "navigationBarTitleText": "移库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/workInfo/taskInfo", |
| | | "style": { |
| | | "navigationBarTitleText": "工作任务" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/workInfo/stationInfo", |
| | | "style": { |
| | | "navigationBarTitleText": "站点信息" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/workInfo/locInfo", |
| | | "style": { |
| | | "navigationBarTitleText": "库位信息" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inbound/buffStore", |
| | | "style": { |
| | | "navigationBarTitleText": "灌桶入库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/matDirectDelivery", |
| | | "style": { |
| | | "navigationBarTitleText": "生产直送" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/productDirectDelivery", |
| | | "style": { |
| | | "navigationBarTitleText": "成品直出" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/productionMatCall", |
| | | "style": { |
| | | "navigationBarTitleText": "生产叫料" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/wavePick", |
| | | "style": { |
| | | "navigationBarTitleText": "波次拣货" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/check/checkOrder", |
| | | "style": { |
| | | "navigationBarTitleText": "盘点单" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/check/checkOrderItem", |
| | | "style": { |
| | | "navigationBarTitleText": "初盘" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/check/firstCheck", |
| | | "style": { |
| | | "navigationBarTitleText": "初盘" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/wavePickItem", |
| | | "style": { |
| | | "navigationBarTitleText": "波次拣货" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/rece/standard", |
| | | "style": { |
| | | "navigationBarTitleText": "标准收货" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/rece/other", |
| | | "style": { |
| | | "navigationBarTitleText": "单据收货" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/disc", |
| | | "style": { |
| | | "navigationBarTitleText": "组盘" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/AGV/AGVStaBind", |
| | | "style": { |
| | | "navigationBarTitleText": "AGV站点绑定" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/AGV/StaUnBind", |
| | | "style": { |
| | | "navigationBarTitleText": "AGV站点解绑" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/AGV/StartInTask", |
| | | "style": { |
| | | "navigationBarTitleText": "AGV入库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/AGV/BindAndInTask", |
| | | "style": { |
| | | "navigationBarTitleText": "AGV绑定&入库" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/matnrPalletising", |
| | | "style": { |
| | | "navigationBarTitleText": "单据组托" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/itemSelect", |
| | | "style": { |
| | | "navigationBarTitleText": "选择物料", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/untie", |
| | | "style": { |
| | | "navigationBarTitleText": "解绑" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inspect/report", |
| | | "style": { |
| | | "navigationBarTitleText": "报检" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inspect/check", |
| | | "style": { |
| | | "navigationBarTitleText": "质检解锁" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/inspect/bad", |
| | | "style": { |
| | | "navigationBarTitleText": "质检上锁" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/labour", |
| | | "style": { |
| | | "navigationBarTitleText": "人工上架" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/upper", |
| | | "style": { |
| | | "navigationBarTitleText": "上架" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/outbound/fastPicking", |
| | | "style": { |
| | | "navigationBarTitleText": "快速拣货" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/mat/matSelected", |
| | | "style": { |
| | | "navigationBarTitleText": "物料" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/mat/matQuery", |
| | | "style": { |
| | | "navigationBarTitleText": "物料" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/mat/matList", |
| | | "style": { |
| | | "navigationBarTitleText": "商品列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/login/logOut", |
| | | "style": { |
| | | "navigationBarTitleText": "退出登录" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/menuHome", |
| | | "style": { |
| | | "navigationBarTitleText": "主页", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/inOutManage", |
| | | "style": { |
| | | "navigationBarTitleText": "入出库管理", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/orderManage", |
| | | "style": { |
| | | "navigationBarTitleText": "单据管理", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/wrkMastManage", |
| | | "style": { |
| | | "navigationBarTitleText": "任务管理", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/home/locMastManage", |
| | | "style": { |
| | | "navigationBarTitleText": "库位管理", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/listing/unPakin", |
| | | "style": { |
| | | "navigationBarTitleText": "组托解绑" |
| | | } |
| | | } |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | | "navigationBarTitleText": "uni-app", |
| | | "navigationBarBackgroundColor": "#F8F8F8", |
| | | "backgroundColor": "#F8F8F8" |
| | | }, |
| | | "uniIdRouter": {} |
| | | } |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <cu-custom bgColor="bg-gradual-blue" :isBack="true"><block slot="backText">返回</block><block slot="content">图标</block></cu-custom> |
| | | <view class="cu-bar bg-white search fixed" :style="[{top:CustomBar + 'px'}]"> |
| | | <view class="search-form round"> |
| | | <text class="cuIcon-search"></text> |
| | | <input type="text" placeholder="搜索cuIcon" confirm-type="search" @input="searchIcon"></input> |
| | | </view> |
| | | </view> |
| | | <view class="cu-list grid col-3"> |
| | | <view class="cu-item" v-for="(item,index) in cuIcon" :key="index" v-if="item.isShow"> |
| | | <text class="lg text-gray" :class="'cuIcon-' + item.name"></text> |
| | | <text>{{item.name}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | CustomBar: this.CustomBar, |
| | | cuIcon: [{ |
| | | name: 'appreciate', |
| | | isShow: true |
| | | }, { |
| | | name: 'check', |
| | | isShow: true |
| | | }, { |
| | | name: 'close', |
| | | isShow: true |
| | | }, { |
| | | name: 'edit', |
| | | isShow: true |
| | | }, { |
| | | name: 'emoji', |
| | | isShow: true |
| | | }, { |
| | | name: 'favorfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'favor', |
| | | isShow: true |
| | | }, { |
| | | name: 'loading', |
| | | isShow: true |
| | | }, { |
| | | name: 'locationfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'location', |
| | | isShow: true |
| | | }, { |
| | | name: 'phone', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundcheckfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundcheck', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundclosefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundclose', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundrightfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundright', |
| | | isShow: true |
| | | }, { |
| | | name: 'search', |
| | | isShow: true |
| | | }, { |
| | | name: 'taxi', |
| | | isShow: true |
| | | }, { |
| | | name: 'timefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'time', |
| | | isShow: true |
| | | }, { |
| | | name: 'unfold', |
| | | isShow: true |
| | | }, { |
| | | name: 'warnfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'warn', |
| | | isShow: true |
| | | }, { |
| | | name: 'camerafill', |
| | | isShow: true |
| | | }, { |
| | | name: 'camera', |
| | | isShow: true |
| | | }, { |
| | | name: 'commentfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'comment', |
| | | isShow: true |
| | | }, { |
| | | name: 'likefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'like', |
| | | isShow: true |
| | | }, { |
| | | name: 'notificationfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'notification', |
| | | isShow: true |
| | | }, { |
| | | name: 'order', |
| | | isShow: true |
| | | }, { |
| | | name: 'samefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'same', |
| | | isShow: true |
| | | }, { |
| | | name: 'deliver', |
| | | isShow: true |
| | | }, { |
| | | name: 'evaluate', |
| | | isShow: true |
| | | }, { |
| | | name: 'pay', |
| | | isShow: true |
| | | }, { |
| | | name: 'send', |
| | | isShow: true |
| | | }, { |
| | | name: 'shop', |
| | | isShow: true |
| | | }, { |
| | | name: 'ticket', |
| | | isShow: true |
| | | }, { |
| | | name: 'back', |
| | | isShow: true |
| | | }, { |
| | | name: 'cascades', |
| | | isShow: true |
| | | }, { |
| | | name: 'discover', |
| | | isShow: true |
| | | }, { |
| | | name: 'list', |
| | | isShow: true |
| | | }, { |
| | | name: 'more', |
| | | isShow: true |
| | | }, { |
| | | name: 'scan', |
| | | isShow: true |
| | | }, { |
| | | name: 'settings', |
| | | isShow: true |
| | | }, { |
| | | name: 'questionfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'question', |
| | | isShow: true |
| | | }, { |
| | | name: 'shopfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'form', |
| | | isShow: true |
| | | }, { |
| | | name: 'pic', |
| | | isShow: true |
| | | }, { |
| | | name: 'filter', |
| | | isShow: true |
| | | }, { |
| | | name: 'footprint', |
| | | isShow: true |
| | | }, { |
| | | name: 'top', |
| | | isShow: true |
| | | }, { |
| | | name: 'pulldown', |
| | | isShow: true |
| | | }, { |
| | | name: 'pullup', |
| | | isShow: true |
| | | }, { |
| | | name: 'right', |
| | | isShow: true |
| | | }, { |
| | | name: 'refresh', |
| | | isShow: true |
| | | }, { |
| | | name: 'moreandroid', |
| | | isShow: true |
| | | }, { |
| | | name: 'deletefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'refund', |
| | | isShow: true |
| | | }, { |
| | | name: 'cart', |
| | | isShow: true |
| | | }, { |
| | | name: 'qrcode', |
| | | isShow: true |
| | | }, { |
| | | name: 'remind', |
| | | isShow: true |
| | | }, { |
| | | name: 'delete', |
| | | isShow: true |
| | | }, { |
| | | name: 'profile', |
| | | isShow: true |
| | | }, { |
| | | name: 'home', |
| | | isShow: true |
| | | }, { |
| | | name: 'cartfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'discoverfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'homefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'message', |
| | | isShow: true |
| | | }, { |
| | | name: 'addressbook', |
| | | isShow: true |
| | | }, { |
| | | name: 'link', |
| | | isShow: true |
| | | }, { |
| | | name: 'lock', |
| | | isShow: true |
| | | }, { |
| | | name: 'unlock', |
| | | isShow: true |
| | | }, { |
| | | name: 'vip', |
| | | isShow: true |
| | | }, { |
| | | name: 'weibo', |
| | | isShow: true |
| | | }, { |
| | | name: 'activity', |
| | | isShow: true |
| | | }, { |
| | | name: 'friendaddfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'friendadd', |
| | | isShow: true |
| | | }, { |
| | | name: 'friendfamous', |
| | | isShow: true |
| | | }, { |
| | | name: 'friend', |
| | | isShow: true |
| | | }, { |
| | | name: 'goods', |
| | | isShow: true |
| | | }, { |
| | | name: 'selection', |
| | | isShow: true |
| | | }, { |
| | | name: 'explore', |
| | | isShow: true |
| | | }, { |
| | | name: 'present', |
| | | isShow: true |
| | | }, { |
| | | name: 'squarecheckfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'square', |
| | | isShow: true |
| | | }, { |
| | | name: 'squarecheck', |
| | | isShow: true |
| | | }, { |
| | | name: 'round', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundaddfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundadd', |
| | | isShow: true |
| | | }, { |
| | | name: 'add', |
| | | isShow: true |
| | | }, { |
| | | name: 'notificationforbidfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'explorefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'fold', |
| | | isShow: true |
| | | }, { |
| | | name: 'game', |
| | | isShow: true |
| | | }, { |
| | | name: 'redpacket', |
| | | isShow: true |
| | | }, { |
| | | name: 'selectionfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'similar', |
| | | isShow: true |
| | | }, { |
| | | name: 'appreciatefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'infofill', |
| | | isShow: true |
| | | }, { |
| | | name: 'info', |
| | | isShow: true |
| | | }, { |
| | | name: 'forwardfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'forward', |
| | | isShow: true |
| | | }, { |
| | | name: 'rechargefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'recharge', |
| | | isShow: true |
| | | }, { |
| | | name: 'vipcard', |
| | | isShow: true |
| | | }, { |
| | | name: 'voice', |
| | | isShow: true |
| | | }, { |
| | | name: 'voicefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'friendfavor', |
| | | isShow: true |
| | | }, { |
| | | name: 'wifi', |
| | | isShow: true |
| | | }, { |
| | | name: 'share', |
| | | isShow: true |
| | | }, { |
| | | name: 'wefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'we', |
| | | isShow: true |
| | | }, { |
| | | name: 'lightauto', |
| | | isShow: true |
| | | }, { |
| | | name: 'lightforbid', |
| | | isShow: true |
| | | }, { |
| | | name: 'lightfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'camerarotate', |
| | | isShow: true |
| | | }, { |
| | | name: 'light', |
| | | isShow: true |
| | | }, { |
| | | name: 'barcode', |
| | | isShow: true |
| | | }, { |
| | | name: 'flashlightclose', |
| | | isShow: true |
| | | }, { |
| | | name: 'flashlightopen', |
| | | isShow: true |
| | | }, { |
| | | name: 'searchlist', |
| | | isShow: true |
| | | }, { |
| | | name: 'service', |
| | | isShow: true |
| | | }, { |
| | | name: 'sort', |
| | | isShow: true |
| | | }, { |
| | | name: 'down', |
| | | isShow: true |
| | | }, { |
| | | name: 'mobile', |
| | | isShow: true |
| | | }, { |
| | | name: 'mobilefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'copy', |
| | | isShow: true |
| | | }, { |
| | | name: 'countdownfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'countdown', |
| | | isShow: true |
| | | }, { |
| | | name: 'noticefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'notice', |
| | | isShow: true |
| | | }, { |
| | | name: 'upstagefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'upstage', |
| | | isShow: true |
| | | }, { |
| | | name: 'babyfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'baby', |
| | | isShow: true |
| | | }, { |
| | | name: 'brandfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'brand', |
| | | isShow: true |
| | | }, { |
| | | name: 'choicenessfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'choiceness', |
| | | isShow: true |
| | | }, { |
| | | name: 'clothesfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'clothes', |
| | | isShow: true |
| | | }, { |
| | | name: 'creativefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'creative', |
| | | isShow: true |
| | | }, { |
| | | name: 'female', |
| | | isShow: true |
| | | }, { |
| | | name: 'keyboard', |
| | | isShow: true |
| | | }, { |
| | | name: 'male', |
| | | isShow: true |
| | | }, { |
| | | name: 'newfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'new', |
| | | isShow: true |
| | | }, { |
| | | name: 'pullleft', |
| | | isShow: true |
| | | }, { |
| | | name: 'pullright', |
| | | isShow: true |
| | | }, { |
| | | name: 'rankfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'rank', |
| | | isShow: true |
| | | }, { |
| | | name: 'bad', |
| | | isShow: true |
| | | }, { |
| | | name: 'cameraadd', |
| | | isShow: true |
| | | }, { |
| | | name: 'focus', |
| | | isShow: true |
| | | }, { |
| | | name: 'friendfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'cameraaddfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'apps', |
| | | isShow: true |
| | | }, { |
| | | name: 'paintfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'paint', |
| | | isShow: true |
| | | }, { |
| | | name: 'picfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'refresharrow', |
| | | isShow: true |
| | | }, { |
| | | name: 'colorlens', |
| | | isShow: true |
| | | }, { |
| | | name: 'markfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'mark', |
| | | isShow: true |
| | | }, { |
| | | name: 'presentfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'repeal', |
| | | isShow: true |
| | | }, { |
| | | name: 'album', |
| | | isShow: true |
| | | }, { |
| | | name: 'peoplefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'people', |
| | | isShow: true |
| | | }, { |
| | | name: 'servicefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'repair', |
| | | isShow: true |
| | | }, { |
| | | name: 'file', |
| | | isShow: true |
| | | }, { |
| | | name: 'repairfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'taoxiaopu', |
| | | isShow: true |
| | | }, { |
| | | name: 'weixin', |
| | | isShow: true |
| | | }, { |
| | | name: 'attentionfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'attention', |
| | | isShow: true |
| | | }, { |
| | | name: 'commandfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'command', |
| | | isShow: true |
| | | }, { |
| | | name: 'communityfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'community', |
| | | isShow: true |
| | | }, { |
| | | name: 'read', |
| | | isShow: true |
| | | }, { |
| | | name: 'calendar', |
| | | isShow: true |
| | | }, { |
| | | name: 'cut', |
| | | isShow: true |
| | | }, { |
| | | name: 'magic', |
| | | isShow: true |
| | | }, { |
| | | name: 'backwardfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'playfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'stop', |
| | | isShow: true |
| | | }, { |
| | | name: 'tagfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'tag', |
| | | isShow: true |
| | | }, { |
| | | name: 'group', |
| | | isShow: true |
| | | }, { |
| | | name: 'all', |
| | | isShow: true |
| | | }, { |
| | | name: 'backdelete', |
| | | isShow: true |
| | | }, { |
| | | name: 'hotfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'hot', |
| | | isShow: true |
| | | }, { |
| | | name: 'post', |
| | | isShow: true |
| | | }, { |
| | | name: 'radiobox', |
| | | isShow: true |
| | | }, { |
| | | name: 'rounddown', |
| | | isShow: true |
| | | }, { |
| | | name: 'upload', |
| | | isShow: true |
| | | }, { |
| | | name: 'writefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'write', |
| | | isShow: true |
| | | }, { |
| | | name: 'radioboxfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'punch', |
| | | isShow: true |
| | | }, { |
| | | name: 'shake', |
| | | isShow: true |
| | | }, { |
| | | name: 'move', |
| | | isShow: true |
| | | }, { |
| | | name: 'safe', |
| | | isShow: true |
| | | }, { |
| | | name: 'activityfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'crownfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'crown', |
| | | isShow: true |
| | | }, { |
| | | name: 'goodsfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'messagefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'profilefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'sound', |
| | | isShow: true |
| | | }, { |
| | | name: 'sponsorfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'sponsor', |
| | | isShow: true |
| | | }, { |
| | | name: 'upblock', |
| | | isShow: true |
| | | }, { |
| | | name: 'weblock', |
| | | isShow: true |
| | | }, { |
| | | name: 'weunblock', |
| | | isShow: true |
| | | }, { |
| | | name: 'my', |
| | | isShow: true |
| | | }, { |
| | | name: 'myfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'emojifill', |
| | | isShow: true |
| | | }, { |
| | | name: 'emojiflashfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'flashbuyfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'text', |
| | | isShow: true |
| | | }, { |
| | | name: 'goodsfavor', |
| | | isShow: true |
| | | }, { |
| | | name: 'musicfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'musicforbidfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'card', |
| | | isShow: true |
| | | }, { |
| | | name: 'triangledownfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'triangleupfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'roundleftfill-copy', |
| | | isShow: true |
| | | }, { |
| | | name: 'font', |
| | | isShow: true |
| | | }, { |
| | | name: 'title', |
| | | isShow: true |
| | | }, { |
| | | name: 'recordfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'record', |
| | | isShow: true |
| | | }, { |
| | | name: 'cardboardfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'cardboard', |
| | | isShow: true |
| | | }, { |
| | | name: 'formfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'coin', |
| | | isShow: true |
| | | }, { |
| | | name: 'cardboardforbid', |
| | | isShow: true |
| | | }, { |
| | | name: 'circlefill', |
| | | isShow: true |
| | | }, { |
| | | name: 'circle', |
| | | isShow: true |
| | | }, { |
| | | name: 'attentionforbid', |
| | | isShow: true |
| | | }, { |
| | | name: 'attentionforbidfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'attentionfavorfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'attentionfavor', |
| | | isShow: true |
| | | }, { |
| | | name: 'titles', |
| | | isShow: true |
| | | }, { |
| | | name: 'icloading', |
| | | isShow: true |
| | | }, { |
| | | name: 'full', |
| | | isShow: true |
| | | }, { |
| | | name: 'mail', |
| | | isShow: true |
| | | }, { |
| | | name: 'peoplelist', |
| | | isShow: true |
| | | }, { |
| | | name: 'goodsnewfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'goodsnew', |
| | | isShow: true |
| | | }, { |
| | | name: 'medalfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'medal', |
| | | isShow: true |
| | | }, { |
| | | name: 'newsfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'newshotfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'newshot', |
| | | isShow: true |
| | | }, { |
| | | name: 'news', |
| | | isShow: true |
| | | }, { |
| | | name: 'videofill', |
| | | isShow: true |
| | | }, { |
| | | name: 'video', |
| | | isShow: true |
| | | }, { |
| | | name: 'exit', |
| | | isShow: true |
| | | }, { |
| | | name: 'skinfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'skin', |
| | | isShow: true |
| | | }, { |
| | | name: 'moneybagfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'usefullfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'usefull', |
| | | isShow: true |
| | | }, { |
| | | name: 'moneybag', |
| | | isShow: true |
| | | }, { |
| | | name: 'redpacket_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'subscription', |
| | | isShow: true |
| | | }, { |
| | | name: 'loading1', |
| | | isShow: true |
| | | }, { |
| | | name: 'github', |
| | | isShow: true |
| | | }, { |
| | | name: 'global', |
| | | isShow: true |
| | | }, { |
| | | name: 'settingsfill', |
| | | isShow: true |
| | | }, { |
| | | name: 'back_android', |
| | | isShow: true |
| | | }, { |
| | | name: 'expressman', |
| | | isShow: true |
| | | }, { |
| | | name: 'evaluate_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'group_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'play_forward_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'deliver_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'notice_forbid_fill', |
| | | isShow: true |
| | | }, { |
| | | name: 'fork', |
| | | isShow: true |
| | | }, { |
| | | name: 'pick', |
| | | isShow: true |
| | | }, { |
| | | name: 'wenzi', |
| | | isShow: true |
| | | }, { |
| | | name: 'ellipse', |
| | | isShow: true |
| | | }, { |
| | | name: 'qr_code', |
| | | isShow: true |
| | | }, { |
| | | name: 'dianhua', |
| | | isShow: true |
| | | }, { |
| | | name: 'cuIcon', |
| | | isShow: true |
| | | }, { |
| | | name: 'loading2', |
| | | isShow: true |
| | | }, { |
| | | name: 'btn', |
| | | isShow: true |
| | | }] |
| | | |
| | | }; |
| | | }, |
| | | methods: { |
| | | searchIcon(e) { |
| | | let key = e.detail.value.toLowerCase(); |
| | | let list = this.cuIcon; |
| | | for (let i = 0; i < list.length; i++) { |
| | | let a = key; |
| | | let b = list[i].name.toLowerCase(); |
| | | if (b.search(a) != -1) { |
| | | list[i].isShow = true |
| | | } else { |
| | | list[i].isShow = false |
| | | } |
| | | } |
| | | this.cuIcon = list |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | page { |
| | | padding-top: 50px; |
| | | } |
| | | </style> |
| | |
| | | <form>
|
| | | <view class="cu-form-group margin-top">
|
| | | <view class="title">托盘码</view>
|
| | | <input placeholder="请扫描托盘码" v-model="container" focus></input>
|
| | | <text class='cuIcon-search text-blue' </text>
|
| | | <input
|
| | | placeholder="请扫描托盘码"
|
| | | v-model="container"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group ">
|
| | | <view class="cu-form-group">
|
| | | <view class="title">物料标签</view>
|
| | | <input placeholder="请扫描物料标签" v-model="barcode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | <input
|
| | | placeholder="请扫描物料标签"
|
| | | v-model="barcode"
|
| | | />
|
| | | <text
|
| | | class="cuIcon-search text-blue"
|
| | | @click="search"
|
| | | ></text>
|
| | | </view>
|
| | | </form>
|
| | | <view class="flex solid-bottom padding-sm justify-between">
|
| | | <view class="text-blue">物料种类:{{ list.length }}</view>
|
| | | <view class="text-red">锁定数量:{{ allCount }}</view>
|
| | | </view>
|
| | | <view
|
| | | class="flex solid-bottom padding-sm justify-between"
|
| | | v-if="list.length"
|
| | | >
|
| | | <view class="text-blue">库位号:{{ list[0].locCode }}</view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-list det menu sm-border padding">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| | | <view
|
| | | class="cu-list det menu sm-border padding"
|
| | | style="padding-bottom: 60px"
|
| | | >
|
| | | <block
|
| | | v-for="(item, index) in list"
|
| | | :key="index"
|
| | | >
|
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <!-- <view class="index">
|
| | | {{index+1}}
|
| | | </view> -->
|
| | | <view class="text-blue">
|
| | | {{`${item.maktx}`}}
|
| | | {{ `${item.maktx}` }}
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="action">
|
| | | <view class='cu-tag radius bg-red'>不合格</view>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="action">
|
| | | <view class="cu-tag radius bg-red">不合格</view>
|
| | | </view> -->
|
| | |
|
| | | <!-- <view class="action" v-if="!isconfirm">
|
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
| | |
| | | <text class="text-black">物料编码:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.maktxCode}}</text>
|
| | | <text class="text-grey">{{ item.matnrCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">计划跟踪号:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.platWorkCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
| | | <text class="text-black">单号:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.asnCode}}</text>
|
| | | <text class="text-grey">{{ item.asnCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">供应商批次:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.splrBatch}}</text>
|
| | | <text class="text-grey">{{ item.splrBatch }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
| | | <text class="text-black">库存单位:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.stockUnit}}</text>
|
| | | <text class="text-grey">{{ item.stockUnit }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
|
| | | <view class="cu-item">
|
| | | <!-- <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">数量:</view>
|
| | | <input class="text-right" type="number" placeholder="请输入数量" v-model="item.receiptQty"
|
| | | focus></input>
|
| | | <input
|
| | | class="text-right"
|
| | | type="number"
|
| | | placeholder="请输入数量"
|
| | | v-model="item.receiptQty"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <view class="margin-top-sm flex">
|
| | | <uni-data-checkbox mode="tag" v-model="item.status" :localdata="types"></uni-data-checkbox>
|
| | | <uni-data-checkbox
|
| | | mode="tag"
|
| | | v-model="item.status"
|
| | | :localdata="types"
|
| | | ></uni-data-checkbox>
|
| | | </view>
|
| | | </block>
|
| | | </view>
|
| | |
|
| | | <view class="cu-bar btn-group foot">
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">上锁</button>
|
| | | <button
|
| | | v-if="hasButtonPermission('reset')"
|
| | | class="cu-btn text-blue line-blue shadow"
|
| | | @click="clear"
|
| | | >
|
| | | 清空
|
| | | </button>
|
| | | <button
|
| | | v-if="hasButtonPermission('submit')"
|
| | | class="cu-btn bg-blue shadow-blur"
|
| | | @click="confirm"
|
| | | >
|
| | | 上锁
|
| | | </button>
|
| | | </view>
|
| | |
|
| | | <ConfirmModal
|
| | | :visible="showModal"
|
| | | @update:visible="showModal = $event"
|
| | | icon="check"
|
| | | title="上锁确认"
|
| | | message="是否确定上锁?"
|
| | | cancelText="不需要"
|
| | | confirmText="确定"
|
| | | :isconfirm="isconfirm"
|
| | | @cancel="handleNo"
|
| | | @confirm="handleYes"
|
| | | ></ConfirmModal>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | request
|
| | | } from '../../common/request.js'
|
| | | import { request } from '../../common/request.js'
|
| | | import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
|
| | |
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | container: '',
|
| | | list: [],
|
| | | range: [],
|
| | | isconfirm: false,
|
| | | types: [{
|
| | | text: '待返修',
|
| | | value: 1
|
| | | },
|
| | | {
|
| | | text: '待报废',
|
| | | value: 2
|
| | | },
|
| | | {
|
| | | text: '降级使用',
|
| | | value: 3
|
| | | },
|
| | | {
|
| | | text: '待定',
|
| | | value: 4
|
| | | },
|
| | | ],
|
| | | }
|
| | | export default {
|
| | | components: {
|
| | | ConfirmModal
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | container: '',
|
| | | list: [],
|
| | | range: [],
|
| | | isconfirm: false,
|
| | | types: [
|
| | | {
|
| | | text: '正常',
|
| | | value: 1
|
| | | },
|
| | | {
|
| | | text: '锁定',
|
| | | value: 0
|
| | | }
|
| | | ],
|
| | | showModal: false,
|
| | | buttonPermissions: [] // 按钮权限列表
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | allCount() {
|
| | | return this.list.reduce(
|
| | | (acc, row) => (row.status == 0 ? acc + 1 : acc),
|
| | | 0
|
| | | )
|
| | | }
|
| | | },
|
| | | mounted() {
|
| | | this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
|
| | | },
|
| | | methods: {
|
| | | // 检查按钮权限
|
| | | hasButtonPermission(route) {
|
| | | return this.buttonPermissions.includes(route)
|
| | | },
|
| | | computed: {
|
| | |
|
| | | handleNo() {
|
| | | this.showModal = false
|
| | | },
|
| | | mounted() {},
|
| | | methods: {
|
| | | async search() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/defect/' + this.barcode, {}, "post")
|
| | | async handleYes() {
|
| | | this.isconfirm = true
|
| | | try {
|
| | | const { code, data, msg } = await request(
|
| | | '/other/inspectConfirm',
|
| | | {
|
| | | matnrList: this.list
|
| | | },
|
| | | 'post'
|
| | | )
|
| | | if (code === 200) {
|
| | | const find = this.list.find(el => el.id === data.id);
|
| | | !find && this.list.push(data)
|
| | | uni.showToast({
|
| | | title: '提交成功'
|
| | | })
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.container = ''
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | // this.list = [{
|
| | | // id: 1,
|
| | | // maktx: '拉杆箱',
|
| | | // maktxCode: '312312312',
|
| | | // asnCode: 'asn123412',
|
| | | // splrBatch: '3123123',
|
| | | // stockUnit: '个',
|
| | | // receiptQty: null
|
| | | // }]
|
| | | },
|
| | | async confirm() {
|
| | | // const {
|
| | | // code,
|
| | | // data,
|
| | | // msg
|
| | | // } = await request('/waitPakin/unbind', {
|
| | | // items: this.list,
|
| | | // barcode: this.container
|
| | | // })
|
| | | // if (code === 200) {
|
| | | // uni.showToast({
|
| | | // title: '提交成功'
|
| | | // })
|
| | | // this.list = []
|
| | | // this.barcode = ''
|
| | | // this.isconfirm = false
|
| | | // } else {
|
| | | // uni.showToast({
|
| | | // title: msg,
|
| | | // icon: "none",
|
| | | // position: 'top'
|
| | | // })
|
| | | // }
|
| | |
|
| | | },
|
| | |
|
| | | } finally {
|
| | | this.showModal = false
|
| | | this.isconfirm = false
|
| | | }
|
| | | },
|
| | | // 关闭AGV确认弹窗
|
| | | closeModal() {
|
| | | this.showModal = false
|
| | | },
|
| | | async search() {
|
| | | const { code, data, msg } = await request(
|
| | | '/other/inspectList',
|
| | | {
|
| | | containerNo: this.container,
|
| | | matnrCode: this.barcode
|
| | | },
|
| | | 'post'
|
| | | )
|
| | | if (code === 200) {
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | },
|
| | | async confirm() {
|
| | | if (this.allCount == 0) {
|
| | | uni.showToast({
|
| | | title: '没有锁定的明细',
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | return
|
| | | }
|
| | | this.showModal = true
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style>
|
| | | .index {
|
| | | border: 1px solid #e54d42;
|
| | | color: #e54d42;
|
| | | border-radius: 50%;
|
| | | display: block;
|
| | | width: 50rpx;
|
| | | height: 50rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | margin-right: 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | | .index {
|
| | | border: 1px solid #e54d42;
|
| | | color: #e54d42;
|
| | | border-radius: 50%;
|
| | | display: block;
|
| | | width: 50rpx;
|
| | | height: 50rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | margin-right: 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style> |
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style>
|
| | |
| | | <view class="has-foot">
|
| | | <form>
|
| | | <view class="cu-form-group margin-top">
|
| | | <view class="title">容器号</view>
|
| | | <input placeholder="请扫描容器编码" v-model="isptCode" focus></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | <view class="title">托盘码</view>
|
| | | <input
|
| | | placeholder="请扫描托盘码"
|
| | | v-model="container"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group ">
|
| | | <view class="title">物料号</view>
|
| | | <input placeholder="请扫描物料编码" v-model="barcode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="scrollTo"></text>
|
| | | <view class="cu-form-group">
|
| | | <view class="title">物料标签</view>
|
| | | <input
|
| | | placeholder="请扫描物料标签"
|
| | | v-model="barcode"
|
| | | />
|
| | | <text
|
| | | class="cuIcon-search text-blue"
|
| | | @click="search"
|
| | | ></text>
|
| | | </view>
|
| | | </form>
|
| | | <view class="flex solid-bottom padding-sm justify-between">
|
| | | <view class="text-blue">物料种类:{{ list.length }}</view>
|
| | | <view class="text-red">锁定数量:{{ allCount }}</view>
|
| | | </view>
|
| | | <view
|
| | | class="flex solid-bottom padding-sm justify-between"
|
| | | v-if="list.length"
|
| | | >
|
| | | <view class="text-blue">库位号:{{ list[0].locCode }}</view>
|
| | | </view>
|
| | |
|
| | | <view class="padding-lr margin-top-sm">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| | | <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.matnrCode===barcode&&'act']"
|
| | | :ref="item.matnrCode+'ref'">
|
| | |
|
| | | <view class="cu-bar bg-white solid-bottom ">
|
| | | <view class="action">
|
| | | <view class="index">
|
| | | {{index+1}}
|
| | | </view>
|
| | | <view class="text-blue">
|
| | | {{`${item.maktx}`}}
|
| | | </view>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
| | | <view
|
| | | class="cu-list det menu sm-border padding"
|
| | | style="padding-bottom: 60px"
|
| | | >
|
| | | <block
|
| | | v-for="(item, index) in list"
|
| | | :key="index"
|
| | | >
|
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <!-- <view class="index">
|
| | | {{index+1}}
|
| | | </view> -->
|
| | | <view class="text-blue">
|
| | | {{ `${item.maktx}` }}
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">ASN:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.asnCode}}</text>
|
| | | <!-- <view class="action">
|
| | | <view class="cu-tag radius bg-red">不合格</view>
|
| | | </view> -->
|
| | |
|
| | | <!-- <view class="action" v-if="!isconfirm">
|
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
| | | </view> -->
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">物料编码:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.matnrCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">计划跟踪号:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.platWorkCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">单号:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.asnCode }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">供应商批次:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.splrBatch }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">库存单位:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey">{{ item.stockUnit }}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">数量:</view>
|
| | | <input
|
| | | class="text-right"
|
| | | type="number"
|
| | | placeholder="请输入数量"
|
| | | v-model="item.receiptQty"
|
| | | focus
|
| | | />
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">供应商:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.splrName}}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">供应商批次:</text>
|
| | | </view>
|
| | | <view class="action">
|
| | | <text class="text-grey ">{{item.splrBatch}}</text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <text class="text-black">收货数量: <text class="text-grey ">{{item.rcptQty}}</text></text>
|
| | | </view>
|
| | |
|
| | | <view class="content">
|
| | | <text class="text-black">送货数量: <text class="text-grey ">{{item.dlyQty}}</text></text>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">合格数量:</view>
|
| | | <input type="number" placeholder="请输入合格数量" v-model="item.safeQty"></input>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">不合格数量:</view>
|
| | | <input type="number" placeholder="请输入不合格数量" v-model="item.disQty"></input>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <view class="content">
|
| | | <view class="cu-form-group padding-lr-0">
|
| | | <view class="title text-blue">质检结论:</view>
|
| | |
|
| | | <uni-data-select placement='top' v-model="item.isptResult" :localdata="range"
|
| | | placeholder="请输入质检结论"></uni-data-select>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group align-start">
|
| | | <view class="title text-blue">备注</view>
|
| | | <textarea v-model="item.memo" placeholder="请输入备注"></textarea>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="cu-form-group">
|
| | | <uni-file-picker limit="9" title="照片"></uni-file-picker>
|
| | | </view> -->
|
| | |
|
| | |
|
| | | <view class="margin-top-sm flex">
|
| | | <uni-data-checkbox
|
| | | mode="tag"
|
| | | v-model="item.status"
|
| | | :localdata="types"
|
| | | ></uni-data-checkbox>
|
| | | </view>
|
| | | </block>
|
| | | </view>
|
| | |
|
| | | <view class="cu-bar btn-group foot">
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">解锁</button>
|
| | | <button
|
| | | v-if="hasButtonPermission('reset')"
|
| | | class="cu-btn text-blue line-blue shadow"
|
| | | @click="clear"
|
| | | >
|
| | | 清空
|
| | | </button>
|
| | | <button
|
| | | v-if="hasButtonPermission('submit')"
|
| | | class="cu-btn bg-blue shadow-blur"
|
| | | @click="confirm"
|
| | | >
|
| | | 解锁
|
| | | </button>
|
| | | </view>
|
| | |
|
| | | <ConfirmModal
|
| | | :visible="showModal"
|
| | | @update:visible="showModal = $event"
|
| | | icon="check"
|
| | | title="解锁确认"
|
| | | message="是否确定解锁?"
|
| | | cancelText="不需要"
|
| | | confirmText="确定"
|
| | | :isconfirm="isconfirm"
|
| | | @cancel="handleNo"
|
| | | @confirm="handleYes"
|
| | | ></ConfirmModal>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | request
|
| | | } from '../../common/request.js'
|
| | | import {
|
| | | mapState,
|
| | | mapMutations,
|
| | | mapActions,
|
| | | mapGetters
|
| | | } from 'vuex';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | isptCode: '',
|
| | | list: [],
|
| | | range: [{
|
| | | value: '1',
|
| | | text: '合格'
|
| | | }, {
|
| | | value: '2',
|
| | | text: '不合格'
|
| | | }, {
|
| | | value: '3',
|
| | | text: '待定'
|
| | | }, {
|
| | | value: '4',
|
| | | text: '部分合格'
|
| | | }],
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | ...mapState('user', ['dynamicFields']),
|
| | | },
|
| | | mounted() {},
|
| | | methods: {
|
| | | async search() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/inspect/query', {
|
| | | isptCode: this.isptCode,
|
| | | })
|
| | | if (code === 200) {
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | position: 'top'
|
| | | })
|
| | | import { request } from '../../common/request.js'
|
| | | import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
|
| | |
|
| | | export default {
|
| | | components: {
|
| | | ConfirmModal
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | barcode: '',
|
| | | container: '',
|
| | | list: [],
|
| | | range: [],
|
| | | isconfirm: false,
|
| | | types: [
|
| | | {
|
| | | text: '正常',
|
| | | value: 1
|
| | | },
|
| | | {
|
| | | text: '锁定',
|
| | | value: 0
|
| | | }
|
| | |
|
| | |
|
| | | },
|
| | | remove(index) {
|
| | | this.list.splice(index, 1);
|
| | | },
|
| | | clear() {
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | },
|
| | | scrollTo() {
|
| | | const ref = this.$refs[`${this.barcode}ref`][0];
|
| | | uni.pageScrollTo({
|
| | | scrollTop: ref.$el.offsetTop,
|
| | | duration: 300
|
| | | })
|
| | | },
|
| | | async confirm() {
|
| | | const {
|
| | | code,
|
| | | data,
|
| | | msg
|
| | | } = await request('/inspect/check/update', this.list)
|
| | | ],
|
| | | showModal: false,
|
| | | buttonPermissions: [] // 按钮权限列表
|
| | | }
|
| | | },
|
| | | computed: {
|
| | | allCount() {
|
| | | return this.list.reduce(
|
| | | (acc, row) => (row.status == 0 ? acc + 1 : acc),
|
| | | 0
|
| | | )
|
| | | }
|
| | | },
|
| | | mounted() {
|
| | | this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
|
| | | },
|
| | | methods: {
|
| | | // 检查按钮权限
|
| | | hasButtonPermission(route) {
|
| | | return this.buttonPermissions.includes(route)
|
| | | },
|
| | | handleNo() {
|
| | | this.showModal = false
|
| | | },
|
| | | async handleYes() {
|
| | | this.isconfirm = true
|
| | | try {
|
| | | const { code, data, msg } = await request(
|
| | | '/other/inspectConfirm2',
|
| | | {
|
| | | matnrList: this.list
|
| | | },
|
| | | 'post'
|
| | | )
|
| | | if (code === 200) {
|
| | | uni.showToast({
|
| | | title: '质检成功'
|
| | | title: '提交成功'
|
| | | })
|
| | | this.list = []
|
| | | this.barcode = ''
|
| | | this.container = ''
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: "none",
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | },
|
| | |
|
| | | } finally {
|
| | | this.showModal = false
|
| | | this.isconfirm = false
|
| | | }
|
| | | },
|
| | | // 关闭AGV确认弹窗
|
| | | closeModal() {
|
| | | this.showModal = false
|
| | | },
|
| | | async search() {
|
| | | const { code, data, msg } = await request(
|
| | | '/other/inspectList',
|
| | | {
|
| | | containerNo: this.container,
|
| | | matnrCode: this.barcode
|
| | | },
|
| | | 'post'
|
| | | )
|
| | | if (code === 200) {
|
| | | this.list = data
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: msg,
|
| | | icon: 'none',
|
| | | position: 'top'
|
| | | })
|
| | | }
|
| | | },
|
| | | async confirm() {
|
| | | this.showModal = true
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style>
|
| | | .index {
|
| | | border: 1px solid #e54d42;
|
| | | color: #e54d42;
|
| | | border-radius: 50%;
|
| | | display: block;
|
| | | width: 50rpx;
|
| | | height: 50rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | margin-right: 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | | .index {
|
| | | border: 1px solid #e54d42;
|
| | | color: #e54d42;
|
| | | border-radius: 50%;
|
| | | display: block;
|
| | | width: 50rpx;
|
| | | height: 50rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | margin-right: 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | | .text-blue {
|
| | | color: #0081ff !important;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | .act {
|
| | | border: 1px solid #e54d42;
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | |
|
| | | .uni-file-picker {
|
| | | width: 100%;
|
| | | margin-bottom: 10px;
|
| | | }
|
| | |
|
| | | .uni-select__selector {
|
| | | z-index: 999;
|
| | | }
|
| | | </style> |
| | | .item {
|
| | | position: relative;
|
| | | display: flex;
|
| | | min-height: 80upx;
|
| | | align-items: center;
|
| | | }
|
| | | </style>
|
| | |
| | | |
| | | <view class="bodyView"> |
| | | <view> |
| | | <uni-nav-bar :fixed="true" :title="$t('page.login')" right-icon="gear" @clickRight="openSettings"></uni-nav-bar> |
| | | <uni-nav-bar :fixed="true" :statusBar="true" :title="$t('page.login')" right-icon="gear" @clickRight="openSettings"></uni-nav-bar> |
| | | </view> |
| | | <view class="topView"> |
| | | <image src="/static/img/login_top.png" mode="aspectFill"> |
| New file |
| | |
| | | <template> |
| | | <view class="page-container"> |
| | | <!-- 订单信息头部 --> |
| | | <view class="order-header" v-if="order"> |
| | | <view class="header-content"> |
| | | <view class="header-row"> |
| | | <text class="header-label">单据号</text> |
| | | <text class="header-value">{{order.code}}</text> |
| | | </view> |
| | | <view class="header-row"> |
| | | <text class="header-label">单据类型</text> |
| | | <text class="header-value">{{order.wkType$ || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 搜索框 --> |
| | | <!-- <view class="search-bar"> |
| | | <uni-search-bar v-model="condition" placeholder=" 扫码 / 输入物料" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" /> |
| | | </view> --> |
| | | |
| | | <!-- 明细列表 --> |
| | | <view class="padding-lr margin-top-sm"> |
| | | <block v-for="(item, index) in filterList" :key="index"> |
| | | <view class="cu-list menu sm-border margin-bottom-sm" > |
| | | <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index">{{index+1}}</view> |
| | | <view class="text-blue"> |
| | | 编码: {{item.matnrCode}} |
| | | </view> |
| | | </view> |
| | | <view class="action"> |
| | | <text :class="getRemaining(item) > 0 ? 'text-blue' : 'text-green'"> |
| | | {{getRemaining(item) > 0 ? '剩余 ' + getRemaining(item) : '已完成'}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">物料名称:</text> |
| | | <text class="text-grey text-sm margin-left-xs">{{item.maktx || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">规格:</text> |
| | | <text class="text-grey margin-left-xs">{{item.specs || '-'}}</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-black">批次:</text> |
| | | <text class="text-grey margin-left-xs">{{item.splrBatch || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">订单数量:</text> |
| | | <text class="text-blue margin-left-xs">{{item.anfme}}</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-black">已完成:</text> |
| | | <text class="text-green margin-left-xs">{{item.qty}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | <!-- 空状态 --> |
| | | <view class="empty-state" v-if="filterList.length === 0 && !loading"> |
| | | <uni-icons type="info" size="60" color="#CCCCCC"></uni-icons> |
| | | <text class="empty-text">暂无明细数据</text> |
| | | </view> |
| | | |
| | | <!-- 统计信息 --> |
| | | <view class="stats-bar" v-if="menuList.length > 0"> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{menuList.length}}</text> |
| | | <text class="stats-label">总明细</text> |
| | | </view> |
| | | <view class="stats-divider"></view> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{pendingCount}}</text> |
| | | <text class="stats-label">待处理</text> |
| | | </view> |
| | | <view class="stats-divider"></view> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{completedCount}}</text> |
| | | <text class="stats-label">已完成</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { request } from '@/common/request.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | data: '', |
| | | condition: '', |
| | | menuList: [], |
| | | order: '', |
| | | loading: false, |
| | | } |
| | | }, |
| | | computed: { |
| | | // 过滤后的列表(优先显示有剩余数量的) |
| | | filterList() { |
| | | if (!this.condition.trim()) { |
| | | // 排序:有剩余数量的排前面 |
| | | return [...this.menuList].sort((a, b) => { |
| | | if (a.ableQty > 0 && b.ableQty <= 0) return -1; |
| | | if (a.ableQty <= 0 && b.ableQty > 0) return 1; |
| | | return 0; |
| | | }); |
| | | } |
| | | const keyword = this.condition.toLowerCase(); |
| | | return this.menuList.filter(item => { |
| | | return (item.matnr && item.matnr.toLowerCase().includes(keyword)) || |
| | | (item.maktx && item.maktx.toLowerCase().includes(keyword)) || |
| | | (item.batch && item.batch.toLowerCase().includes(keyword)); |
| | | }); |
| | | }, |
| | | // 待处理数量 |
| | | pendingCount() { |
| | | return this.menuList.filter(item => item.enableQty > 0).length; |
| | | }, |
| | | // 已完成数量 |
| | | completedCount() { |
| | | return this.menuList.filter(item => item.enableQty <= 0).length; |
| | | } |
| | | }, |
| | | onLoad() { |
| | | let that = this; |
| | | const eventChannel = this.getOpenerEventChannel(); |
| | | if (eventChannel) { |
| | | eventChannel.on('data', function(data) { |
| | | that.order = data.data; |
| | | that.getOrderNoList(that.order); |
| | | }); |
| | | } |
| | | }, |
| | | onShow() { |
| | | if (this.order) { |
| | | this.getOrderNoList(this.order); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 获取剩余数量 |
| | | getRemaining(item) { |
| | | if (item.ableQty !== undefined && item.ableQty !== null) { |
| | | return Number(item.ableQty); |
| | | } |
| | | // 降级逻辑:订单数量 - 已完成数量 |
| | | return Number(item.anfme || 0) - Number(item.qty || 0); |
| | | }, |
| | | // 搜索 |
| | | async search() { |
| | | if (!this.condition.trim()) { |
| | | this.getOrderNoList(this.order); |
| | | return; |
| | | } |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/orderDetl/search/pda/auth', { |
| | | condition: this.condition, |
| | | order: this.order.code |
| | | }, 'POST', true); |
| | | |
| | | if (res.code === 200) { |
| | | let list = res.data || []; |
| | | list.forEach(item => { |
| | | if (item.enableQty === undefined || item.enableQty === null) { |
| | | item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0); |
| | | } |
| | | }); |
| | | this.menuList = list; |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 取消搜索 |
| | | onCancelSearch() { |
| | | this.condition = ''; |
| | | this.getOrderNoList(this.order); |
| | | }, |
| | | // 获取订单明细列表 |
| | | async getOrderNoList(order) { |
| | | if (!order || !order.code) return; |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/orderOut/detlList', { |
| | | orderNo: order.code |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | let list = res.data || []; |
| | | list.forEach(item => { |
| | | if (item.enableQty === undefined || item.enableQty === null) { |
| | | item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0); |
| | | } |
| | | }); |
| | | this.menuList = list; |
| | | } else { |
| | | this.menuList = res.data || []; |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 选择明细进行出库 |
| | | chose(item) { |
| | | if (item.enableQty <= 0) { |
| | | uni.showToast({ title: '该明细已完成', icon: "none", position: 'top' }); |
| | | return; |
| | | } |
| | | let that = this; |
| | | uni.navigateTo({ |
| | | url: "./outLocView", |
| | | success: function(res) { |
| | | res.eventChannel.emit('orderItem', { |
| | | item: item |
| | | }); |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | // 返回后刷新数据 |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | /* 引入公共样式 */ |
| | | @import url('@/static/css/common.scss'); |
| | | |
| | | .page-container { |
| | | padding-bottom: 120rpx; |
| | | } |
| | | |
| | | /* 订单头部 */ |
| | | .order-header { |
| | | background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%); |
| | | padding: 16rpx 20rpx; |
| | | } |
| | | |
| | | .header-content { |
| | | background: rgba(255, 255, 255, 0.15); |
| | | border-radius: 10rpx; |
| | | padding: 12rpx 16rpx; |
| | | } |
| | | |
| | | .header-row { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 4rpx 0; |
| | | } |
| | | |
| | | .header-label { |
| | | font-size: 24rpx; |
| | | color: rgba(255, 255, 255, 0.7); |
| | | } |
| | | |
| | | .header-value { |
| | | font-size: 26rpx; |
| | | color: #ffffff; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | /* 搜索栏 */ |
| | | .search-bar { |
| | | padding: 0rpx 8rpx; |
| | | background: #ffffff; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 129, 255, 0.08); |
| | | } |
| | | |
| | | /* 列表样式迁移 from rece/other.vue */ |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .act { |
| | | border: 1px solid #e54d42; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | } |
| | | |
| | | .text-green { |
| | | color: #39b54a !important; |
| | | } |
| | | |
| | | /* 空状态 */ |
| | | .empty-state { |
| | | padding: 60rpx 0; |
| | | } |
| | | |
| | | .empty-text { |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | /* 统计栏 */ |
| | | .stats-bar { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | background: #ffffff; |
| | | padding: 16rpx 0; |
| | | box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06); |
| | | } |
| | | |
| | | .stats-item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | flex: 1; |
| | | } |
| | | |
| | | .stats-value { |
| | | font-size: 32rpx; |
| | | color: #303133; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .stats-label { |
| | | font-size: 20rpx; |
| | | color: #909399; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .stats-divider { |
| | | width: 1rpx; |
| | | height: 50rpx; |
| | | background: #e8e8e8; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="page-container"> |
| | | <!-- 搜索框 --> |
| | | <view class="search-bar"> |
| | | <uni-search-bar v-model="condition" placeholder=" 扫码 / 输入" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" /> |
| | | </view> |
| | | |
| | | <!-- 订单列表 --> |
| | | <view class="order-list"> |
| | | <view class="order-card" v-for="(item,i) in matList" :key="i" @click="toPrint(item)"> |
| | | <!-- 卡片头部 --> |
| | | <view class="card-header"> |
| | | <view class="order-badge" :class="getSettleClass(item.exceStatus)"> |
| | | <text class="badge-text">{{item.exceStatus$ || '未知'}}</text> |
| | | </view> |
| | | <view class="order-no"> |
| | | <text class="order-no-label">单据号</text> |
| | | <text class="order-no-value">{{item.code}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 卡片内容 --> |
| | | <view class="card-body"> |
| | | <view class="info-row"> |
| | | <view class="info-item"> |
| | | <text class="info-label">单据类型</text> |
| | | <text class="info-value">{{item.wkType$ || '-'}}</text> |
| | | </view> |
| | | <!-- <view class="info-item"> |
| | | <text class="info-label">应出数量</text> |
| | | <text class="info-value">{{item.anfme || '-'}}</text> |
| | | </view> --> |
| | | </view> |
| | | <view class="info-row"> |
| | | <view class="info-item"> |
| | | <text class="info-label">应出数量</text> |
| | | <text class="info-value">{{item.anfme || '-'}}</text> |
| | | </view> |
| | | <view class="info-item"> |
| | | <text class="info-label">完成数量</text> |
| | | <text class="info-value">{{item.qty || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <!-- 卡片底部 --> |
| | | <view class="card-footer"> |
| | | <text class="view-detail">查看详情</text> |
| | | <uni-icons type="right" size="14" color="#999"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 空状态 --> |
| | | <view class="empty-state" v-if="matList.length === 0 && !loading"> |
| | | <uni-icons type="search" size="60" color="#CCCCCC"></uni-icons> |
| | | <text class="empty-text">暂无订单数据</text> |
| | | <text class="empty-hint">下拉刷新试试</text> |
| | | </view> |
| | | |
| | | <!-- 加载更多 --> |
| | | <uni-load-more v-show="matList.length !== 0" :status="status" :icon-size="16" :content-text="contentText" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { request } from '@/common/request.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | tagList: [], |
| | | matList: [], |
| | | condition: '', |
| | | loading: false, |
| | | curr: 1, |
| | | limit:5, |
| | | status: 'more', |
| | | contentText: { |
| | | contentdown: '上拉加载更多', |
| | | contentrefresh: '加载中', |
| | | contentnomore: '没有更多' |
| | | }, |
| | | // 当前tagId |
| | | tagIdNow: 1, |
| | | orderTypeId:'' |
| | | } |
| | | }, |
| | | // 下拉刷新 |
| | | onPullDownRefresh() { |
| | | this.refreshData(); |
| | | }, |
| | | // 上拉加载更多 |
| | | onReachBottom() { |
| | | if (this.status !== 'noMore') { |
| | | this.status = 'loading'; |
| | | this.loadMoreData(); |
| | | } |
| | | }, |
| | | onLoad() { |
| | | let that = this |
| | | const eventChannel = this.getOpenerEventChannel(); |
| | | if (eventChannel) { |
| | | eventChannel.on('orderTypeId', function(data) { |
| | | that.orderTypeId = data.orderTypeId |
| | | console.log(data) |
| | | }) |
| | | } |
| | | }, |
| | | onShow() { |
| | | // 每次进入页面重新加载 |
| | | this.refreshData(); |
| | | }, |
| | | methods: { |
| | | // 刷新数据 |
| | | refreshData() { |
| | | this.curr = 1; |
| | | this.matList = []; |
| | | this.status = 'more'; |
| | | this.loading = true; |
| | | this.fetchOrderList(true); |
| | | }, |
| | | // 加载更多数据 |
| | | loadMoreData() { |
| | | this.fetchOrderList(false); |
| | | }, |
| | | // 获取订单列表 |
| | | async fetchOrderList(isRefresh) { |
| | | try { |
| | | const res = await request('/other/transferPage', { |
| | | curr: this.curr, |
| | | limit: this.limit, |
| | | orderNo: this.condition, |
| | | orderType: this.orderTypeId |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | let records = res.data.records || []; |
| | | if (records.length > 0) { |
| | | if (isRefresh) { |
| | | this.matList = records; |
| | | } else { |
| | | this.matList = this.matList.concat(records); |
| | | } |
| | | this.curr = this.curr + 1; |
| | | this.status = 'more'; |
| | | } else { |
| | | this.status = 'noMore'; |
| | | } |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | uni.stopPullDownRefresh(); |
| | | } |
| | | }, |
| | | // 搜索 |
| | | async search() { |
| | | if (!this.condition.trim()) { |
| | | this.refreshData(); |
| | | return; |
| | | } |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/other/transferPage', { |
| | | curr: this.curr, |
| | | limit: this.limit, |
| | | orderNo: this.condition |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | this.matList = res.data || []; |
| | | this.status = 'noMore'; |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 取消搜索 |
| | | onCancelSearch() { |
| | | this.condition = ''; |
| | | this.refreshData(); |
| | | }, |
| | | // 根据状态返回样式类名 |
| | | getSettleClass(settle) { |
| | | // settle: 1-待处理, 2-处理中, 3-已完成, 4-已取消 (根据实际情况调整) |
| | | const classMap = { |
| | | 1: 'badge-pending', |
| | | 2: 'badge-processing', |
| | | 3: 'badge-completed', |
| | | 4: 'badge-cancelled' |
| | | }; |
| | | return classMap[settle] || 'badge-default'; |
| | | }, |
| | | // 跳转到订单详情 |
| | | toPrint(item) { |
| | | let that = this; |
| | | uni.navigateTo({ |
| | | url: "./orderDetlList", |
| | | success: function(res) { |
| | | res.eventChannel.emit('data', { |
| | | data: item |
| | | }); |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | that.matnr = data.data; |
| | | that.findMat(that.matnr); |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | @import url('@/static/css/wms.css/wms.css'); |
| | | |
| | | .page-container { |
| | | min-height: 100vh; |
| | | background: #f5f7fa; |
| | | padding-bottom: 20rpx; |
| | | } |
| | | |
| | | .search-bar { |
| | | padding: 0rpx 8rpx; |
| | | background: #ffffff; |
| | | box-shadow: 0 2rpx 12rpx rgba(0, 129, 255, 0.08); |
| | | } |
| | | |
| | | .order-list { |
| | | padding: 0 24rpx; |
| | | } |
| | | |
| | | .order-card { |
| | | background: #ffffff; |
| | | border-radius: 16rpx; |
| | | margin-top: 20rpx; |
| | | box-shadow: 0 4rpx 20rpx rgba(0, 129, 255, 0.1); |
| | | overflow: hidden; |
| | | transition: transform 0.2s ease, box-shadow 0.2s ease; |
| | | border: 1rpx solid #e4e7ed; |
| | | } |
| | | |
| | | .order-card:active { |
| | | transform: scale(0.98); |
| | | box-shadow: 0 2rpx 10rpx rgba(0, 129, 255, 0.15); |
| | | } |
| | | |
| | | .card-header { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 24rpx 28rpx; |
| | | background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%); |
| | | } |
| | | |
| | | .order-badge { |
| | | padding: 6rpx 16rpx; |
| | | border-radius: 20rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .badge-text { |
| | | font-size: 22rpx; |
| | | font-weight: 500; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | /* 状态徽章颜色 */ |
| | | .badge-pending { |
| | | background: rgba(255, 255, 255, 0.3); |
| | | } |
| | | |
| | | .badge-processing { |
| | | background: #ffc107; |
| | | } |
| | | |
| | | .badge-completed { |
| | | background: #28a745; |
| | | } |
| | | |
| | | .badge-cancelled { |
| | | background: #dc3545; |
| | | } |
| | | |
| | | .badge-default { |
| | | background: rgba(255, 255, 255, 0.25); |
| | | } |
| | | |
| | | .order-no { |
| | | flex: 1; |
| | | } |
| | | |
| | | .order-no-label { |
| | | font-size: 22rpx; |
| | | color: rgba(255, 255, 255, 0.7); |
| | | display: block; |
| | | } |
| | | |
| | | .order-no-value { |
| | | font-size: 28rpx; |
| | | color: #ffffff; |
| | | font-weight: 600; |
| | | display: block; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .card-body { |
| | | padding: 24rpx 28rpx; |
| | | } |
| | | |
| | | .info-row { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .info-item { |
| | | width: 50%; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .info-label { |
| | | font-size: 24rpx; |
| | | color: #909399; |
| | | display: block; |
| | | } |
| | | |
| | | .info-value { |
| | | font-size: 28rpx; |
| | | color: #303133; |
| | | font-weight: 500; |
| | | display: block; |
| | | margin-top: 6rpx; |
| | | } |
| | | |
| | | .card-footer { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | padding: 20rpx 28rpx; |
| | | border-top: 1rpx solid #f0f0f0; |
| | | } |
| | | |
| | | .view-detail { |
| | | font-size: 26rpx; |
| | | color: #909399; |
| | | margin-right: 8rpx; |
| | | } |
| | | |
| | | /* 空状态 */ |
| | | .empty-state { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 120rpx 0; |
| | | } |
| | | |
| | | .empty-text { |
| | | font-size: 30rpx; |
| | | color: #909399; |
| | | margin-top: 30rpx; |
| | | } |
| | | |
| | | .empty-hint { |
| | | font-size: 24rpx; |
| | | color: #c0c4cc; |
| | | margin-top: 12rpx; |
| | | } |
| | | </style> |
| | |
| | | const res = await request('/orderOut/list', { |
| | | curr: this.curr, |
| | | limit: this.limit, |
| | | orderNo: this.condition |
| | | orderNo: this.condition, |
| | | orderType: this.orderTypeId |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | |
| | | color: this.colorList[index], |
| | | cuIcon: 'round', |
| | | url: `/outbound/orderOut/orderList`, |
| | | id: item.id |
| | | id: item.value |
| | | }) |
| | | }) |
| | | } else { |
| New file |
| | |
| | | <template> |
| | | <view class="page-container"> |
| | | <!-- 订单信息头部 --> |
| | | <view class="order-header" v-if="order"> |
| | | <view class="header-content"> |
| | | <view class="header-row"> |
| | | <text class="header-label">单据号</text> |
| | | <text class="header-value">{{order.code}}</text> |
| | | </view> |
| | | <view class="header-row"> |
| | | <text class="header-label">单据类型</text> |
| | | <text class="header-value">{{order.wkType$ || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 搜索框 --> |
| | | <!-- <view class="search-bar"> |
| | | <uni-search-bar v-model="condition" placeholder=" 扫码 / 输入物料" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" /> |
| | | </view> --> |
| | | |
| | | <!-- 明细列表 --> |
| | | <view class="padding-lr margin-top-sm"> |
| | | <block v-for="(item, index) in filterList" :key="index"> |
| | | <view class="cu-list menu sm-border margin-bottom-sm" > |
| | | <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index">{{index+1}}</view> |
| | | <view class="text-blue"> |
| | | 编码: {{item.matnrCode}} |
| | | </view> |
| | | </view> |
| | | <view class="action"> |
| | | <text :class="getRemaining(item) > 0 ? 'text-blue' : 'text-green'"> |
| | | {{getRemaining(item) > 0 ? '剩余 ' + getRemaining(item) : '已完成'}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">物料名称:</text> |
| | | <text class="text-grey text-sm margin-left-xs">{{item.maktx || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">规格:</text> |
| | | <text class="text-grey margin-left-xs">{{item.specs || '-'}}</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-black">批次:</text> |
| | | <text class="text-grey margin-left-xs">{{item.splrBatch || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">订单数量:</text> |
| | | <text class="text-blue margin-left-xs">{{item.anfme}}</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-black">已完成:</text> |
| | | <text class="text-green margin-left-xs">{{item.qty}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | <!-- 空状态 --> |
| | | <view class="empty-state" v-if="filterList.length === 0 && !loading"> |
| | | <uni-icons type="info" size="60" color="#CCCCCC"></uni-icons> |
| | | <text class="empty-text">暂无明细数据</text> |
| | | </view> |
| | | |
| | | <!-- 统计信息 --> |
| | | <view class="stats-bar" v-if="menuList.length > 0"> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{menuList.length}}</text> |
| | | <text class="stats-label">总明细</text> |
| | | </view> |
| | | <view class="stats-divider"></view> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{pendingCount}}</text> |
| | | <text class="stats-label">待处理</text> |
| | | </view> |
| | | <view class="stats-divider"></view> |
| | | <view class="stats-item"> |
| | | <text class="stats-value">{{completedCount}}</text> |
| | | <text class="stats-label">已完成</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { request } from '@/common/request.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | data: '', |
| | | condition: '', |
| | | menuList: [], |
| | | order: '', |
| | | loading: false, |
| | | } |
| | | }, |
| | | computed: { |
| | | // 过滤后的列表(优先显示有剩余数量的) |
| | | filterList() { |
| | | if (!this.condition.trim()) { |
| | | // 排序:有剩余数量的排前面 |
| | | return [...this.menuList].sort((a, b) => { |
| | | if (a.ableQty > 0 && b.ableQty <= 0) return -1; |
| | | if (a.ableQty <= 0 && b.ableQty > 0) return 1; |
| | | return 0; |
| | | }); |
| | | } |
| | | const keyword = this.condition.toLowerCase(); |
| | | return this.menuList.filter(item => { |
| | | return (item.matnr && item.matnr.toLowerCase().includes(keyword)) || |
| | | (item.maktx && item.maktx.toLowerCase().includes(keyword)) || |
| | | (item.batch && item.batch.toLowerCase().includes(keyword)); |
| | | }); |
| | | }, |
| | | // 待处理数量 |
| | | pendingCount() { |
| | | return this.menuList.filter(item => item.enableQty > 0).length; |
| | | }, |
| | | // 已完成数量 |
| | | completedCount() { |
| | | return this.menuList.filter(item => item.enableQty <= 0).length; |
| | | } |
| | | }, |
| | | onLoad() { |
| | | let that = this; |
| | | const eventChannel = this.getOpenerEventChannel(); |
| | | if (eventChannel) { |
| | | eventChannel.on('data', function(data) { |
| | | that.order = data.data; |
| | | that.getOrderNoList(that.order); |
| | | }); |
| | | } |
| | | }, |
| | | onShow() { |
| | | if (this.order) { |
| | | this.getOrderNoList(this.order); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 获取剩余数量 |
| | | getRemaining(item) { |
| | | if (item.ableQty !== undefined && item.ableQty !== null) { |
| | | return Number(item.ableQty); |
| | | } |
| | | // 降级逻辑:订单数量 - 已完成数量 |
| | | return Number(item.anfme || 0) - Number(item.qty || 0); |
| | | }, |
| | | // 搜索 |
| | | async search() { |
| | | if (!this.condition.trim()) { |
| | | this.getOrderNoList(this.order); |
| | | return; |
| | | } |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/orderDetl/search/pda/auth', { |
| | | condition: this.condition, |
| | | order: this.order.code |
| | | }, 'POST', true); |
| | | |
| | | if (res.code === 200) { |
| | | let list = res.data || []; |
| | | list.forEach(item => { |
| | | if (item.enableQty === undefined || item.enableQty === null) { |
| | | item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0); |
| | | } |
| | | }); |
| | | this.menuList = list; |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 取消搜索 |
| | | onCancelSearch() { |
| | | this.condition = ''; |
| | | this.getOrderNoList(this.order); |
| | | }, |
| | | // 获取订单明细列表 |
| | | async getOrderNoList(order) { |
| | | if (!order || !order.code) return; |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/orderOut/detlList', { |
| | | orderNo: order.code |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | let list = res.data || []; |
| | | list.forEach(item => { |
| | | if (item.enableQty === undefined || item.enableQty === null) { |
| | | item.enableQty = Number(item.anfme || 0) - Number(item.qty || 0); |
| | | } |
| | | }); |
| | | this.menuList = list; |
| | | } else { |
| | | this.menuList = res.data || []; |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 选择明细进行出库 |
| | | chose(item) { |
| | | if (item.enableQty <= 0) { |
| | | uni.showToast({ title: '该明细已完成', icon: "none", position: 'top' }); |
| | | return; |
| | | } |
| | | let that = this; |
| | | uni.navigateTo({ |
| | | url: "./outLocView", |
| | | success: function(res) { |
| | | res.eventChannel.emit('orderItem', { |
| | | item: item |
| | | }); |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | // 返回后刷新数据 |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | /* 引入公共样式 */ |
| | | @import url('@/static/css/common.scss'); |
| | | |
| | | .page-container { |
| | | padding-bottom: 120rpx; |
| | | } |
| | | |
| | | /* 订单头部 */ |
| | | .order-header { |
| | | background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%); |
| | | padding: 16rpx 20rpx; |
| | | } |
| | | |
| | | .header-content { |
| | | background: rgba(255, 255, 255, 0.15); |
| | | border-radius: 10rpx; |
| | | padding: 12rpx 16rpx; |
| | | } |
| | | |
| | | .header-row { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 4rpx 0; |
| | | } |
| | | |
| | | .header-label { |
| | | font-size: 24rpx; |
| | | color: rgba(255, 255, 255, 0.7); |
| | | } |
| | | |
| | | .header-value { |
| | | font-size: 26rpx; |
| | | color: #ffffff; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | /* 搜索栏 */ |
| | | .search-bar { |
| | | padding: 0rpx 8rpx; |
| | | background: #ffffff; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 129, 255, 0.08); |
| | | } |
| | | |
| | | /* 列表样式迁移 from rece/other.vue */ |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .act { |
| | | border: 1px solid #e54d42; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | } |
| | | |
| | | .text-green { |
| | | color: #39b54a !important; |
| | | } |
| | | |
| | | /* 空状态 */ |
| | | .empty-state { |
| | | padding: 60rpx 0; |
| | | } |
| | | |
| | | .empty-text { |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | /* 统计栏 */ |
| | | .stats-bar { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | background: #ffffff; |
| | | padding: 16rpx 0; |
| | | box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06); |
| | | } |
| | | |
| | | .stats-item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | flex: 1; |
| | | } |
| | | |
| | | .stats-value { |
| | | font-size: 32rpx; |
| | | color: #303133; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .stats-label { |
| | | font-size: 20rpx; |
| | | color: #909399; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .stats-divider { |
| | | width: 1rpx; |
| | | height: 50rpx; |
| | | background: #e8e8e8; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="page-container"> |
| | | <!-- 搜索框 --> |
| | | <view class="search-bar"> |
| | | <uni-search-bar v-model="condition" placeholder=" 扫码 / 输入" bgColor="#F5F5F5" @confirm="search" @cancel="onCancelSearch" /> |
| | | </view> |
| | | |
| | | <!-- 订单列表 --> |
| | | <view class="order-list"> |
| | | <view class="order-card" v-for="(item,i) in matList" :key="i" @click="toPrint(item)"> |
| | | <!-- 卡片头部 --> |
| | | <view class="card-header"> |
| | | <view class="order-badge" :class="getSettleClass(item.exceStatus)"> |
| | | <text class="badge-text">{{item.exceStatus$ || '未知'}}</text> |
| | | </view> |
| | | <view class="order-no"> |
| | | <text class="order-no-label">单据号</text> |
| | | <text class="order-no-value">{{item.code}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 卡片内容 --> |
| | | <view class="card-body"> |
| | | <view class="info-row"> |
| | | <view class="info-item"> |
| | | <text class="info-label">单据类型</text> |
| | | <text class="info-value">{{item.wkType$ || '-'}}</text> |
| | | </view> |
| | | <!-- <view class="info-item"> |
| | | <text class="info-label">应出数量</text> |
| | | <text class="info-value">{{item.anfme || '-'}}</text> |
| | | </view> --> |
| | | </view> |
| | | <view class="info-row"> |
| | | <view class="info-item"> |
| | | <text class="info-label">应出数量</text> |
| | | <text class="info-value">{{item.anfme || '-'}}</text> |
| | | </view> |
| | | <view class="info-item"> |
| | | <text class="info-label">完成数量</text> |
| | | <text class="info-value">{{item.qty || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <!-- 卡片底部 --> |
| | | <view class="card-footer"> |
| | | <text class="view-detail">查看详情</text> |
| | | <uni-icons type="right" size="14" color="#999"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 空状态 --> |
| | | <view class="empty-state" v-if="matList.length === 0 && !loading"> |
| | | <uni-icons type="search" size="60" color="#CCCCCC"></uni-icons> |
| | | <text class="empty-text">暂无订单数据</text> |
| | | <text class="empty-hint">下拉刷新试试</text> |
| | | </view> |
| | | |
| | | <!-- 加载更多 --> |
| | | <uni-load-more v-show="matList.length !== 0" :status="status" :icon-size="16" :content-text="contentText" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { request } from '@/common/request.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | tagList: [], |
| | | matList: [], |
| | | condition: '', |
| | | loading: false, |
| | | curr: 1, |
| | | limit:5, |
| | | status: 'more', |
| | | contentText: { |
| | | contentdown: '上拉加载更多', |
| | | contentrefresh: '加载中', |
| | | contentnomore: '没有更多' |
| | | }, |
| | | // 当前tagId |
| | | tagIdNow: 1, |
| | | orderTypeId:'' |
| | | } |
| | | }, |
| | | // 下拉刷新 |
| | | onPullDownRefresh() { |
| | | this.refreshData(); |
| | | }, |
| | | // 上拉加载更多 |
| | | onReachBottom() { |
| | | if (this.status !== 'noMore') { |
| | | this.status = 'loading'; |
| | | this.loadMoreData(); |
| | | } |
| | | }, |
| | | onLoad() { |
| | | let that = this |
| | | const eventChannel = this.getOpenerEventChannel(); |
| | | if (eventChannel) { |
| | | eventChannel.on('orderTypeId', function(data) { |
| | | that.orderTypeId = data.orderTypeId |
| | | console.log(data) |
| | | }) |
| | | } |
| | | }, |
| | | onShow() { |
| | | // 每次进入页面重新加载 |
| | | this.refreshData(); |
| | | }, |
| | | methods: { |
| | | // 刷新数据 |
| | | refreshData() { |
| | | this.curr = 1; |
| | | this.matList = []; |
| | | this.status = 'more'; |
| | | this.loading = true; |
| | | this.fetchOrderList(true); |
| | | }, |
| | | // 加载更多数据 |
| | | loadMoreData() { |
| | | this.fetchOrderList(false); |
| | | }, |
| | | // 获取订单列表 |
| | | async fetchOrderList(isRefresh) { |
| | | try { |
| | | const res = await request('/orderOut/list', { |
| | | curr: this.curr, |
| | | limit: this.limit, |
| | | orderNo: this.condition, |
| | | orderType: this.orderTypeId |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | let records = res.data.records || []; |
| | | if (records.length > 0) { |
| | | if (isRefresh) { |
| | | this.matList = records; |
| | | } else { |
| | | this.matList = this.matList.concat(records); |
| | | } |
| | | this.curr = this.curr + 1; |
| | | this.status = 'more'; |
| | | } else { |
| | | this.status = 'noMore'; |
| | | } |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | uni.stopPullDownRefresh(); |
| | | } |
| | | }, |
| | | // 搜索 |
| | | async search() { |
| | | if (!this.condition.trim()) { |
| | | this.refreshData(); |
| | | return; |
| | | } |
| | | this.loading = true; |
| | | try { |
| | | const res = await request('/orderOut/list', { |
| | | curr: this.curr, |
| | | limit: this.limit, |
| | | orderNo: this.condition |
| | | }, 'GET', true); |
| | | |
| | | if (res.code === 200) { |
| | | this.matList = res.data || []; |
| | | this.status = 'noMore'; |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | setTimeout(() => { |
| | | uni.reLaunch({ url: '../login/login' }); |
| | | }, 1000); |
| | | } else { |
| | | uni.showToast({ title: res.msg, icon: "none", position: 'top' }); |
| | | } |
| | | } catch (err) { |
| | | // request.js 已经处理了错误提示 |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | }, |
| | | // 取消搜索 |
| | | onCancelSearch() { |
| | | this.condition = ''; |
| | | this.refreshData(); |
| | | }, |
| | | // 根据状态返回样式类名 |
| | | getSettleClass(settle) { |
| | | // settle: 1-待处理, 2-处理中, 3-已完成, 4-已取消 (根据实际情况调整) |
| | | const classMap = { |
| | | 1: 'badge-pending', |
| | | 2: 'badge-processing', |
| | | 3: 'badge-completed', |
| | | 4: 'badge-cancelled' |
| | | }; |
| | | return classMap[settle] || 'badge-default'; |
| | | }, |
| | | // 跳转到订单详情 |
| | | toPrint(item) { |
| | | let that = this; |
| | | uni.navigateTo({ |
| | | url: "./orderDetlList", |
| | | success: function(res) { |
| | | res.eventChannel.emit('data', { |
| | | data: item |
| | | }); |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | that.matnr = data.data; |
| | | that.findMat(that.matnr); |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | @import url('@/static/css/wms.css/wms.css'); |
| | | |
| | | .page-container { |
| | | min-height: 100vh; |
| | | background: #f5f7fa; |
| | | padding-bottom: 20rpx; |
| | | } |
| | | |
| | | .search-bar { |
| | | padding: 0rpx 8rpx; |
| | | background: #ffffff; |
| | | box-shadow: 0 2rpx 12rpx rgba(0, 129, 255, 0.08); |
| | | } |
| | | |
| | | .order-list { |
| | | padding: 0 24rpx; |
| | | } |
| | | |
| | | .order-card { |
| | | background: #ffffff; |
| | | border-radius: 16rpx; |
| | | margin-top: 20rpx; |
| | | box-shadow: 0 4rpx 20rpx rgba(0, 129, 255, 0.1); |
| | | overflow: hidden; |
| | | transition: transform 0.2s ease, box-shadow 0.2s ease; |
| | | border: 1rpx solid #e4e7ed; |
| | | } |
| | | |
| | | .order-card:active { |
| | | transform: scale(0.98); |
| | | box-shadow: 0 2rpx 10rpx rgba(0, 129, 255, 0.15); |
| | | } |
| | | |
| | | .card-header { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 24rpx 28rpx; |
| | | background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%); |
| | | } |
| | | |
| | | .order-badge { |
| | | padding: 6rpx 16rpx; |
| | | border-radius: 20rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .badge-text { |
| | | font-size: 22rpx; |
| | | font-weight: 500; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | /* 状态徽章颜色 */ |
| | | .badge-pending { |
| | | background: rgba(255, 255, 255, 0.3); |
| | | } |
| | | |
| | | .badge-processing { |
| | | background: #ffc107; |
| | | } |
| | | |
| | | .badge-completed { |
| | | background: #28a745; |
| | | } |
| | | |
| | | .badge-cancelled { |
| | | background: #dc3545; |
| | | } |
| | | |
| | | .badge-default { |
| | | background: rgba(255, 255, 255, 0.25); |
| | | } |
| | | |
| | | .order-no { |
| | | flex: 1; |
| | | } |
| | | |
| | | .order-no-label { |
| | | font-size: 22rpx; |
| | | color: rgba(255, 255, 255, 0.7); |
| | | display: block; |
| | | } |
| | | |
| | | .order-no-value { |
| | | font-size: 28rpx; |
| | | color: #ffffff; |
| | | font-weight: 600; |
| | | display: block; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .card-body { |
| | | padding: 24rpx 28rpx; |
| | | } |
| | | |
| | | .info-row { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .info-item { |
| | | width: 50%; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .info-label { |
| | | font-size: 24rpx; |
| | | color: #909399; |
| | | display: block; |
| | | } |
| | | |
| | | .info-value { |
| | | font-size: 28rpx; |
| | | color: #303133; |
| | | font-weight: 500; |
| | | display: block; |
| | | margin-top: 6rpx; |
| | | } |
| | | |
| | | .card-footer { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | padding: 20rpx 28rpx; |
| | | border-top: 1rpx solid #f0f0f0; |
| | | } |
| | | |
| | | .view-detail { |
| | | font-size: 26rpx; |
| | | color: #909399; |
| | | margin-right: 8rpx; |
| | | } |
| | | |
| | | /* 空状态 */ |
| | | .empty-state { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 120rpx 0; |
| | | } |
| | | |
| | | .empty-text { |
| | | font-size: 30rpx; |
| | | color: #909399; |
| | | margin-top: 30rpx; |
| | | } |
| | | |
| | | .empty-hint { |
| | | font-size: 24rpx; |
| | | color: #c0c4cc; |
| | | margin-top: 12rpx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <scroll-view |
| | | scroll-y |
| | | class="page" |
| | | > |
| | | <view class="list-container"> |
| | | <view |
| | | class="list-item" |
| | | @click="toPage(item)" |
| | | :class="'bg-' + item.color" |
| | | :style="[ |
| | | { animation: 'show ' + ((index + 1) * 0.2 + 1) + 's 1' } |
| | | ]" |
| | | v-for="(item, index) in elements" |
| | | :key="index" |
| | | > |
| | | <view class="item-icon"> |
| | | <text :class="'cuIcon-' + item.cuIcon"></text> |
| | | </view> |
| | | <view class="item-content"> |
| | | <view class="item-title">{{ item.title }}</view> |
| | | <view class="item-desc">{{ item.name }}</view> |
| | | </view> |
| | | <view class="item-arrow"> |
| | | <text class="cuIcon-right"></text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="cu-tabbar-height"></view> |
| | | </scroll-view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { request } from '@/common/request.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | buttonPermissions: [], |
| | | elements: [ |
| | | |
| | | ], |
| | | colorList: [ |
| | | 'cyan', |
| | | 'blue', |
| | | 'purple', |
| | | 'mauve', |
| | | 'pink', |
| | | 'brown', |
| | | 'red', |
| | | 'orange', |
| | | 'yellow', |
| | | 'olive' |
| | | ] |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.backGroundRepeat() |
| | | }, |
| | | mounted() { |
| | | // 获取按钮权限 |
| | | this.buttonPermissions = uni.getStorageSync('buttonPermissions') || [] |
| | | console.log('当前页面按钮权限:', this.buttonPermissions) |
| | | this.getType(this.buttonPermissions) |
| | | }, |
| | | methods: { |
| | | async getType(type) { |
| | | const { code, data, msg } = await request( |
| | | '/orderOut/getType', |
| | | { |
| | | type |
| | | }, |
| | | 'post' |
| | | ) |
| | | if (code === 200) { |
| | | data.map((item,index) => { |
| | | console.log(item,index) |
| | | this.elements.unshift({ |
| | | title: item.label, |
| | | name: '', |
| | | color: this.colorList[index], |
| | | cuIcon: 'round', |
| | | url: `/outbound/orderOutView/orderList`, |
| | | id: item.value |
| | | }) |
| | | }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: 'none', |
| | | position: 'top' |
| | | }) |
| | | } |
| | | }, |
| | | backGroundRepeat() { |
| | | let len = this.colorList.length |
| | | let i = 0 |
| | | for (let k in this.elements) { |
| | | if (i == len) { |
| | | i = 0 |
| | | } |
| | | this.elements[k].color = this.colorList[i] |
| | | i++ |
| | | } |
| | | }, |
| | | toPage(item) { |
| | | console.log(item) |
| | | uni.navigateTo({ |
| | | url: `/pages${item.url}`, |
| | | success(res) { |
| | | res.eventChannel.emit('orderTypeId', { |
| | | orderTypeId: item.id |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .page { |
| | | height: 100vh; |
| | | background-color: #f5f5f5; |
| | | } |
| | | |
| | | .list-container { |
| | | padding: 20rpx 30rpx; |
| | | } |
| | | |
| | | .list-item { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 30rpx; |
| | | margin-bottom: 20rpx; |
| | | border-radius: 16rpx; |
| | | box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .item-icon { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | background-color: rgba(255, 255, 255, 0.3); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-right: 24rpx; |
| | | } |
| | | |
| | | .item-icon text { |
| | | font-size: 40rpx; |
| | | } |
| | | |
| | | .item-content { |
| | | flex: 1; |
| | | } |
| | | |
| | | .item-title { |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | margin-bottom: 8rpx; |
| | | } |
| | | |
| | | .item-desc { |
| | | font-size: 24rpx; |
| | | opacity: 0.8; |
| | | } |
| | | |
| | | .item-arrow { |
| | | font-size: 32rpx; |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | .bg-red { |
| | | background-color: #e54d42; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-orange { |
| | | background-color: #f37b1d; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-yellow { |
| | | background-color: #fbbd08; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-olive { |
| | | background-color: #8dc63f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-green { |
| | | background-color: #39b54a; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-cyan { |
| | | background-color: #1cbbb4; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-blue { |
| | | background-color: #0081ff; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-purple { |
| | | background-color: #6739b6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-mauve { |
| | | background-color: #9c26b0; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-pink { |
| | | background-color: #e03997; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-brown { |
| | | background-color: #a5673f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-grey { |
| | | background-color: #8799a3; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gray { |
| | | background-color: #f0f0f0; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-black { |
| | | background-color: #333333; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-white { |
| | | background-color: #ffffff; |
| | | color: #666666; |
| | | } |
| | | </style> |