<template>
|
<view class="form">
|
<view class="form-base-info">
|
<view class="form-item">
|
<view class="title">条码</view>
|
<view class="right">
|
<input type="text" :focus="HBarCodeFocus" v-model="HBarCode"
|
@confirm="GetMeesageByBarCode(HBarCode)" />
|
</view>
|
<view class="right-icon">
|
<uni-icons type="scan"
|
style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
|
@click="toScanCode2"></uni-icons>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">角色</view>
|
<view class="right">
|
<!-- 多选下拉框 -->
|
<uni-data-select v-model="hform.HRoles" :multiple="true" :localdata="roleOptions"
|
placeholder="请选择角色" :clear="false" @change="onRoleChange">
|
</uni-data-select>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">生产车间:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHDeptName" placeholder="请选择车间" v-model="hform.HDeptName"
|
@input="HDeptNameChange"></uni-combox>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">签到人员:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHEmpName" placeholder="请选择签到人员" v-model="hform.HEmpName"
|
@input="HEmpNameChange"></uni-combox>
|
</view>
|
</view>
|
|
<view class="form-item">
|
<view class="title">班组:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHGroupName" placeholder="请选择班组" v-model="hform.HGroupName"
|
@input="HGroupNameChange"></uni-combox>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">班次:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHShiftsName" placeholder="请选择班次" v-model="hform.HShiftsName"
|
@input="HShiftsNameChange"></uni-combox>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">生产资源:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHSourceName" placeholder="请选择生产资源" v-model="hform.HSourceName"
|
@input="HSourceNameChange"></uni-combox>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">工序:</view>
|
<view class="right">
|
<uni-combox :candidates="arrayHProcName" placeholder="请选择工序" v-model="hform.HProcName"
|
@input="HProcNameChange"></uni-combox>
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">日期</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HDate" />
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">单据号</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HBillNo" />
|
</view>
|
</view>
|
</view>
|
<view class="tabs">
|
<view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">机台信息</view>
|
<view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">工单信息</view>
|
<view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">制单信息</view>
|
</view>
|
<!-- 装箱信息 -->
|
<view v-if="tabs == 1">
|
<zb-table id="list-table" :checked-highlight="true" :fit="true" :style="{height: `${listTableHeight}px`}"
|
:columns="columns" :data="listData" :show-header="true" :border="true" :row-key="row => row.index"
|
@toggleRowSelection="handleSelect" @toggleAllSelection="handleSelectAll"
|
@rowClick="onTableRowClickHandler" />
|
</view>
|
<view v-if="tabs == 0" class="machine-info-container">
|
<view class="form-item" v-if="false">
|
<view class="title">设备ID:</view>
|
<view class="righton">
|
<input name="HEquipID" disabled v-model="hform.HEquipID" />
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">设备名称:</view>
|
<view class="righton">
|
<input name="HEquipName" disabled v-model="hform.HEquipName" />
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">模具编码:</view>
|
<view class="righton">
|
<input name="HMouldNo" disabled v-model="hform.HMouldNo" />
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">模具名称:</view>
|
<view class="righton">
|
<input name="HMouldName" disabled v-model="hform.HMouldName" />
|
</view>
|
</view>
|
<view class="form-item">
|
<view class="title">模具状态:</view>
|
<view class="righton">
|
<input name="HMouldState" disabled v-model="hform.HMouldState" />
|
</view>
|
</view>
|
<!-- <label class="checkbox" style="float: right;">
|
<checkbox :checked="hform.chkHBarflag" style="transform:scale(0.8)" disabled color="#4f81fc" />条码核对
|
</label> -->
|
</view>
|
<!-- 制单信息 -->
|
<view v-if="tabs == 2">
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">创建日期</view>
|
<view class="right">
|
<uni-datetime-picker type="date" v-model="hform.HDate">
|
<input type="text" v-model="hform.HDate" disabled />
|
</uni-datetime-picker>
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">创建人</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HMaker" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">修改日期</view>
|
<view class="right">
|
<uni-datetime-picker type="date" v-model="hform.HUpDateDate">
|
<input type="text" v-model="hform.HDate" disabled />
|
</uni-datetime-picker>
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">修改人</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HUpDater" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">修改日期</view>
|
<view class="right">
|
<uni-datetime-picker type="date" v-model="hform.HCheckDate">
|
<input type="text" v-model="hform.HDate" disabled />
|
</uni-datetime-picker>
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">修改人</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HChecker" />
|
</view>
|
</view>
|
</view>
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">单据号</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HBillNo" />
|
</view>
|
</view>
|
</view>
|
|
<view class="bill-info">
|
<view class="form-item">
|
<view class="title">组织</view>
|
<view class="right disabled">
|
<input type="text" disabled :value="hform.HStockOrgName" />
|
</view>
|
</view>
|
</view>
|
|
</view>
|
<view class="bottom-btn" id="bottom-btn">
|
<button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini"
|
@tap="cmdSubmit">提交</button>
|
<view style="flex: 1;"></view>
|
<!-- <button class="btn-d" size="mini" @tap="cmdDelete">删除</button> -->
|
<button class="btn-c" size="mini" @tap="cmdExit">退出</button>
|
</view>
|
<!-- 打印模块 -->
|
<labelPrinterComponentVue ref="labelPrinter" :printInfo="printInfo" :printMode="'cpcl'">
|
</labelPrinterComponentVue>
|
|
<!-- 打印机选择列表 -->
|
<view v-if="maskShow" class="uni-mask" @tap="maskShow = false">
|
<scroll-view class="uni-scroll_box" scroll-y>
|
<view class="uni-list-box" v-for="(device, index) in discoveredDevices" :key="index"
|
@tap="connectBT(device)">
|
<view class="uni-list_name">名称:{{ device.name }}</view>
|
<view class="uni-list_item">{{ connectedDeviceId === device.address?'已连接':'未连接' }}</view>
|
</view>
|
</scroll-view>
|
</view>
|
<view v-if="showResultTable" class="result-modal">
|
<view class="modal-mask" @tap="closeResultTable"></view>
|
<view class="modal-content">
|
<view class="modal-header">
|
<text class="modal-title">签到结果</text>
|
<uni-icons type="close" size="20" @tap="closeResultTable"></uni-icons>
|
</view>
|
<view class="modal-body">
|
<zb-table :fit="true" :style="{height: '400px'}" :columns="resultTableColumns"
|
:data="resultTableData" :show-header="true" :border="true" :row-key="row => row.index" />
|
</view>
|
<view class="modal-footer">
|
<button class="btn-a" size="mini" @tap="toAddNew">新增</button>
|
<button class="btn-a" size="mini" @tap="search">打印</button>
|
<view style="flex: 1;"></view>
|
<button class="btn-c" size="mini" @tap="closeResultTable">关闭</button>
|
</view>
|
</view>
|
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import dayjs from 'dayjs'
|
import {
|
getUserInfo
|
} from "../../utils/auth";
|
import {
|
CommonUtils
|
} from "@/utils/common.js"
|
import {
|
MpaasScan
|
} from "@/utils/mpaasScan.js"
|
import labelPrinterComponentVue from "@/components/labelPrinterComponent/labelPrinterComponent.vue"
|
import getdateTime from '../../utils/getdateTime';
|
export default {
|
components: {
|
labelPrinterComponentVue
|
},
|
data() {
|
return {
|
|
serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
|
// 计算列表高度
|
bottomBtnTop: 0,
|
listTableTop: 0,
|
// 公共变量
|
arrayHDeptName: [], //部门
|
HDeptNameList: [],
|
arrayHEmpName: [], //员工
|
HEmpNameList: [],
|
arrayHGroupName: [], //班组
|
HGroupNameList: [],
|
arrayHShiftsName: [], //班次
|
HShiftsNameList: [],
|
arrayHSourceName: [], //生产资源
|
HSourceNameList: [],
|
arrayHProcName: [], //工序
|
HProcNameList: [],
|
|
|
EnableScanBarCodePack: true,
|
EnableSubmit: true,
|
HBarCodePackFocus: false,
|
HBarCodeFocus: false,
|
|
HBarCode: '', // 包条码
|
tabs: 0,
|
HBillType: '4616',
|
HBillSubType: '1', //子类型(1装箱、2组托)
|
OperationType: 1, //操作类型(1新增、2从缓存列表中返回)
|
HMaterNumber_Pack: "", //托条码对应物料代码
|
listOption: [],
|
listData: [],
|
columns: [{
|
type: 'selection',
|
fixed: true,
|
width: 50
|
},
|
{
|
name: 'index',
|
label: '序号',
|
width: 60,
|
hidden: true
|
},
|
{
|
name: '流转卡号',
|
label: '流转卡号',
|
width: 100,
|
},
|
{
|
name: '数量',
|
label: '数量',
|
width: 100,
|
},
|
{
|
name: '物料代码',
|
label: '物料代码',
|
width: 100,
|
},
|
{
|
name: '物料名称',
|
label: '物料名称',
|
width: 100,
|
},
|
{
|
name: '规格型号',
|
label: '规格型号',
|
width: 100,
|
},
|
{
|
name: '数量',
|
label: '数量',
|
width: 100,
|
},
|
{
|
name: '生产资源',
|
label: '生产资源',
|
width: 100,
|
}
|
],
|
selectedRows: [], // 存储选中的数据
|
titleData: [], //不需要显示的字段
|
OperationType: 1, //从缓存列表中返回数据类型(1新增、2从缓存列表中返
|
//展示表单
|
showResultTable: false, // 控制结果表格显示
|
resultTableData: [], // 结果表格数据
|
resultTableColumns: [{
|
name: '设备编码',
|
label: '设备编码',
|
width: 120,
|
},
|
{
|
name: '设备名称',
|
label: '设备名称',
|
width: 120,
|
},
|
{
|
name: '签到角色',
|
label: '签到角色',
|
width: 100,
|
},
|
{
|
name: '生产资源名称',
|
label: '生产资源名称',
|
width: 100,
|
}
|
],
|
//
|
|
// 表单提交值
|
hform: {
|
HDate: dayjs(new Date()).format('YYYY-MM-DD'),
|
HMaker: getUserInfo()['Czymc'],
|
HInterID: '',
|
HStockOrgName: uni.getStorageSync("Organization"),
|
HStockOrgID: uni.getStorageSync("OrganizationID"),
|
|
HQualityApproval: false,
|
|
HMainID: '',
|
HSubID: '',
|
HSourceBillSEQ: '',
|
HBillNo: '',
|
HEmpID: getUserInfo()['HEmpID'] || '',
|
HEmpName: getUserInfo()['Czymc'] || '',
|
HEmpNumber: getUserInfo()['Czybm'] || uni.getStorageSync("HEmpNumber"),
|
|
|
HCheckEmpName: '',
|
|
HRemark: '',
|
|
HProduceDate: dayjs(new Date()).format('YYYY-MM-DD'),
|
|
//自定义
|
HMouldID: 0,
|
HMouldName: '',
|
HMouldNumber: '',
|
HMouldNo: '',
|
HMouldState: '',
|
HEquipID: 0,
|
HEquipName: '',
|
HSourceID: uni.getStorageSync('HSourceID'),
|
HSourceName: uni.getStorageSync('HSourceName'),
|
HProcID: uni.getStorageSync('HProcID'),
|
HProcName:uni.getStorageSync('HProcName'),
|
HGroupID:uni.getStorageSync('HGroupID'),
|
HGroupName: uni.getStorageSync('HGroupName'),
|
HShiftsID: 0,
|
HShiftsName: '',
|
HDeptName: uni.getStorageSync('HDeptName'),
|
HDeptID: uni.getStorageSync('HDeptID'),
|
//HEmpID:0,
|
//HEmpName:'',
|
HSignInReason: '',
|
HSignRemark: '',
|
|
HMaterID: 0,
|
HMaterNumber: '',
|
HMaterName: '',
|
HMaterModel: '',
|
HRoles: [],
|
},
|
roleOptions: [],
|
// 分页模块元数据
|
paginationMeta: {
|
|
}
|
}
|
},
|
methods: {
|
onTableRowClickHandler(row, index) {
|
console.log('row: ', row);
|
if (!this.listData[index].checked) {
|
this.$set(this.listData[index], 'checked', true)
|
} else {
|
this.listData[index].checked = !this.listData[index].checked
|
}
|
},
|
async HBarCodeFocusRefresh() {
|
this.HBarCode = ''
|
this.HBarCodeFocus = false
|
await this.$nextTick()
|
this.HBarCodeFocus = true
|
},
|
async HBarCodePackFocusRefresh() {
|
this.HBarCode_Pack = ''
|
this.HBarCodePackFocus = false
|
await this.$nextTick()
|
this.HBarCodePackFocus = true
|
},
|
//#region 下拉框
|
//获取使用部门数据
|
async getHDeptList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/PublicPageMethod/DeptList',
|
data: {
|
sWhere: "where HStopFlag=0 and HEndFlag=1 and HUSEORGID = " + uni.getStorageSync(
|
'OrganizationID') + ""
|
},
|
})
|
|
console.log('res: ', res);
|
if (res.data.count == 1) {
|
console.log('res.data.data: ', res.data.data);
|
this.HDeptNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHDeptName = res.data.data.map(item => item.HName)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择使用部门
|
HDeptNameChange(e) {
|
for (var i = 0; i < this.HDeptNameList.length; i++) {
|
if (this.HDeptNameList[i].HName == e) {
|
this.hform.HDeptID = this.HDeptNameList[i].HItemID
|
}
|
}
|
},
|
//操作员、负责人
|
async getHEmpList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Web/GetEmployeeList_Json',
|
data: {
|
Employee: '',
|
HGroupID: 0
|
},
|
})
|
|
console.log('res: ', res);
|
if (res.data.count == 1) {
|
console.log('res.data.data: ', res.data.data);
|
this.HEmpNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHEmpName = res.data.data.map(item => item.HName)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择操作员
|
HEmpNameChange(e) {
|
for (var i = 0; i < this.HEmpNameList.length; i++) {
|
if (this.HEmpNameList[i].HName == e) {
|
this.hform.HEmpID = this.HEmpNameList[i].HItemID
|
}
|
}
|
},
|
|
//班组
|
async getHGroupList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Gy_Group/list',
|
data: {
|
sWhere: '',
|
user: getUserInfo()['Czymc'] || '',
|
},
|
})
|
|
console.log('res: ', res);
|
if (res.data.count > 0) {
|
console.log('res.data.data: ', res.data.data);
|
this.HGroupNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHGroupName = res.data.data.map(item => item.班组名称)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择班组
|
HGroupNameChange(e) {
|
for (var i = 0; i < this.HGroupNameList.length; i++) {
|
if (this.HGroupNameList[i].班组名称 == e) {
|
this.hform.HGroupID = this.HGroupNameList[i].HItemID
|
}
|
}
|
},
|
//班ci
|
async getHShiftsList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
|
data: {
|
sWhere: '',
|
HMaker: getUserInfo()['Czymc'] || '',
|
},
|
})
|
|
console.log('res: ', res);
|
if (res.data.count > 0) {
|
console.log('res.data.data: ', res.data.data);
|
this.HShiftsNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHShiftsName = res.data.data.map(item => item.班次名称)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择班ci
|
HShiftsNameChange(e) {
|
for (var i = 0; i < this.HSourceNameList.length; i++) {
|
if (this.HSourceNameList[i].班次名称 == e) {
|
this.hform.HSourceID = this.HSourceNameList[i].HInterID
|
}
|
}
|
},
|
//生产资源
|
async getHSourceList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Gy_Source/list',
|
data: {
|
sWhere: '',
|
user: getUserInfo()['Czymc'] || '',
|
},
|
})
|
|
console.log('生产资源res: ', res);
|
if (res.data.count > 0) {
|
console.log('生产资源res.data.data: ', res.data.data);
|
this.HSourceNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHSourceName = res.data.data.map(item => item.生产资源名称)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择shengcanziyuan
|
HSourceNameChange(e) {
|
for (var i = 0; i < this.HSourceNameList.length; i++) {
|
if (this.HSourceNameList[i].生产资源名称 == e) {
|
this.hform.HSourceID = this.HSourceNameList[i].HItemID
|
console.log("HSourceID为",this.hform.HSourceID)
|
}
|
}
|
},
|
//工序
|
async getHProcList() {
|
try{
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Gy_Process/list',
|
data: {
|
sWhere: '',
|
user: getUserInfo()['Czymc'] || '',
|
},
|
})
|
|
console.log('工序res: ', res);
|
if (res.data.count > 0) {
|
console.log('工序res.data.data: ', res.data.data);
|
this.HProcNameList = res.data.data
|
// for (var i = 0; i < res.data.data.length; i++) {
|
// this.arrayHDeptName[i] = res.data.data[i].HName
|
// }
|
this.arrayHProcName = res.data.data.map(item => item.工序名称)
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message,
|
icon: 'none'
|
})
|
}
|
}catch(err) {
|
uni.showToast({
|
title: err,
|
icon: 'none'
|
})
|
}
|
|
},
|
//选择Proc
|
HProcNameChange(e) {
|
for (var i = 0; i < this.HProcNameList.length; i++) {
|
if (this.HProcNameList[i].工序名称 == e) {
|
this.hform.HProcID = this.HProcNameList[i].HItemID
|
}
|
}
|
},
|
|
|
// 获取角色列表
|
async getRoleList() {
|
try {
|
let res = await CommonUtils.doRequest2Async({
|
url: '/Xt_UserGroup/list',
|
data: {
|
sWhere: '',
|
},
|
})
|
|
console.log('角色列表res: ', res);
|
if (res.data.count > 0) {
|
console.log('角色列表res.data.data: ', res.data.data);
|
// 将接口返回的数据转换为 uni-data-select 需要的格式
|
this.roleOptions = res.data.data.map(item => {
|
|
return {
|
value: item.角色 ,
|
text: item.角色
|
};
|
});
|
this.$forceUpdate();
|
} else {
|
uni.showToast({
|
title: res.data.Message || '获取角色列表失败',
|
icon: 'none'
|
});
|
// 如果接口失败,可以设置默认选项
|
this.roleOptions = [];
|
}
|
} catch(err) {
|
uni.showToast({
|
title: err.message || '获取角色列表异常',
|
icon: 'none'
|
});
|
// 异常情况设置默认选项
|
this.roleOptions = [];
|
}
|
},
|
//#endregion
|
|
|
toScanCode2() {
|
MpaasScan.scanCode((scanCode) => {
|
this.HBarCode = scanCode
|
GetMeesageByBarCode(scanCode)
|
})
|
},
|
GetMeesageByBarCode(HBarCode) {
|
|
let sBarCode = this.HBarCode
|
if (!sBarCode) {
|
return uni.showToast({
|
icon: 'none',
|
title: '条码不能为空,请扫描条码!',
|
})
|
}
|
CommonUtils.doRequest2({
|
url: '/Sc_EmployeeSignInNoteBillController/APP_Edit_json',
|
data: {
|
"HInterID": this.hform.HInterID,
|
"HBarCode": sBarCode,
|
},
|
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
//let data=res.data
|
console.log(sBarCode)
|
console.log(res.data.data[0])
|
console.log(res.data[1])
|
this.hform.HMouldID = data[0][0].模具id
|
this.hform.HMouldNo = data[0][0].模具编码
|
this.hform.HMouldName = data[0][0].模具名称
|
this.hform.HMouldState = data[0][0].模具状态
|
this.listData = []
|
let tabledata = data[1][0]
|
if (data[1].length > 0) {
|
this.hform.HEquipID = tabledata.设备内码
|
this.hform.HEquipName = tabledata.设备名称
|
this.hform.HMaterID = tabledata.HMaterID
|
for (let i = 0; i < data[1].length; i++) {
|
this.listData.push(Object.assign(data[1][i], {
|
index: i
|
}))
|
}
|
}
|
|
|
} else {
|
CommonUtils.playSound(0)
|
this.listData = []
|
this.HBarCodeFocusRefresh()
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
},
|
onRoleChange(e) {
|
console.log('选中的角色:', this.hform.HRoles);
|
},
|
|
|
handleSelect(selected, array) {
|
this.selectedRows = array
|
},
|
handleSelectAll(selected, array) {
|
this.selectedRows = array
|
},
|
getMaxNo() {
|
CommonUtils.doRequest2({
|
url: "/WEBSController/GetMaxBillNoAndID_Json",
|
data: {
|
"HBillType": this.HBillType
|
},
|
resFunction: (d) => {
|
let {
|
count,
|
data,
|
Message
|
} = d.data
|
if (count == 1) {
|
this.hform.HInterID = data[0].HInterID;
|
this.hform.HBillNo = data[0].HBillNo
|
} else {
|
|
uni.showModal({
|
title: "温馨提示",
|
showCancel: false,
|
content: Message
|
|
})
|
|
}
|
}
|
})
|
},
|
submitPreCheck() {
|
if (CommonUtils.isEmpty(this.hform.HInterID)) {
|
uni.showToast({
|
icon: 'none',
|
title: '单据内码获取失败,错误的单据内码!'
|
})
|
return false
|
}
|
if (CommonUtils.isEmpty(this.hform.HBillNo)) {
|
uni.showToast({
|
icon: 'none',
|
title: '单据号获取失败,错误的单据号!'
|
})
|
return false
|
}
|
if (this.listData.length < 1) {
|
uni.showToast({
|
icon: 'none',
|
title: '没有扫码信息,请先扫描条码,确认无误后再提交!'
|
})
|
return false
|
}
|
return true
|
},
|
cmdDelete() {
|
console.log('this.selectedRows: ', this.selectedRows);
|
if (this.selectedRows.length != 1) {
|
return uni.showToast({
|
icon: 'none',
|
title: '请选择一行记录,进行删除!'
|
})
|
}
|
uni.showModal({
|
title: '删除确认',
|
content: '确认要删除选中行所有扫码记录?删除后将不可恢复!',
|
success: () => {
|
if (confirm) {
|
CommonUtils.doRequest2({
|
url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
|
data: {
|
HInterID: this.hform.HInterID,
|
HBillType: this.HBillType,
|
HBarCode: this.selectedRows[0].HBarCode
|
},
|
resFunction: (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
CommonUtils.playSound(1)
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
//this.DisBillEntryList()
|
} else {
|
CommonUtils.playSound(0)
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
}
|
}
|
})
|
}
|
}
|
})
|
},
|
|
async cmdSubmit() {
|
let checkRes = this.submitPreCheck()
|
if (!checkRes) {
|
return
|
}
|
this.EnableSubmit = false
|
|
try {
|
debugger
|
this.hform.HInterID = 0
|
for (let i = 0; i < this.hform.HRoles.length; i++) {
|
this.hform.HSignRemark = this.hform.HSignRemark + this.hform.HRoles[i] + ","
|
}
|
let oMain = JSON.stringify(this.hform);
|
console.log("提交的json", oMain)
|
// this.HBillSub[0].HRepairCheckID = this.hform.HRepairCheckMainID
|
// this.HBillSub[0].HManagerID = this.hform.HManagerID
|
// this.HBillSub[0].HRepairCheckContent = this.hform.HRepairCheckMainContent
|
// let sSubStr = JSON.stringify(this.HBillSub);
|
let sMainSub = oMain + ';' + getUserInfo()['OrganizationID'] + ';' + getUserInfo()['Czymc'];
|
await CommonUtils.doRequest2({
|
url: "/Sc_EmployeeSignInNoteBillController/SaveBill_APP",
|
data: {
|
"msg": sMainSub
|
},
|
method: "POST",
|
resFunction: async (res) => {
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
// 等待数据获取完成后再显示表格
|
await this.getResultTableData();
|
} else {
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
this.EnableSubmit = true;
|
}
|
}
|
})
|
} catch (error) {
|
console.error('提交失败:', error);
|
this.EnableSubmit = true;
|
}
|
},
|
getResultTableData() {
|
CommonUtils.doRequest2({
|
url: '/Sc_EmployeeSignInNoteBillController/GetListPage',
|
data: {
|
"sWhere": 'and HEquipID=' + this.hform.HEquipID,
|
"user": 'admin'
|
},
|
resFunction: (res) => {
|
console.log('结果接口返回:', res);
|
let {
|
data,
|
count,
|
Message
|
} = res.data
|
if (count == 1) {
|
console.log('获取到结果数据:', data);
|
this.resultTableData = data;
|
this.showResultTable = true; // 显示结果表格
|
console.log('showResultTable 设置为:', this.showResultTable);
|
} else {
|
uni.showToast({
|
icon: 'none',
|
title: Message || '获取数据失败'
|
})
|
this.EnableSubmit = true;
|
}
|
}
|
})
|
},
|
// 新增方法
|
toAddNew() {
|
// 重置数据,准备新增
|
this.showResultTable = false;
|
this.EnableSubmit = true;
|
this.resultTableData = [];
|
this.HBarCode_Pack = '';
|
this.HBarCode = '';
|
this.listData = [];
|
this.getMaxNo(); // 重新获取新的单据号
|
this.HBarCodePackFocusRefresh(); // 重新聚焦
|
},
|
|
// 关闭结果表格
|
closeResultTable() {
|
this.showResultTable = false;
|
uni.navigateBack();
|
},
|
cmdExit() {
|
uni.navigateBack()
|
},
|
//打印模块函数
|
/**
|
* 打印函数
|
*/
|
async search() {
|
// #ifndef APP-PLUS
|
uni.showModal({
|
content: "不支持蓝牙打印功能,请切换移动设备...",
|
})
|
return
|
// #endif
|
if (this.$printer.isConnected() === false) {
|
this.$refs.labelPrinter.openPopup()
|
} else {
|
let printContent = []
|
let printInfoBuffer = []
|
let count = 0
|
uni.showLoading()
|
console.log('this.listData: ', this.printListData);
|
for (let listOne of this.printListData) {
|
let Message = await this.getPrintTemplate(listOne.HInterID, listOne.HItemID)
|
printContent.push(Message)
|
count++;
|
if (count == 10) {
|
printInfoBuffer.push(printContent.join("\r\n"))
|
count = 0
|
printContent = []
|
}
|
}
|
uni.hideLoading()
|
printInfoBuffer.push(printContent.join("\r\n"))
|
this.printInfo = JSON.stringify(printInfoBuffer)
|
printInfoBuffer = []
|
|
await this.$nextTick(() => {
|
this.$refs.labelPrinter.execPrint()
|
})
|
}
|
},
|
/** 获取打印模板
|
* @param {Object} HInterID
|
* @param {Object} HItemID
|
*/
|
async getPrintTemplate(HInterID, HItemID) {
|
console.log('data: ', {
|
HOrginationName: uni.getStorageSync("Organization"),
|
HBillSubType: this.HBillType,
|
HInterID: HInterID,
|
HItemID: HItemID,
|
})
|
return new Promise((resolve, reject) => {
|
CommonUtils.doRequest2({
|
url: "/Sc_BarCode/Get_BarCodePrintCode_CPCL",
|
data: {
|
HOrginationName: uni.getStorageSync("Organization"),
|
HBillSubType: this.HBillType,
|
HInterID: HInterID,
|
HItemID: HItemID,
|
},
|
resFunction: (res) => {
|
let {
|
Message,
|
count
|
} = res.data
|
if (count == 1) {
|
console.log('Message: ', Message);
|
resolve(Message)
|
} else {
|
uni.showToast({
|
icon: 'none',
|
title: Message
|
})
|
reject();
|
}
|
},
|
errFunction: (err) => {
|
reject();
|
},
|
|
})
|
})
|
},
|
/**
|
* 查找打印机
|
*/
|
async searchLabelPrinter() {
|
// 查找打印机
|
var that = this
|
// 使用openBluetoothAdapter 接口,免去主动申请权限的麻烦
|
uni.openBluetoothAdapter({
|
success: async (res) => {
|
await this.checkPermission();
|
console.log('start discovery devices');
|
this.discoveredDevices = [];
|
console.log(res)
|
bluetoothTool.discoveryNewDevice();
|
this.maskShow = true
|
},
|
fail: async (e) => {
|
console.error(e)
|
switch (e.code) {
|
case "10009":
|
this.showToast("此设备不支持设备搜索功能!");
|
break;
|
default:
|
console.error(e);
|
}
|
}
|
})
|
|
},
|
onDevice(device) {
|
console.log("监听寻找到新设备的事件---------------")
|
console.log(device)
|
if (typeof device === 'undefined') return;
|
if (typeof device.name === 'undefined') return;
|
console.log(device.name);
|
if (device.name === '') return;
|
if (device.name === null) return;
|
if (device.name.toUpperCase().endsWith('_BLE') ||
|
device.name.toUpperCase().endsWith('-LE') ||
|
device.name.toUpperCase().endsWith('-BLE')) return;
|
const isDuplicate = this.discoveredDevices.find(item => item.address === device.address);
|
if (isDuplicate) return;
|
this.discoveredDevices.push(device);
|
},
|
connectBT(device) {
|
const vm = this;
|
uni.showLoading({
|
title: '连接中'
|
});
|
bluetoothTool.connDevice(device.address, (result) => {
|
console.log(result)
|
uni.hideLoading()
|
if (result) {
|
// // console.log(result);
|
bluetoothTool.cancelDiscovery();
|
// console.log(vm.$printer)
|
vm.$printer.init(new FakeConnectedDevice());
|
vm.connectedDeviceId = device.address;
|
uni.showToast({
|
icon: 'none',
|
title: '连接成功'
|
})
|
this.maskShow = false
|
} else {
|
uni.showToast({
|
icon: 'none',
|
title: '连接失败'
|
})
|
}
|
});
|
},
|
stopSearchBT() {
|
console.log("停止搜寻附近的蓝牙外围设备---------------")
|
bluetoothTool.cancelDiscovery();
|
},
|
closeBluetooth() {
|
console.log("停止蓝牙连接")
|
const vm = this;
|
if (vm.connectedDeviceId != '') {
|
bluetoothTool.closeBtSocket();
|
vm.connectedDeviceId = "";
|
}
|
},
|
|
},
|
computed: {
|
listTableHeight: {
|
get() {
|
return this.bottomBtnTop - this.listTableTop - 10
|
}
|
}
|
},
|
async onReady() {
|
// #ifndef MP-WEIXIN
|
let query = uni.createSelectorQuery().in(this)
|
query.select("#bottom-btn")
|
.boundingClientRect((data) => {
|
if (data) {
|
this.bottomBtnTop = data.top
|
} else {
|
console.log("未找到#bottom-btn节点");
|
}
|
})
|
.exec();
|
query.select("#list-table")
|
.boundingClientRect((data) => {
|
if (data) {
|
this.listTableTop = data.top
|
} else {
|
console.log("未找到#list-table节点");
|
}
|
})
|
.exec();
|
// #endif
|
},
|
onLoad(e) {
|
// 1为 装箱 2为 组托
|
this.BarCodeType = e.BarCodeType || 1
|
this.OperationType = e.OperationType || 1
|
|
this.getHDeptList()
|
this.getHEmpList()
|
this.getHGroupList()
|
this.getHShiftsList()
|
this.getHSourceList()
|
this.getHProcList()
|
this.getRoleList()
|
if (this.OperationType == 1) {
|
this.getMaxNo()
|
} else if (this.OperationType == 2) {
|
// this.GetMeesageByBarCode_Pack(this.HBarCode_Pack)
|
//this.DisBillEntryList()
|
this.tabs = 0
|
}
|
|
|
// 光标默认聚焦在托条码上
|
this.HBarCodePackFocusRefresh()
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
input {
|
width: inherit;
|
padding: 8rpx 20rpx;
|
font-size: 30rpx;
|
}
|
|
.uni-mask {
|
position: fixed;
|
top: 0;
|
left: 0;
|
bottom: 0;
|
z-index: 3;
|
display: flex;
|
align-items: center;
|
width: 100%;
|
background: rgba(0, 0, 0, 0.6);
|
padding: 0 30rpx;
|
box-sizing: border-box;
|
}
|
|
.form {
|
display: flex;
|
flex-direction: column;
|
gap: 20rpx;
|
|
.form-base-info {
|
display: flex;
|
flex-direction: column;
|
gap: 10rpx;
|
box-sizing: border-box;
|
padding: 30rpx;
|
}
|
|
.bill-info {
|
display: flex;
|
flex-direction: column;
|
gap: 10rpx;
|
box-sizing: border-box;
|
padding: 16rpx 30rpx;
|
background-color: #fff;
|
}
|
|
.form-item {
|
display: flex;
|
align-items: center;
|
font-size: 30rpx;
|
padding: 6rpx 0;
|
|
.title {
|
width: 208rpx;
|
|
text {
|
color: red;
|
font-weight: bold;
|
}
|
}
|
|
.right {
|
flex: 1;
|
border-radius: 22rpx;
|
border: 1px solid #acacac;
|
}
|
|
.righton {
|
width: 450rpx;
|
border-radius: 22rpx;
|
border: 1px solid #e4e4e4;
|
background-color: #e4e4e4;
|
}
|
|
input {
|
// width: 100%;
|
padding: 8rpx 20rpx;
|
font-size: 30rpx;
|
}
|
|
|
|
textarea {
|
width: 98%;
|
padding: 8rpx 20rpx;
|
font-size: 30rpx;
|
}
|
|
}
|
}
|
|
.tabs {
|
width: 100%;
|
display: flex;
|
border-bottom: 1px solid #ddd;
|
margin: 20rpx 0;
|
|
view {
|
width: 25%;
|
font-size: 30rpx;
|
color: #555;
|
text-align: center;
|
padding: 16rpx 0;
|
}
|
|
.on {
|
color: #3a78ff;
|
font-weight: bold;
|
border-bottom: 3px solid #3a78ff;
|
}
|
}
|
|
.machine-info-container {
|
padding-left: 40rpx;
|
/* 向右移动40rpx */
|
padding-right: 40rpx;
|
padding-top: 20rpx;
|
|
.form-item {
|
display: flex;
|
align-items: center;
|
font-size: 30rpx;
|
padding: 10rpx 0;
|
|
.title {
|
width: 220rpx;
|
/* 稍微加宽标题宽度 */
|
min-width: 220rpx;
|
color: #333;
|
}
|
|
.righton {
|
flex: 1;
|
border-radius: 22rpx;
|
border: 1px solid #e4e4e4;
|
background-color: #f8f8f8;
|
|
input {
|
width: 100%;
|
padding: 12rpx 20rpx;
|
font-size: 30rpx;
|
color: #666;
|
}
|
}
|
}
|
}
|
|
.bottom-btn {
|
width: 100%;
|
box-sizing: border-box;
|
// height: 120rpx;
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
background-color: #fff;
|
box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
|
padding: 30rpx 40rpx 40rpx 40rpx;
|
display: flex;
|
flex-direction: row;
|
gap: 10rpx;
|
|
button {
|
border-radius: 50rpx;
|
width: 180rpx;
|
height: 66rpx;
|
line-height: 66rpx;
|
font-size: 28rpx;
|
}
|
|
.btn-a {
|
background-color: #3A78FF;
|
color: #fff;
|
}
|
|
.btn-b {
|
background-color: #41a863;
|
color: #fff;
|
}
|
|
.btn-c {
|
background-color: #acacac;
|
color: #fff;
|
// position: absolute;
|
// right: 120rpx;
|
}
|
|
.btn-d {
|
background-color: #ff8901;
|
color: #fff;
|
}
|
}
|
|
.result-modal {
|
position: fixed;
|
top: 0;
|
left: 0;
|
width: 100%;
|
height: 100%;
|
z-index: 2;
|
|
.modal-mask {
|
position: absolute;
|
top: 0;
|
left: 0;
|
width: 100%;
|
height: 100%;
|
background: rgba(0, 0, 0, 0.5);
|
}
|
|
.modal-content {
|
position: absolute;
|
top: 50%;
|
left: 50%;
|
transform: translate(-50%, -50%);
|
width: 90%;
|
max-width: 700rpx;
|
background: #fff;
|
border-radius: 20rpx;
|
overflow: hidden;
|
|
.modal-header {
|
padding: 30rpx;
|
border-bottom: 1px solid #eee;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
|
.modal-title {
|
font-size: 32rpx;
|
font-weight: bold;
|
}
|
}
|
|
.modal-body {
|
padding: 30rpx;
|
max-height: 60vh;
|
overflow-y: auto;
|
}
|
|
.modal-footer {
|
padding: 30rpx;
|
border-top: 1px solid #eee;
|
display: flex;
|
align-items: center;
|
}
|
}
|
}
|
</style>
|