| | |
| | | <template> |
| | | <view> |
| | | <view class="form"> |
| | | <view class="form-item"> |
| | | <view class="title">条码:</view> |
| | | <view class="right" style="width: 380rpx;"> |
| | | <input :focus="barCodeFocus" v-model="hform.HBarCode" placeholder="请扫描(或输入)条码" |
| | | @confirm="getCode(hform.HBarCode)" /> |
| | | </view> |
| | | <view class="icon-wrapper"> |
| | | <uni-icons type="scan" size="20" @click="toScanCode"></uni-icons> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">数量:</view> |
| | | <view class="right"> |
| | | <input type="number" v-model="hform.HQty" placeholder="请输入数量" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调出仓库:</view> |
| | | <view class="right"> |
| | | <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HSCWHName" |
| | | @input="HSCWHNameChange" @confirm="HWHNameOutScan"></uni-combox> |
| | | </view> |
| | | <view class="icon-wrapper"> |
| | | <uni-icons type="more" size="20" @click="showWarehouseList('HSCWHID')"></uni-icons> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调出仓位:</view> |
| | | <view class="right" v-show="HSCIsStockMgr"> |
| | | <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位" |
| | | v-model="hform.HOutStockPlaceName" @input="HOutStockPlaceNameChange" |
| | | @confirm="HStockPlaceOutNameScan"></uni-combox> |
| | | </view> |
| | | <view class="righton" v-show="!HSCIsStockMgr"> |
| | | <input v-model="hform.HOutStockPlaceName" :disabled="!HSCIsStockMgr" placeholder="不可操作" /> |
| | | </view> |
| | | <view class="icon-wrapper" v-show="HSCIsStockMgr"> |
| | | <uni-icons type="more" size="20" @click="showStockPlaceList('HOSpID')"></uni-icons> |
| | | </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 :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view> |
| | | <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">分步式调出条码</view> |
| | | </view> |
| | | |
| | | <view v-if="tabs == 0"> |
| | | <view class="form-item"> |
| | | <view class="title">源单类型:</view> |
| | | <view class="right" v-show="showHMainSourceBillType"> |
| | | <picker :range="arrayHMainSourceBillType" v-model="HMainSourceBillTypeIndex" |
| | | @change="HMainSourceBillTypeChange"> |
| | | <input name="HMainSourceBillType" disabled :value="HMainSourceBillType" placeholder="请选择源单类型" /> |
| | | <view class="picker-overlay"></view> |
| | | </picker> |
| | | </view> |
| | | <view class="righton" v-show="!showHMainSourceBillType"> |
| | | <input name="HMainSourceBillType" disabled :value="HMainSourceBillType" placeholder="请选择源单类型" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">源单单号:</view> |
| | | <view class="right" v-show="showHSourceBillNo"> |
| | | <input :focus="HSourcebillNoFocus" type="text" @confirm="onHSourceBillNoConfirmHandler" |
| | | name="HSourceBillNo" v-model="hform.HSourceBillNo" placeholder="请输入源单单号" /> |
| | | </view> |
| | | <view class="icon-wrapper" v-show="showHSourceBillNo" :disabled="hform.HMainSourceBillType === -1"> |
| | | <uni-icons type="search" size="20" @click="showBillList"></uni-icons> |
| | | </view> |
| | | <view class="icon-wrapper" v-show="showHSourceBillNo"> |
| | | <uni-icons type="right" size="20" @click="onHSourceBillNoConfirmHandler"></uni-icons> |
| | | </view> |
| | | <view class="righton" v-show="!showHSourceBillNo"> |
| | | <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo" placeholder="请输入源单单号" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调拨类型:</view> |
| | | <view class="righton"> |
| | | <input name="HStockStyle" disabled v-model="hform.HStockStyle" placeholder="请选择调拨类型" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">日期:</view> |
| | | <view class="right"> |
| | | <picker mode="date" v-model="hform.HDate" @change="HDateChange"> |
| | | <input disabled :value="hform.HDate" placeholder="请选择日期" /> |
| | | <view class="picker-overlay"></view> |
| | | </picker> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">制单人:</view> |
| | | <view class="righton"> |
| | | <input name="HMaker" disabled v-model="hform.HMaker" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">单据号:</view> |
| | | <view class="righton"> |
| | | <input name="HBillNo" disabled v-model="hform.HBillNo" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">单据ID:</view> |
| | | <view class="righton"> |
| | | <input name="HInterID" disabled v-model="hform.HInterID" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view v-if="tabs == 1"> |
| | | <view class="form-item"> |
| | | <view class="title">调入仓库:</view> |
| | | <view class="right"> |
| | | <uni-combox :candidates="arrayHWHInName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName" |
| | | @input="HWHInNameChange" @confirm="HWHNameInScan"></uni-combox> |
| | | </view> |
| | | <view class="icon-wrapper"> |
| | | <uni-icons type="more" size="20" @click="showWarehouseList('HWHID')"></uni-icons> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调入仓位:</view> |
| | | <view class="right" v-show="HIsStockMgr"> |
| | | <uni-combox :candidates="arrayHStockPlaceInNameComputed" placeholder="请输入(或扫描)仓位" |
| | | v-model="hform.HStockPlaceName" @input="HStockPlaceInNameChange" |
| | | @confirm="HStockPlaceNameInScan"></uni-combox> |
| | | </view> |
| | | <view class="righton" v-show="!HIsStockMgr"> |
| | | <input v-model="hform.HStockPlaceName" :disabled="!HIsStockMgr" placeholder="不可操作" /> |
| | | </view> |
| | | <view class="icon-wrapper" v-show="HIsStockMgr"> |
| | | <uni-icons type="more" size="20" @click="showStockPlaceList('HSpID')"></uni-icons> |
| | | </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 class="icon-wrapper"> |
| | | <uni-icons type="more" size="20" @click="showDepartmentList"></uni-icons> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调出组织:</view> |
| | | <view class="righton"> |
| | | <input name="HStockOutOrgName" disabled v-model="hform.HStockOutOrgName" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调入组织:</view> |
| | | <view class="righton"> |
| | | <input name="HStockInOrgName" disabled v-model="hform.HStockInOrgName" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view v-if="tabs == 2"> |
| | | <view class="list" v-for="(item,index) in Materlist" :key="index"> |
| | | <uni-card :title="item.物料名称" :extra="item.物料代码" style="margin: 10px;" @tap="showMaterialDetail(item)"> |
| | | <view class="card-detail"> |
| | | <view class="detail"> |
| | | <text>源单单号:</text>{{item.源单单号}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>源单数量:</text>{{item.源单数量}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>数量:</text>{{item.数量}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>条码个数:</text>{{item.条码个数}} |
| | | </view> |
| | | <view class="detail" v-if="item.规格型号"> |
| | | <text>规格型号:</text>{{item.规格型号}} |
| | | </view> |
| | | <view class="detail" v-if="item.辅助属性"> |
| | | <text>辅助属性:</text>{{item.辅助属性}} |
| | | </view> |
| | | </view> |
| | | </uni-card> |
| | | </view> |
| | | <view class="over" v-if="Materlist.length == 0">暂无数据</view> |
| | | </view> |
| | | |
| | | <view v-if="tabs == 4"> |
| | | <view class="list" v-for="(item,index) in FIFOlist" :key="index"> |
| | | <uni-card :title="item.HMaterName" :extra="item.HMaterNumber" style="margin: 10px;" |
| | | @tap="showSourceBarCodeDetail(item)"> |
| | | <view class="card-detail"> |
| | | <view class="detail"> |
| | | <text>数量:</text>{{item.HQty}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>源单数量:</text>{{item.HQtyMust}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>条码编号:</text>{{item.HBarCode}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>物料代码:</text>{{item.HMaterNumber}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>物料名称:</text>{{item.HMaterName}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>规格型号:</text>{{item.HMaterModel}} |
| | | </view> |
| | | <view class="detail"> |
| | | <text>HMaterID:</text>{{item.HMaterID}} |
| | | </view> |
| | | <view class="detail" v-if="item.HBatchNo"> |
| | | <text>批号:</text>{{item.HBatchNo}} |
| | | </view> |
| | | <view class="detail" v-if="item.HAuxPropName"> |
| | | <text>辅助属性:</text>{{item.HAuxPropName}} |
| | | </view> |
| | | <view class="detail" v-if="item.HSourceBillNo"> |
| | | <text>源单单号:</text>{{item.HSourceBillNo}} |
| | | </view> |
| | | </view> |
| | | </uni-card> |
| | | </view> |
| | | <view class="over" v-if="FIFOlist.length == 0">暂无数据</view> |
| | | </view> |
| | | |
| | | <view v-if="tabs == 3"> |
| | | <view class="form-item"> |
| | | <view class="title">条码:</view> |
| | | <view class="righton"> |
| | | <input name="HBarCode_B" disabled v-model="hform.HBarCode_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">物料:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HMaterName_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">规格:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HMaterModel_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">批次:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HBatchNo_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">单位:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HUnitName_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">数量:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HQty_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">容量:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HTMQty_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调入仓库:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HWHName_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调入仓位:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HSPName_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调出仓库:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HSCWHName_B" /> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="title">调出仓位:</view> |
| | | <view class="righton"> |
| | | <input disabled v-model="hform.HSCSPName_B" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="bottom-btn"> |
| | | <button class="btn-a" size="mini" @tap="submit">提交</button> |
| | | <view style="flex: 1;"></view> |
| | | <button class="btn-a" size="mini" @tap="addNew">新增</button> |
| | | <button class="btn-c" size="mini" @tap="goBack">退出</button> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 弹窗组件 --> |
| | | <BillListPopupVue ref="billList" :HBillType="hform.HBillType" :HSourceBillType="hform.HMainSourceBillType || 1250" |
| | | :HStockOrgID="hform.HStockOrgID"></BillListPopupVue> |
| | | <!-- <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue> --> |
| | | <!-- <MaterialEditPopup ref="materialEdit" :materialData="selectedMaterial" @on-save="onMaterialSave"></MaterialEditPopup> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | CommonUtils |
| | | } from '../../utils/common'; |
| | | import getDateTime from '@/utils/getdateTime.js'; |
| | | import { |
| | | getUserInfo |
| | | } from "@/utils/auth.js"; |
| | | import BillListPopupVue from '../../components/BillListPopup/BillListPopup.vue'; |
| | | |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | pageTitleName: '分步式调入单', |
| | | userInfo: getUserInfo(), |
| | | serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API', |
| | | HModName: 'Kf_MoveStockStepInBill_PDA', |
| | | ModRightName: 'CE_MoveStockStepIn', |
| | | OperationType: 1, |
| | | HInterID_Temp: '', |
| | | |
| | | HSCIsStockMgr: false, |
| | | HIsStockMgr: false, |
| | | showHMainSourceBillType: true, |
| | | showHSourceBillNo: true, |
| | | barCodeFocus: false, |
| | | HSourcebillNoFocus: false, |
| | | |
| | | tabs: 0, |
| | | HMainSourceBillTypeIndex: 0, |
| | | HMainSourceBillType: '分步式调出单', |
| | | arrayHMainSourceBillType: ['分步式调出单', '手工录入'], |
| | | arrayHMainSourceBillValue: [1250, -1], |
| | | |
| | | btnType: 0, //0新增,1修改,2审核,3反审核 |
| | | |
| | | arrayHWHName: [], //调出仓库 |
| | | HWHNameList: [], |
| | | arrayHStockPlaceName: [], //调出仓位 |
| | | HStockPlaceNameList: [], |
| | | arrayHWHInName: [], // 调入仓库 |
| | | HWHInNameList: [], |
| | | arrayHStockPlaceInName: [], //调入仓位 |
| | | HStockPlaceInNameList: [], |
| | | arrayHDeptName: [], //部门 |
| | | HDeptNameList: [], |
| | | arrayHOrgName: [], // 组织 |
| | | arrayHOrgValue: [], // 组织对应ID |
| | | |
| | | Materlist: [], |
| | | FIFOlist: [], |
| | | selectedMaterial: {}, |
| | | |
| | | hform: { |
| | | HBillType: 1251, |
| | | HBillerID: uni.getStorageSync('HBillerID'), |
| | | HRedBlueFlag: false, |
| | | |
| | | HStockOutOrgName: uni.getStorageSync('Organization'), |
| | | HStockInOrgName: uni.getStorageSync('Organization'), |
| | | HStockInOrgID: uni.getStorageSync('OrganizationID'), |
| | | HStockOutOrgID: uni.getStorageSync('OrganizationID'), |
| | | |
| | | HBarCode: '', |
| | | HQty: '', |
| | | HSCWHName: getUserInfo().HWHName, |
| | | HSCWHID: getUserInfo().HWhID, |
| | | HWHName: getUserInfo().HWHName, |
| | | HWHID: getUserInfo().HWhID, |
| | | |
| | | HStockStyle: '组织内调拨', |
| | | HOutStockPlaceName: getUserInfo().HSPName, |
| | | HOutStockPlaceID: getUserInfo().HSPID, |
| | | HStockPlaceName: getUserInfo().HSPName, |
| | | HStockPlaceID: getUserInfo().HSPID, |
| | | HStockOrgID: uni.getStorageSync('OrganizationID'), |
| | | HMainSourceBillType: 1250, |
| | | HSourceBillNo: '', |
| | | |
| | | HDate: getDateTime.dateTimeStr('y-m-d'), |
| | | HMaker: uni.getStorageSync('HUserName'), |
| | | HBillNo: '', |
| | | HInterID: '', |
| | | |
| | | HDeptName: getUserInfo().HDept, |
| | | HDeptID: getUserInfo().HDeptID, |
| | | |
| | | // 条码信息 |
| | | HBarCode_B: '', |
| | | HMaterName_B: '', |
| | | HMaterModel_B: '', |
| | | HBatchNo_B: '', |
| | | HUnitName_B: '', |
| | | HQty_B: '', |
| | | HTMQty_B: '', |
| | | HWHName_B: '', |
| | | HSPName_B: '', |
| | | HSCWHName_B: '', |
| | | HSCSPName_B: '', |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | BillListPopupVue, |
| | | }, |
| | | |
| | | async onLoad(e) { |
| | | console.log('页面参数:', e); |
| | | await this.getOrganization() |
| | | this.OperationType = e.OperationType || 1; |
| | | |
| | | if (e.HInterID) { |
| | | this.HInterID_Temp = e.HInterID |
| | | this.RoadBillMain(e.HInterID) |
| | | this.barCodeFocus = true |
| | | } else { |
| | | this.HSourcebillNoFocus = true |
| | | this.getNewData() |
| | | } |
| | | |
| | | this.getHBaseList() |
| | | this.getHDeptList() |
| | | this.checkModRight() |
| | | |
| | | uni.$on('BillSelectComplete', (e) => { |
| | | console.log("接收到的源单: ", e.HBillNo) |
| | | this.getSourceBarCodeData(e.HBillNo) |
| | | this.$refs.billList.exit() |
| | | }) |
| | | |
| | | uni.$on('WarehouseSelectComplete', (data) => { |
| | | this.handleWarehouseSelect(data) |
| | | }) |
| | | |
| | | uni.$on('StockPlaceSelectComplete', (data) => { |
| | | this.handleStockPlaceSelect(data) |
| | | }) |
| | | |
| | | uni.$on('DepartmentSelectComplete', (data) => { |
| | | this.handleDepartmentSelect(data) |
| | | }) |
| | | }, |
| | | onUnload() { |
| | | uni.$off('BillSelectComplete') |
| | | uni.$off('WarehouseSelectComplete') |
| | | uni.$off('StockPlaceSelectComplete') |
| | | uni.$off('DepartmentSelectComplete') |
| | | }, |
| | | computed: { |
| | | arrayHStockPlaceNameComputed: { |
| | | get() { |
| | | // 动态计算对应调出仓库的仓位 |
| | | return this.HStockPlaceNameList |
| | | .filter(e => e['所属仓库'] == this.hform.HSCWHName) |
| | | .map(e => e['仓位名称']) |
| | | } |
| | | }, |
| | | arrayHStockPlaceInNameComputed: { |
| | | get() { |
| | | // 动态计算对应调入仓库的仓位 |
| | | return this.HStockPlaceInNameList |
| | | .filter(e => e['所属仓库'] == this.hform.HWHName) |
| | | .map(e => e['仓位名称']) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // 用户模块权限判断 |
| | | async checkModRight() { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/WEBSController/CheckModRight_Json', |
| | | data: { |
| | | "ModRightName": this.ModRightName, |
| | | "HUserName": this.hform.HMaker |
| | | } |
| | | }) |
| | | if (res.data.count != 1) { |
| | | uni.showModal({ |
| | | title: '温馨提示', |
| | | content: res.data.Message, |
| | | showCancel: false, |
| | | success: () => { |
| | | uni.navigateBack() |
| | | } |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | console.error('权限检查失败:', error) |
| | | } |
| | | }, |
| | | |
| | | // 获取组织数据 |
| | | async getOrganization() { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/Web/GetOrganizations' |
| | | }) |
| | | if (res.data.count == 1) { |
| | | this.arrayHOrgName = [] |
| | | this.arrayHOrgValue = [] |
| | | Array.from(res.data.data).forEach(e => { |
| | | this.arrayHOrgName.push(e.Name) |
| | | this.arrayHOrgValue.push(e.ID) |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | console.error('获取组织数据失败:', error) |
| | | } |
| | | }, |
| | | |
| | | // 扫描条码 |
| | | toScanCode() { |
| | | uni.scanCode({ |
| | | onlyFromCamera: true, |
| | | success: (res) => { |
| | | console.log('条码内容:' + res.result); |
| | | this.hform.HBarCode = res.result |
| | | this.getCode(this.hform.HBarCode) |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 处理条码 |
| | | async getCode(HBarCode) { |
| | | if (!HBarCode) { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: '条码为空,请扫描条码!', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | const HDeleteFlag = HBarCode.substring(0, 1); |
| | | const sBarCode = HBarCode.slice(1); |
| | | |
| | | if (HDeleteFlag == "*") { |
| | | // 删除条码 |
| | | await this.deleteBarCode(sBarCode) |
| | | } else { |
| | | // 处理条码 |
| | | await this.processBarCode(HBarCode) |
| | | } |
| | | }, |
| | | |
| | | // 删除条码 |
| | | async deleteBarCode(sBarCode) { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json', |
| | | data: { |
| | | HInterID: this.hform.HInterID, |
| | | HBillType: this.hform.HBillType, |
| | | HBarCode: sBarCode |
| | | } |
| | | }) |
| | | |
| | | if (res.data.count == 1) { |
| | | this.playSound(1) |
| | | this.hform.HQty = '' |
| | | this.DisBillEntryList() |
| | | } else { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: res.data.Message, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: '删除条码失败', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | this.refreshBarCodeState() |
| | | }, |
| | | |
| | | // 处理条码 |
| | | async processBarCode(sBarCode) { |
| | | // 仓库、仓位文本框为空时,清空对应ID |
| | | if (!this.hform.HWHName) this.hform.HWHID = 0 |
| | | if (!this.hform.HStockPlaceName) this.hform.HStockPlaceID = 0 |
| | | if (!this.hform.HSCWHName) this.hform.HSCWHID = 0 |
| | | if (!this.hform.HOutStockPlaceName) this.hform.HOutStockPlaceID = 0 |
| | | |
| | | const sHQty = this.hform.HQty || 0 |
| | | const HSourceFlag = !!this.hform.HSourceBillNo |
| | | |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/WEBSController/get_BarCode_MoveStock_New_Json', |
| | | data: { |
| | | sBarCode: sBarCode, |
| | | HInterID: this.hform.HInterID, |
| | | HBillType: this.hform.HBillType, |
| | | HBillNo: this.hform.HBillNo, |
| | | HMaker: this.hform.HMaker, |
| | | HWhID: this.hform.HWHID, |
| | | HSPID: this.hform.HStockPlaceID, |
| | | HSCWHID: this.hform.HSCWHID, |
| | | HSCSPID: this.hform.HOutStockPlaceID, |
| | | HQty: sHQty, |
| | | SourceFlag: HSourceFlag, |
| | | HSourceBillNo: this.hform.HSourceBillNo, |
| | | HSourceBillType: this.hform.HMainSourceBillType, |
| | | HStockInOrgID: this.hform.HStockInOrgID, |
| | | HStockOutOrgID: this.hform.HStockOutOrgID, |
| | | HScanStyle: "", |
| | | HCustom1: "", |
| | | HCustom2: "" |
| | | } |
| | | }) |
| | | |
| | | if (res.data.count == 1) { |
| | | this.playSound(1) |
| | | await this.handleBarCodeResult(res.data.data) |
| | | this.DisBillEntryList() |
| | | this.hform.HQty = '' |
| | | } else { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: res.data.Message, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: '处理条码失败', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | this.refreshBarCodeState() |
| | | }, |
| | | |
| | | // 处理条码扫描结果 |
| | | async handleBarCodeResult(data) { |
| | | switch (data.hBarTypeField) { |
| | | case '仓库条码': |
| | | this.handleWarehouseBarCode(data) |
| | | break |
| | | case '仓位条码': |
| | | this.handleStockPlaceBarCode(data) |
| | | break |
| | | case '部门条码': |
| | | this.handleDepartmentBarCode(data) |
| | | break |
| | | case '源单条码': |
| | | await this.handleSourceBillBarCode(data) |
| | | break |
| | | default: |
| | | await this.handleMaterialBarCode(data) |
| | | } |
| | | }, |
| | | |
| | | // 处理仓库条码 |
| | | handleWarehouseBarCode(data) { |
| | | this.hform.HSCWHName = data.hWhNameField |
| | | this.hform.HSCWHID = data.hWhIDField |
| | | this.hform.HOutStockPlaceName = data.hSPNameField |
| | | this.hform.HOutStockPlaceID = data.hSPIDField |
| | | this.HSCIsStockMgr = data.hSPFlagField != 0 |
| | | }, |
| | | |
| | | // 处理仓位条码 |
| | | handleStockPlaceBarCode(data) { |
| | | this.hform.HOutStockPlaceName = data.hSPNameField |
| | | this.hform.HOutStockPlaceID = data.hSPIDField |
| | | this.hform.HSCWHName = data.hWhNameField |
| | | this.hform.HSCWHID = data.hWhIDField |
| | | }, |
| | | |
| | | // 处理部门条码 |
| | | handleDepartmentBarCode(data) { |
| | | this.hform.HDeptName = data.hDeptNameField |
| | | this.hform.HDeptID = data.hDeptIDField |
| | | this.tabs = 1 |
| | | }, |
| | | |
| | | // 处理源单条码 |
| | | async handleSourceBillBarCode(data) { |
| | | await this.setSourceBillInfo(data) |
| | | this.tabs = 3 |
| | | }, |
| | | |
| | | // 处理物料条码 |
| | | async handleMaterialBarCode(data) { |
| | | if (!this.hform.HSourceBillNo) { |
| | | await this.setSourceBillInfo(data) |
| | | } |
| | | this.tabs = 2 |
| | | }, |
| | | |
| | | // 设置源单信息 |
| | | async setSourceBillInfo(data) { |
| | | if (data.hDeptIDField != 0) { |
| | | this.hform.HDeptID = data.hDeptIDField |
| | | this.hform.HDeptName = data.hDeptNameField |
| | | } |
| | | |
| | | this.hform.HSourceBillNo = data.hSourceBillNoField |
| | | this.hform.HMainSourceBillType = data.hSourceBillTypeField |
| | | |
| | | // 更新源单类型显示 |
| | | const index = this.arrayHMainSourceBillValue.findIndex(e => e == data.hSourceBillTypeField) |
| | | if (index !== -1) { |
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[index] |
| | | this.HMainSourceBillTypeIndex = index |
| | | this.showHMainSourceBillType = false |
| | | } |
| | | |
| | | if (data.hMulSourceFlagField == 0) { |
| | | this.showHSourceBillNo = false |
| | | } |
| | | |
| | | this.hform.HStockStyle = data.hStockStyleField |
| | | this.hform.HStockInOrgID = data.hStockInOrgIDField |
| | | this.hform.HStockOutOrgID = data.hStockOutOrgIDField |
| | | |
| | | // 更新组织显示 |
| | | const inOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.hStockInOrgIDField) |
| | | const outOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.hStockOutOrgIDField) |
| | | if (inOrgIndex !== -1) { |
| | | this.hform.HStockInOrgName = this.arrayHOrgName[inOrgIndex] |
| | | } |
| | | if (outOrgIndex !== -1) { |
| | | this.hform.HStockOutOrgName = this.arrayHOrgName[outOrgIndex] |
| | | } |
| | | |
| | | // 如果组织发生变化,清空仓库仓位 |
| | | if (this.hform.HStockInOrgID != uni.getStorageSync('OrganizationID')) { |
| | | this.clearInWarehouseData() |
| | | } |
| | | if (this.hform.HStockOutOrgID != uni.getStorageSync('OrganizationID')) { |
| | | this.clearOutWarehouseData() |
| | | } |
| | | }, |
| | | |
| | | // 清空调入仓库数据 |
| | | clearInWarehouseData() { |
| | | this.hform.HWHID = 0 |
| | | this.hform.HWHName = '' |
| | | this.hform.HStockPlaceID = 0 |
| | | this.hform.HStockPlaceName = '' |
| | | this.HIsStockMgr = true |
| | | }, |
| | | |
| | | // 清空调出仓库数据 |
| | | clearOutWarehouseData() { |
| | | this.hform.HSCWHID = 0 |
| | | this.hform.HSCWHName = '' |
| | | this.hform.HOutStockPlaceID = 0 |
| | | this.hform.HOutStockPlaceName = '' |
| | | this.HSCIsStockMgr = true |
| | | }, |
| | | |
| | | // 刷新条码输入状态 |
| | | async refreshBarCodeState() { |
| | | this.barCodeFocus = false |
| | | await this.$nextTick(() => { |
| | | this.hform.HBarCode = "" |
| | | this.barCodeFocus = true |
| | | }) |
| | | }, |
| | | |
| | | // 播放提示音 |
| | | playSound(type) { |
| | | const innerAudioContext = uni.createInnerAudioContext(); |
| | | innerAudioContext.src = type == 1 ? '/static/success.wav' : '/static/jingbao.wav'; |
| | | innerAudioContext.play(); |
| | | }, |
| | | |
| | | // 扫描仓库码 |
| | | async HWHNameOutScan(e) { |
| | | let index = this.HWHNameList.findIndex(elem => elem['条码编号'] == e) |
| | | if (index == -1) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '扫描仓库条码对应的仓库不存在...' |
| | | }) |
| | | } else { |
| | | this.HSCWHNameChange(this.HWHNameList[index]['仓库名称']) |
| | | } |
| | | }, |
| | | |
| | | // 扫描仓位码 |
| | | async HStockPlaceOutNameScan(e) { |
| | | let index = this.HStockPlaceNameList.findIndex(elem => elem['条码编号'] == e) |
| | | if (index == -1) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '扫描仓位条码对应的仓位不存在...' |
| | | }) |
| | | } else { |
| | | this.HOutStockPlaceNameChange(this.HStockPlaceNameList[index]['仓位名称']) |
| | | } |
| | | }, |
| | | |
| | | // 扫描调入仓库码 |
| | | async HWHNameInScan(e) { |
| | | let index = this.HWHInNameList.findIndex(elem => elem['条码编号'] == e) |
| | | if (index == -1) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '扫描仓库条码对应的仓库不存在...' |
| | | }) |
| | | } else { |
| | | this.HWHInNameChange(this.HWHInNameList[index]['仓库名称']) |
| | | } |
| | | }, |
| | | |
| | | // 扫描调入仓位码 |
| | | async HStockPlaceNameInScan(e) { |
| | | let index = this.HStockPlaceInNameList.findIndex(elem => elem['条码编号'] == e) |
| | | if (index == -1) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '扫描仓位条码对应的仓位不存在...' |
| | | }) |
| | | } else { |
| | | this.HStockPlaceInNameChange(this.HStockPlaceInNameList[index]['仓位名称']) |
| | | } |
| | | }, |
| | | |
| | | // 源单类型变更 |
| | | HMainSourceBillTypeChange(e) { |
| | | this.HMainSourceBillTypeIndex = e.detail.value |
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[this.HMainSourceBillTypeIndex] |
| | | this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[this.HMainSourceBillTypeIndex] |
| | | }, |
| | | |
| | | // 源单单号确认 |
| | | onHSourceBillNoConfirmHandler() { |
| | | if (this.hform.HMainSourceBillType == -1) { |
| | | this.playSound(1) |
| | | return |
| | | } |
| | | this.getSourceBarCodeData(this.hform.HSourceBillNo) |
| | | }, |
| | | |
| | | // 获取源单数据 |
| | | async getSourceBarCodeData(HSourceBillNo) { |
| | | try { |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/WEBSController/get_SourceBarCode_MoveStockStepIn_Json', |
| | | data: { |
| | | HInterID: this.hform.HInterID, |
| | | HBillNo: this.hform.HBillNo, |
| | | HBillType: this.hform.HBillType, |
| | | HSourceBillNo: HSourceBillNo, |
| | | HSourceBillType: this.hform.HMainSourceBillType, |
| | | HMaker: this.hform.HMaker, |
| | | HStockInOrgID: this.hform.HStockInOrgID, |
| | | HStockOutOrgID: this.hform.HStockOutOrgID |
| | | } |
| | | }) |
| | | |
| | | if (res.data.count == 1) { |
| | | this.playSound(1) |
| | | await this.setSourceBillInfo(res.data.data) |
| | | this.tabs = 2 |
| | | this.barCodeFocus = true |
| | | this.DisBillEntryList() |
| | | } else { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: res.data.Message, |
| | | icon: 'none' |
| | | }) |
| | | this.refreshHSourceBillState() |
| | | } |
| | | } catch (error) { |
| | | this.playSound(0) |
| | | uni.showToast({ |
| | | title: '获取源单数据失败', |
| | | icon: 'none' |
| | | }) |
| | | this.refreshHSourceBillState() |
| | | } |
| | | }, |
| | | |
| | | // 刷新源单输入状态 |
| | | async refreshHSourceBillState() { |
| | | this.HSourcebillNoFocus = false |
| | | await this.$nextTick(() => { |
| | | this.hform.HSourceBillNo = "" |
| | | this.HSourcebillNoFocus = true |
| | | }) |
| | | }, |
| | | |
| | | // 显示源单列表 |
| | | showBillList() { |
| | | this.$refs.billList.showPopup() |
| | | }, |
| | | |
| | | // 日期变更 |
| | | HDateChange(e) { |
| | | this.hform.HDate = e.detail.value |
| | | }, |
| | | |
| | | // 调出仓库变更 |
| | | HSCWHNameChange(e) { |
| | | const warehouse = this.HWHNameList.find(item => item.仓库名称 == e) |
| | | if (warehouse) { |
| | | this.hform.HSCWHName = warehouse.仓库名称 |
| | | this.hform.HSCWHID = warehouse.HItemID |
| | | this.HSCIsStockMgr = warehouse['启用仓位'] == 'Y' |
| | | if (!this.HSCIsStockMgr) { |
| | | this.hform.HOutStockPlaceName = '' |
| | | this.hform.HOutStockPlaceID = '' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 调出仓位变更 |
| | | HOutStockPlaceNameChange(e) { |
| | | const stockPlace = this.HStockPlaceNameList.find(item => item.仓位名称 == e) |
| | | if (stockPlace) { |
| | | this.hform.HOutStockPlaceName = stockPlace.仓位名称 |
| | | this.hform.HOutStockPlaceID = stockPlace.HMainID |
| | | } |
| | | }, |
| | | |
| | | // 调入仓库变更 |
| | | HWHInNameChange(e) { |
| | | const warehouse = this.HWHInNameList.find(item => item.仓库名称 == e) |
| | | if (warehouse) { |
| | | this.hform.HWHName = warehouse.仓库名称 |
| | | this.hform.HWHID = warehouse.HItemID |
| | | this.HIsStockMgr = warehouse['启用仓位'] == 'Y' |
| | | if (!this.HIsStockMgr) { |
| | | this.hform.HStockPlaceName = '' |
| | | this.hform.HStockPlaceID = '' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 调入仓位变更 |
| | | HStockPlaceInNameChange(e) { |
| | | const stockPlace = this.HStockPlaceInNameList.find(item => item.仓位名称 == e) |
| | | if (stockPlace) { |
| | | this.hform.HStockPlaceName = stockPlace.仓位名称 |
| | | this.hform.HStockPlaceID = stockPlace.HMainID |
| | | } |
| | | }, |
| | | |
| | | // 部门变更 |
| | | HDeptNameChange(e) { |
| | | const dept = this.HDeptNameList.find(item => item.部门名称 == e) |
| | | if (dept) { |
| | | this.hform.HDeptName = dept.部门名称 |
| | | this.hform.HDeptID = dept.HItemID |
| | | } |
| | | }, |
| | | |
| | | // 获取基础数据 |
| | | getHBaseList() { |
| | | // 获取仓库列表 |
| | | CommonUtils.doRequest2({ |
| | | url: '/Gy_Warehouse/list', |
| | | data: { |
| | | sWhere: "", |
| | | user: uni.getStorageSync('HUserName'), |
| | | Organization: uni.getStorageSync('Organization') |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | this.HWHNameList = res.data.data |
| | | this.HWHInNameList = res.data.data |
| | | this.arrayHWHName = res.data.data.map(item => item.仓库名称) |
| | | this.arrayHWHInName = res.data.data.map(item => item.仓库名称) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | // 获取仓位列表 |
| | | CommonUtils.doRequest2({ |
| | | url: '/Gy_StockPlace/list', |
| | | data: { |
| | | sWhere: "", |
| | | user: uni.getStorageSync('HUserName'), |
| | | Organization: uni.getStorageSync('Organization') |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | this.HStockPlaceNameList = res.data.data |
| | | this.HStockPlaceInNameList = res.data.data |
| | | this.arrayHStockPlaceName = res.data.data.map(item => item.仓位名称) |
| | | this.arrayHStockPlaceInName = res.data.data.map(item => item.仓位名称) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 获取部门列表 |
| | | getHDeptList() { |
| | | CommonUtils.doRequest2({ |
| | | url: '/Gy_Department/list', |
| | | data: { |
| | | sWhere: "", |
| | | user: uni.getStorageSync('HUserName'), |
| | | Organization: uni.getStorageSync('Organization') |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | this.HDeptNameList = res.data.data |
| | | this.arrayHDeptName = res.data.data.map(item => item.部门名称) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 显示仓库列表 |
| | | showWarehouseList(type) { |
| | | const HOrgID = type === 'HSCWHID' ? this.hform.HStockOutOrgID : this.hform.HStockInOrgID |
| | | uni.navigateTo({ |
| | | url: `/pages/Baseset/WarehouseList?Type=${type}&HOrgID=${HOrgID}` |
| | | }) |
| | | }, |
| | | |
| | | // 显示仓位列表 |
| | | showStockPlaceList(type) { |
| | | const HWhID = type === 'HOSpID' ? this.hform.HSCWHID : this.hform.HWHID |
| | | const HOrgID = type === 'HOSpID' ? this.hform.HStockOutOrgID : this.hform.HStockInOrgID |
| | | uni.navigateTo({ |
| | | url: `/pages/Baseset/StockPlaceList?HWhID=${HWhID}&Type=${type}&HOrgID=${HOrgID}` |
| | | }) |
| | | }, |
| | | |
| | | // 显示部门列表 |
| | | showDepartmentList() { |
| | | uni.navigateTo({ |
| | | url: `/pages/Baseset/DepartmentList?HStockOrgID=${this.hform.HStockOrgID}&Type=HDept1` |
| | | }) |
| | | }, |
| | | |
| | | // 处理仓库选择结果 |
| | | handleWarehouseSelect(data) { |
| | | if (data.type === 'HSCWHID') { |
| | | this.hform.HSCWHName = data.data[0].HName |
| | | this.hform.HSCWHID = data.data[0].HItemID |
| | | this.hform.HOutStockPlaceName = data.data[0].HSPName |
| | | this.hform.HOutStockPlaceID = data.data[0].HSPID |
| | | this.HSCIsStockMgr = data.data[0].HSPFlag != 0 |
| | | } else if (data.type === 'HWHID') { |
| | | this.hform.HWHName = data.data[0].HName |
| | | this.hform.HWHID = data.data[0].HItemID |
| | | this.hform.HStockPlaceName = data.data[0].HSPName |
| | | this.hform.HStockPlaceID = data.data[0].HSPID |
| | | this.HIsStockMgr = data.data[0].HSPFlag != 0 |
| | | } |
| | | }, |
| | | |
| | | // 处理仓位选择结果 |
| | | handleStockPlaceSelect(data) { |
| | | if (data.type === 'HOSpID') { |
| | | this.hform.HOutStockPlaceName = data.data[0].HName |
| | | this.hform.HOutStockPlaceID = data.data[0].HItemID |
| | | this.hform.HSCWHName = data.data[0].HWhName |
| | | this.hform.HSCWHID = data.data[0].HWHID |
| | | } else if (data.type === 'HSpID') { |
| | | this.hform.HStockPlaceName = data.data[0].HName |
| | | this.hform.HStockPlaceID = data.data[0].HItemID |
| | | this.hform.HWHName = data.data[0].HWhName |
| | | this.hform.HWHID = data.data[0].HWHID |
| | | } |
| | | }, |
| | | |
| | | // 处理部门选择结果 |
| | | handleDepartmentSelect(data) { |
| | | this.hform.HDeptName = data.data[0].HName |
| | | this.hform.HDeptID = data.data[0].HItemID |
| | | }, |
| | | |
| | | // 显示物料明细 |
| | | showMaterialDetail(item) { |
| | | this.selectedMaterial = item |
| | | // this.$refs.materialEdit.show() |
| | | }, |
| | | |
| | | // 显示源单条码明细 |
| | | showSourceBarCodeDetail(item) { |
| | | // 可以在这里实现源单条码明细的显示逻辑 |
| | | console.log('源单条码明细:', item) |
| | | }, |
| | | |
| | | // 物料保存回调 |
| | | onMaterialSave() { |
| | | this.DisBillEntryList() |
| | | }, |
| | | |
| | | // 显示物料清单 |
| | | DisBillEntryList() { |
| | | CommonUtils.doRequest2({ |
| | | url: '/WEBSController/GetBillEntryTmpList_Json', |
| | | data: { |
| | | HInterID: this.hform.HInterID, |
| | | HBillNo: this.hform.HBillNo, |
| | | HBillType: this.hform.HBillType, |
| | | HStockOrgID: this.hform.HStockOutOrgID |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | const data = res.data.data |
| | | this.Materlist = data.Materlist |
| | | if (data.ICMOReportlist[0].HSourceInterID !=0 ) { |
| | | this.FIFOlist = data.ICMOReportlist |
| | | } |
| | | |
| | | // 更新条码信息 |
| | | if (data.BarCodeDetailslist && data.BarCodeDetailslist[0].HBarCode) { |
| | | const barcode = data.BarCodeDetailslist[0] |
| | | this.hform.HBarCode_B = barcode.HBarCode |
| | | this.hform.HMaterName_B = barcode.HMaterName |
| | | this.hform.HMaterModel_B = barcode.HMaterModel |
| | | this.hform.HBatchNo_B = barcode.HBatchNo |
| | | this.hform.HUnitName_B = barcode.HUnitName |
| | | this.hform.HQty_B = barcode.HQty |
| | | this.hform.HTMQty_B = barcode.HTMQty |
| | | this.hform.HWHName_B = barcode.HWHName |
| | | this.hform.HSPName_B = barcode.HSPName |
| | | this.hform.HSCWHName_B = barcode.HSCWHName |
| | | this.hform.HSCSPName_B = barcode.HSCSPName |
| | | } else { |
| | | this.clearBarcodeInfo() |
| | | } |
| | | } else { |
| | | this.Materlist = [] |
| | | this.FIFOlist = [] |
| | | this.clearBarcodeInfo() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 清空条码信息 |
| | | clearBarcodeInfo() { |
| | | this.hform.HBarCode_B = '' |
| | | this.hform.HMaterName_B = '' |
| | | this.hform.HMaterModel_B = '' |
| | | this.hform.HBatchNo_B = '' |
| | | this.hform.HUnitName_B = '' |
| | | this.hform.HQty_B = '' |
| | | this.hform.HTMQty_B = '' |
| | | this.hform.HWHName_B = '' |
| | | this.hform.HSPName_B = '' |
| | | this.hform.HSCWHName_B = '' |
| | | this.hform.HSCSPName_B = '' |
| | | }, |
| | | |
| | | // 获取新单据数据 |
| | | getNewData() { |
| | | CommonUtils.doRequest2({ |
| | | url: '/WEBSController/GetMaxBillNoAndID_Json', |
| | | data: { |
| | | HBillType: this.hform.HBillType |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | this.hform.HInterID = res.data.data[0].HInterID |
| | | this.hform.HBillNo = res.data.data[0].HBillNo |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 加载已有单据 |
| | | RoadBillMain(HInterID) { |
| | | CommonUtils.doRequest2({ |
| | | url: '/WEBSController/GetSourceBill_Temp_Json', |
| | | data: { |
| | | HInterID: HInterID, |
| | | HBillType: this.hform.HBillType |
| | | }, |
| | | resFunction: (res) => { |
| | | if (res.data.count == 1) { |
| | | const data = res.data.data[0] |
| | | this.hform.HInterID = data.HInterID |
| | | this.hform.HBillNo = data.HBillNo |
| | | this.hform.HMainSourceBillType = data.HSourceBillType |
| | | this.hform.HSourceBillNo = data.HSourceBillNo |
| | | |
| | | // 设置源单类型 |
| | | const index = this.arrayHMainSourceBillValue.findIndex(e => e == data.HSourceBillType) |
| | | if (index !== -1) { |
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[index] |
| | | this.HMainSourceBillTypeIndex = index |
| | | this.showHMainSourceBillType = false |
| | | } |
| | | |
| | | if (data.HMulSourceBill == 0) { |
| | | this.showHSourceBillNo = false |
| | | } |
| | | |
| | | if (data.HDeptID != 0) { |
| | | this.hform.HDeptID = data.HDeptID |
| | | this.hform.HDeptName = data.HDeptName |
| | | } |
| | | |
| | | this.hform.HStockStyle = data.HStockStyle |
| | | this.hform.HStockInOrgID = data.HStockInOrgID |
| | | this.hform.HStockOutOrgID = data.HStockOutOrgID |
| | | |
| | | // 设置组织显示 |
| | | const inOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.HStockInOrgID) |
| | | const outOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.HStockOutOrgID) |
| | | if (inOrgIndex !== -1) { |
| | | this.hform.HStockInOrgName = this.arrayHOrgName[inOrgIndex] |
| | | } |
| | | if (outOrgIndex !== -1) { |
| | | this.hform.HStockOutOrgName = this.arrayHOrgName[outOrgIndex] |
| | | } |
| | | |
| | | this.tabs = 2 |
| | | this.DisBillEntryList() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 新增单据 |
| | | addNew() { |
| | | uni.redirectTo({ |
| | | url: '/pages/fenbushidiaoru/form?OperationType=1' |
| | | }) |
| | | }, |
| | | |
| | | // 提交单据 |
| | | async submit() { |
| | | // 表单验证 |
| | | if (!this.hform.HInterID) { |
| | | uni.showToast({ |
| | | title: '单据内码获取失败,错误的单据内码!', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | if (!this.hform.HBillNo) { |
| | | uni.showToast({ |
| | | title: '单据号获取失败,错误的单据号!', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | if (!this.Materlist || this.Materlist.length == 0) { |
| | | uni.showToast({ |
| | | title: '没有扫码信息,请先扫描条码,确认无误后再提交!', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | const hasMaterial = this.Materlist.some(item => item.数量 > 0) |
| | | if (!hasMaterial) { |
| | | uni.showToast({ |
| | | title: '没有扫描物料条码,请先扫描物料条码,确认无误后再提交!', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | // 清空空值的ID |
| | | if (!this.hform.HWHName) this.hform.HWHID = 0 |
| | | if (!this.hform.HStockPlaceName) this.hform.HStockPlaceID = 0 |
| | | if (!this.hform.HSCWHName) this.hform.HSCWHID = 0 |
| | | if (!this.hform.HOutStockPlaceName) this.hform.HOutStockPlaceID = 0 |
| | | if (!this.hform.HDeptName) this.hform.HDeptID = 0 |
| | | |
| | | try { |
| | | const sMainStr = JSON.stringify(this.hform) |
| | | let res = await CommonUtils.doRequest2Sync({ |
| | | url: '/WEBSController/set_SaveMoveStockStepInBill_Json', |
| | | method: 'POST', |
| | | data: { |
| | | oMain: sMainStr |
| | | } |
| | | }) |
| | | |
| | | if (res.data.count == 1) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: res.data.Message + '。是否继续新增?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.addNew() |
| | | } else { |
| | | if (this.OperationType == 2) { |
| | | uni.navigateBack() |
| | | } else { |
| | | uni.switchTab({ |
| | | url: '/pages/index/index' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.data.Message, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | uni.showToast({ |
| | | title: '提交失败:' + error, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 返回 |
| | | goBack() { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '确认要退出当前页面吗?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | if (this.OperationType == 2) { |
| | | uni.navigateBack() |
| | | } else { |
| | | uni.switchTab({ |
| | | url: '/pages/index/index' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .form { |
| | | width: 668rpx; |
| | | margin: 20rpx auto; |
| | | padding-bottom: 240rpx; |
| | | } |
| | | |
| | | .tabs { |
| | | width: 100%; |
| | | display: flex; |
| | | border-bottom: 1px solid #ddd; |
| | | margin: 20rpx 0; |
| | | |
| | | view { |
| | | width: 20%; |
| | | font-size: 26rpx; |
| | | color: #555; |
| | | text-align: center; |
| | | padding: 16rpx 0; |
| | | } |
| | | |
| | | .on { |
| | | color: #3a78ff; |
| | | font-weight: bold; |
| | | border-bottom: 3px solid #3a78ff; |
| | | } |
| | | } |
| | | |
| | | .form-item { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 30rpx; |
| | | padding: 6rpx 0; |
| | | gap: 12rpx; |
| | | |
| | | .title { |
| | | width: 208rpx; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .right { |
| | | flex: 1; |
| | | border-radius: 22rpx; |
| | | border: 1px solid #acacac; |
| | | position: relative; |
| | | display: flex; |
| | | } |
| | | |
| | | .righton { |
| | | flex: 1; |
| | | border-radius: 22rpx; |
| | | border: 1px solid #e4e4e4; |
| | | background-color: #e4e4e4; |
| | | } |
| | | |
| | | input { |
| | | width: 100%; |
| | | padding: 8rpx 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .icon-wrapper { |
| | | background-color: #3A78FF; |
| | | border-radius: 100%; |
| | | width: 52rpx; |
| | | height: 52rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-shrink: 0; |
| | | |
| | | .uni-icons { |
| | | color: #fff !important; |
| | | } |
| | | } |
| | | |
| | | .icon-wrapper[disabled] { |
| | | background-color: rgba(228, 228, 228, 1); |
| | | pointer-events: none; |
| | | touch-action: none; |
| | | } |
| | | } |
| | | |
| | | .bottom-btn { |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | 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-c { |
| | | background-color: #acacac; |
| | | color: #fff; |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | width: 100%; |
| | | |
| | | .card-detail { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | line-height: 120%; |
| | | |
| | | .detail { |
| | | font-size: 26rpx; |
| | | margin-bottom: 12rpx; |
| | | color: #555; |
| | | margin-right: 20rpx; |
| | | |
| | | text { |
| | | color: #999; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .over { |
| | | text-align: center; |
| | | color: #999; |
| | | padding: 40rpx; |
| | | } |
| | | <template>
|
| | | <view>
|
| | | <view class="form">
|
| | | <view class="form-item">
|
| | | <view class="title">条码:</view>
|
| | | <view class="right" style="width: 380rpx;">
|
| | | <input :focus="barCodeFocus" v-model="hform.HBarCode" placeholder="请扫描(或输入)条码"
|
| | | @confirm="getCode(hform.HBarCode)" />
|
| | | </view>
|
| | | <view class="icon-wrapper">
|
| | | <uni-icons type="scan" size="20" @click="toScanCode"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">数量:</view>
|
| | | <view class="right">
|
| | | <input type="number" v-model="hform.HQty" placeholder="请输入数量" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调出仓库:</view>
|
| | | <view class="right">
|
| | | <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HSCWHName"
|
| | | @input="HSCWHNameChange" @confirm="HWHNameOutScan"></uni-combox>
|
| | | </view>
|
| | | <view class="icon-wrapper">
|
| | | <uni-icons type="more" size="20" @click="showWarehouseList('HSCWHID')"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调出仓位:</view>
|
| | | <view class="right" v-show="HSCIsStockMgr">
|
| | | <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位"
|
| | | v-model="hform.HOutStockPlaceName" @input="HOutStockPlaceNameChange"
|
| | | @confirm="HStockPlaceOutNameScan"></uni-combox>
|
| | | </view>
|
| | | <view class="righton" v-show="!HSCIsStockMgr">
|
| | | <input v-model="hform.HOutStockPlaceName" :disabled="!HSCIsStockMgr" placeholder="不可操作" />
|
| | | </view>
|
| | | <view class="icon-wrapper" v-show="HSCIsStockMgr">
|
| | | <uni-icons type="more" size="20" @click="showStockPlaceList('HOSpID')"></uni-icons>
|
| | | </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 :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
|
| | | <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">分步式调出条码</view>
|
| | | </view>
|
| | |
|
| | | <view v-if="tabs == 0">
|
| | | <view class="form-item">
|
| | | <view class="title">源单类型:</view>
|
| | | <view class="right" v-show="showHMainSourceBillType">
|
| | | <picker :range="arrayHMainSourceBillType" v-model="HMainSourceBillTypeIndex"
|
| | | @change="HMainSourceBillTypeChange">
|
| | | <input name="HMainSourceBillType" disabled :value="HMainSourceBillType" placeholder="请选择源单类型" />
|
| | | <view class="picker-overlay"></view>
|
| | | </picker>
|
| | | </view>
|
| | | <view class="righton" v-show="!showHMainSourceBillType">
|
| | | <input name="HMainSourceBillType" disabled :value="HMainSourceBillType" placeholder="请选择源单类型" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">源单单号:</view>
|
| | | <view class="right" v-show="showHSourceBillNo">
|
| | | <input :focus="HSourcebillNoFocus" type="text" @confirm="onHSourceBillNoConfirmHandler"
|
| | | name="HSourceBillNo" v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
|
| | | </view>
|
| | | <view class="icon-wrapper" v-show="showHSourceBillNo" :disabled="hform.HMainSourceBillType === -1">
|
| | | <uni-icons type="search" size="20" @click="showBillList"></uni-icons>
|
| | | </view>
|
| | | <view class="icon-wrapper" v-show="showHSourceBillNo">
|
| | | <uni-icons type="right" size="20" @click="onHSourceBillNoConfirmHandler"></uni-icons>
|
| | | </view>
|
| | | <view class="righton" v-show="!showHSourceBillNo">
|
| | | <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调拨类型:</view>
|
| | | <view class="righton">
|
| | | <input name="HStockStyle" disabled v-model="hform.HStockStyle" placeholder="请选择调拨类型" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">日期:</view>
|
| | | <view class="right">
|
| | | <picker mode="date" v-model="hform.HDate" @change="HDateChange">
|
| | | <input disabled :value="hform.HDate" placeholder="请选择日期" />
|
| | | <view class="picker-overlay"></view>
|
| | | </picker>
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">制单人:</view>
|
| | | <view class="righton">
|
| | | <input name="HMaker" disabled v-model="hform.HMaker" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">单据号:</view>
|
| | | <view class="righton">
|
| | | <input name="HBillNo" disabled v-model="hform.HBillNo" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">单据ID:</view>
|
| | | <view class="righton">
|
| | | <input name="HInterID" disabled v-model="hform.HInterID" />
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view v-if="tabs == 1">
|
| | | <view class="form-item">
|
| | | <view class="title">调入仓库:</view>
|
| | | <view class="right">
|
| | | <uni-combox :candidates="arrayHWHInName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
|
| | | @input="HWHInNameChange" @confirm="HWHNameInScan"></uni-combox>
|
| | | </view>
|
| | | <view class="icon-wrapper">
|
| | | <uni-icons type="more" size="20" @click="showWarehouseList('HWHID')"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调入仓位:</view>
|
| | | <view class="right" v-show="HIsStockMgr">
|
| | | <uni-combox :candidates="arrayHStockPlaceInNameComputed" placeholder="请输入(或扫描)仓位"
|
| | | v-model="hform.HStockPlaceName" @input="HStockPlaceInNameChange"
|
| | | @confirm="HStockPlaceNameInScan"></uni-combox>
|
| | | </view>
|
| | | <view class="righton" v-show="!HIsStockMgr">
|
| | | <input v-model="hform.HStockPlaceName" :disabled="!HIsStockMgr" placeholder="不可操作" />
|
| | | </view>
|
| | | <view class="icon-wrapper" v-show="HIsStockMgr">
|
| | | <uni-icons type="more" size="20" @click="showStockPlaceList('HSpID')"></uni-icons>
|
| | | </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 class="icon-wrapper">
|
| | | <uni-icons type="more" size="20" @click="showDepartmentList"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调出组织:</view>
|
| | | <view class="righton">
|
| | | <input name="HStockOutOrgName" disabled v-model="hform.HStockOutOrgName" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调入组织:</view>
|
| | | <view class="righton">
|
| | | <input name="HStockInOrgName" disabled v-model="hform.HStockInOrgName" />
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view v-if="tabs == 2">
|
| | | <view class="list" v-for="(item,index) in Materlist" :key="index">
|
| | | <uni-card :title="item.物料名称" :extra="item.物料代码" style="margin: 10px;" @tap="showMaterialDetail(item)">
|
| | | <view class="card-detail">
|
| | | <view class="detail">
|
| | | <text>源单单号:</text>{{item.源单单号}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>源单数量:</text>{{item.源单数量}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>数量:</text>{{item.数量}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>条码个数:</text>{{item.条码个数}}
|
| | | </view>
|
| | | <view class="detail" v-if="item.规格型号">
|
| | | <text>规格型号:</text>{{item.规格型号}}
|
| | | </view>
|
| | | <view class="detail" v-if="item.辅助属性">
|
| | | <text>辅助属性:</text>{{item.辅助属性}}
|
| | | </view>
|
| | | </view>
|
| | | </uni-card>
|
| | | </view>
|
| | | <view class="over" v-if="Materlist.length == 0">暂无数据</view>
|
| | | </view>
|
| | |
|
| | | <view v-if="tabs == 4">
|
| | | <view class="list" v-for="(item,index) in FIFOlist" :key="index">
|
| | | <uni-card :title="item.HMaterName" :extra="item.HMaterNumber" style="margin: 10px;"
|
| | | @tap="showSourceBarCodeDetail(item)">
|
| | | <view class="card-detail">
|
| | | <view class="detail">
|
| | | <text>数量:</text>{{item.HQty}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>源单数量:</text>{{item.HQtyMust}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>条码编号:</text>{{item.HBarCode}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>物料代码:</text>{{item.HMaterNumber}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>物料名称:</text>{{item.HMaterName}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>规格型号:</text>{{item.HMaterModel}}
|
| | | </view>
|
| | | <view class="detail">
|
| | | <text>HMaterID:</text>{{item.HMaterID}}
|
| | | </view>
|
| | | <view class="detail" v-if="item.HBatchNo">
|
| | | <text>批号:</text>{{item.HBatchNo}}
|
| | | </view>
|
| | | <view class="detail" v-if="item.HAuxPropName">
|
| | | <text>辅助属性:</text>{{item.HAuxPropName}}
|
| | | </view>
|
| | | <view class="detail" v-if="item.HSourceBillNo">
|
| | | <text>源单单号:</text>{{item.HSourceBillNo}}
|
| | | </view>
|
| | | </view>
|
| | | </uni-card>
|
| | | </view>
|
| | | <view class="over" v-if="FIFOlist.length == 0">暂无数据</view>
|
| | | </view>
|
| | |
|
| | | <view v-if="tabs == 3">
|
| | | <view class="form-item">
|
| | | <view class="title">条码:</view>
|
| | | <view class="righton">
|
| | | <input name="HBarCode_B" disabled v-model="hform.HBarCode_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">物料:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HMaterName_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">规格:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HMaterModel_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">批次:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HBatchNo_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">单位:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HUnitName_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">数量:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HQty_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">容量:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HTMQty_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调入仓库:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HWHName_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调入仓位:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HSPName_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调出仓库:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HSCWHName_B" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item">
|
| | | <view class="title">调出仓位:</view>
|
| | | <view class="righton">
|
| | | <input disabled v-model="hform.HSCSPName_B" />
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="bottom-btn">
|
| | | <button class="btn-a" size="mini" @tap="submit">提交</button>
|
| | | <view style="flex: 1;"></view>
|
| | | <button class="btn-a" size="mini" @tap="addNew">新增</button>
|
| | | <button class="btn-c" size="mini" @tap="goBack">退出</button>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <!-- 弹窗组件 -->
|
| | | <BillListPopupVue ref="billList" :HBillType="hform.HBillType" :HSourceBillType="hform.HMainSourceBillType || 1250"
|
| | | :HStockOrgID="hform.HStockOrgID"></BillListPopupVue>
|
| | | <!-- <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue> -->
|
| | | <!-- <MaterialEditPopup ref="materialEdit" :materialData="selectedMaterial" @on-save="onMaterialSave"></MaterialEditPopup> -->
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | CommonUtils
|
| | | } from '../../utils/common';
|
| | | import getDateTime from '@/utils/getdateTime.js';
|
| | | import {
|
| | | getUserInfo
|
| | | } from "@/utils/auth.js";
|
| | | import BillListPopupVue from '../../components/BillListPopup/BillListPopup.vue';
|
| | | |
| | |
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | pageTitleName: '分步式调入单',
|
| | | userInfo: getUserInfo(),
|
| | | serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
|
| | | HModName: 'Kf_MoveStockStepInBill_PDA',
|
| | | ModRightName: 'CE_MoveStockStepIn',
|
| | | OperationType: 1,
|
| | | HInterID_Temp: '',
|
| | |
|
| | | HSCIsStockMgr: false,
|
| | | HIsStockMgr: false,
|
| | | showHMainSourceBillType: true,
|
| | | showHSourceBillNo: true,
|
| | | barCodeFocus: false,
|
| | | HSourcebillNoFocus: false,
|
| | |
|
| | | tabs: 0,
|
| | | HMainSourceBillTypeIndex: 0,
|
| | | HMainSourceBillType: '分步式调出单',
|
| | | arrayHMainSourceBillType: ['分步式调出单', '手工录入'],
|
| | | arrayHMainSourceBillValue: [1250, -1],
|
| | |
|
| | | btnType: 0, //0新增,1修改,2审核,3反审核
|
| | |
|
| | | arrayHWHName: [], //调出仓库
|
| | | HWHNameList: [],
|
| | | arrayHStockPlaceName: [], //调出仓位
|
| | | HStockPlaceNameList: [],
|
| | | arrayHWHInName: [], // 调入仓库
|
| | | HWHInNameList: [],
|
| | | arrayHStockPlaceInName: [], //调入仓位
|
| | | HStockPlaceInNameList: [],
|
| | | arrayHDeptName: [], //部门
|
| | | HDeptNameList: [],
|
| | | arrayHOrgName: [], // 组织
|
| | | arrayHOrgValue: [], // 组织对应ID
|
| | |
|
| | | Materlist: [],
|
| | | FIFOlist: [],
|
| | | selectedMaterial: {},
|
| | |
|
| | | hform: {
|
| | | HBillType: 1251,
|
| | | HBillerID: uni.getStorageSync('HBillerID'),
|
| | | HRedBlueFlag: false,
|
| | |
|
| | | HStockOutOrgName: uni.getStorageSync('Organization'),
|
| | | HStockInOrgName: uni.getStorageSync('Organization'),
|
| | | HStockInOrgID: uni.getStorageSync('OrganizationID'),
|
| | | HStockOutOrgID: uni.getStorageSync('OrganizationID'),
|
| | |
|
| | | HBarCode: '',
|
| | | HQty: '',
|
| | | HSCWHName: getUserInfo().HWHName,
|
| | | HSCWHID: getUserInfo().HWhID,
|
| | | HWHName: getUserInfo().HWHName,
|
| | | HWHID: getUserInfo().HWhID,
|
| | |
|
| | | HStockStyle: '组织内调拨',
|
| | | HOutStockPlaceName: getUserInfo().HSPName,
|
| | | HOutStockPlaceID: getUserInfo().HSPID,
|
| | | HStockPlaceName: getUserInfo().HSPName,
|
| | | HStockPlaceID: getUserInfo().HSPID,
|
| | | HStockOrgID: uni.getStorageSync('OrganizationID'),
|
| | | HMainSourceBillType: 1250,
|
| | | HSourceBillNo: '',
|
| | |
|
| | | HDate: getDateTime.dateTimeStr('y-m-d'),
|
| | | HMaker: uni.getStorageSync('HUserName'),
|
| | | HBillNo: '',
|
| | | HInterID: '',
|
| | |
|
| | | HDeptName: getUserInfo().HDept,
|
| | | HDeptID: getUserInfo().HDeptID,
|
| | |
|
| | | // 条码信息
|
| | | HBarCode_B: '',
|
| | | HMaterName_B: '',
|
| | | HMaterModel_B: '',
|
| | | HBatchNo_B: '',
|
| | | HUnitName_B: '',
|
| | | HQty_B: '',
|
| | | HTMQty_B: '',
|
| | | HWHName_B: '',
|
| | | HSPName_B: '',
|
| | | HSCWHName_B: '',
|
| | | HSCSPName_B: '',
|
| | | }
|
| | | }
|
| | | },
|
| | | components: {
|
| | | BillListPopupVue,
|
| | | },
|
| | | |
| | | async onLoad(e) {
|
| | | console.log('页面参数:', e);
|
| | | await this.getOrganization()
|
| | | this.OperationType = e.OperationType || 1;
|
| | | |
| | | if (e.HInterID) {
|
| | | this.HInterID_Temp = e.HInterID
|
| | | this.RoadBillMain(e.HInterID)
|
| | | this.barCodeFocus = true
|
| | | } else {
|
| | | this.HSourcebillNoFocus = true
|
| | | this.getNewData()
|
| | | }
|
| | |
|
| | | this.getHBaseList()
|
| | | this.getHDeptList()
|
| | | this.checkModRight()
|
| | | |
| | | uni.$on('BillSelectComplete', (e) => {
|
| | | console.log("接收到的源单: ", e.HBillNo)
|
| | | this.getSourceBarCodeData(e.HBillNo)
|
| | | this.$refs.billList.exit()
|
| | | })
|
| | |
|
| | | uni.$on('WarehouseSelectComplete', (data) => {
|
| | | this.handleWarehouseSelect(data)
|
| | | })
|
| | |
|
| | | uni.$on('StockPlaceSelectComplete', (data) => {
|
| | | this.handleStockPlaceSelect(data)
|
| | | })
|
| | |
|
| | | uni.$on('DepartmentSelectComplete', (data) => {
|
| | | this.handleDepartmentSelect(data)
|
| | | })
|
| | | },
|
| | | onUnload() {
|
| | | uni.$off('BillSelectComplete')
|
| | | uni.$off('WarehouseSelectComplete')
|
| | | uni.$off('StockPlaceSelectComplete')
|
| | | uni.$off('DepartmentSelectComplete')
|
| | | },
|
| | | computed: {
|
| | | arrayHStockPlaceNameComputed: {
|
| | | get() {
|
| | | // 动态计算对应调出仓库的仓位
|
| | | return this.HStockPlaceNameList
|
| | | .filter(e => e['所属仓库'] == this.hform.HSCWHName)
|
| | | .map(e => e['仓位名称'])
|
| | | }
|
| | | },
|
| | | arrayHStockPlaceInNameComputed: {
|
| | | get() {
|
| | | // 动态计算对应调入仓库的仓位
|
| | | return this.HStockPlaceInNameList
|
| | | .filter(e => e['所属仓库'] == this.hform.HWHName)
|
| | | .map(e => e['仓位名称'])
|
| | | }
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | // 用户模块权限判断
|
| | | async checkModRight() {
|
| | | try {
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/WEBSController/CheckModRight_Json',
|
| | | data: {
|
| | | "ModRightName": this.ModRightName,
|
| | | "HUserName": this.hform.HMaker
|
| | | }
|
| | | })
|
| | | if (res.data.count != 1) {
|
| | | uni.showModal({
|
| | | title: '温馨提示',
|
| | | content: res.data.Message,
|
| | | showCancel: false,
|
| | | success: () => {
|
| | | uni.navigateBack()
|
| | | }
|
| | | })
|
| | | }
|
| | | } catch (error) {
|
| | | console.error('权限检查失败:', error)
|
| | | }
|
| | | },
|
| | |
|
| | | // 获取组织数据
|
| | | async getOrganization() {
|
| | | try {
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/Web/GetOrganizations'
|
| | | })
|
| | | if (res.data.count == 1) {
|
| | | this.arrayHOrgName = []
|
| | | this.arrayHOrgValue = []
|
| | | Array.from(res.data.data).forEach(e => {
|
| | | this.arrayHOrgName.push(e.Name)
|
| | | this.arrayHOrgValue.push(e.ID)
|
| | | })
|
| | | }
|
| | | } catch (error) {
|
| | | console.error('获取组织数据失败:', error)
|
| | | }
|
| | | },
|
| | |
|
| | | // 扫描条码
|
| | | toScanCode() {
|
| | | uni.scanCode({
|
| | | onlyFromCamera: true,
|
| | | success: (res) => {
|
| | | console.log('条码内容:' + res.result);
|
| | | this.hform.HBarCode = res.result
|
| | | this.getCode(this.hform.HBarCode)
|
| | | }
|
| | | });
|
| | | },
|
| | |
|
| | | // 处理条码
|
| | | async getCode(HBarCode) {
|
| | | if (!HBarCode) {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: '条码为空,请扫描条码!',
|
| | | icon: 'none'
|
| | | })
|
| | | return
|
| | | }
|
| | |
|
| | | const HDeleteFlag = HBarCode.substring(0, 1);
|
| | | const sBarCode = HBarCode.slice(1);
|
| | |
|
| | | if (HDeleteFlag == "*") {
|
| | | // 删除条码
|
| | | await this.deleteBarCode(sBarCode)
|
| | | } else {
|
| | | // 处理条码
|
| | | await this.processBarCode(HBarCode)
|
| | | }
|
| | | },
|
| | |
|
| | | // 删除条码
|
| | | async deleteBarCode(sBarCode) {
|
| | | try {
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json',
|
| | | data: {
|
| | | HInterID: this.hform.HInterID,
|
| | | HBillType: this.hform.HBillType,
|
| | | HBarCode: sBarCode
|
| | | }
|
| | | })
|
| | | |
| | | if (res.data.count == 1) {
|
| | | this.playSound(1)
|
| | | this.hform.HQty = ''
|
| | | this.DisBillEntryList()
|
| | | } else {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: res.data.Message,
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | } catch (error) {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: '删除条码失败',
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | this.refreshBarCodeState()
|
| | | },
|
| | |
|
| | | // 处理条码
|
| | | async processBarCode(sBarCode) {
|
| | | // 仓库、仓位文本框为空时,清空对应ID
|
| | | if (!this.hform.HWHName) this.hform.HWHID = 0
|
| | | if (!this.hform.HStockPlaceName) this.hform.HStockPlaceID = 0
|
| | | if (!this.hform.HSCWHName) this.hform.HSCWHID = 0
|
| | | if (!this.hform.HOutStockPlaceName) this.hform.HOutStockPlaceID = 0
|
| | |
|
| | | const sHQty = this.hform.HQty || 0
|
| | | const HSourceFlag = !!this.hform.HSourceBillNo
|
| | |
|
| | | try {
|
| | | console.log('开始处理条码:', sBarCode, sHQty, HSourceFlag, this.hform);
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/WEBSController/get_BarCode_MoveStock_New_Json',
|
| | | data: {
|
| | | sBarCode: sBarCode,
|
| | | HInterID: this.hform.HInterID,
|
| | | HBillType: this.hform.HBillType,
|
| | | HBillNo: this.hform.HBillNo,
|
| | | HMaker: this.hform.HMaker,
|
| | | HWhID: this.hform.HWHID,
|
| | | HSPID: this.hform.HStockPlaceID,
|
| | | HSCWHID: this.hform.HSCWHID,
|
| | | HSCSPID: this.hform.HOutStockPlaceID,
|
| | | HQty: sHQty,
|
| | | SourceFlag: HSourceFlag,
|
| | | HSourceBillNo: this.hform.HSourceBillNo,
|
| | | HSourceBillType: this.hform.HMainSourceBillType,
|
| | | HStockInOrgID: this.hform.HStockInOrgID,
|
| | | HStockOutOrgID: this.hform.HStockOutOrgID,
|
| | | HScanStyle: "",
|
| | | HCustom1: "",
|
| | | HCustom2: ""
|
| | | }
|
| | | })
|
| | | |
| | | if (res.data.count == 1) {
|
| | | this.playSound(1)
|
| | | await this.handleBarCodeResult(res.data.data)
|
| | | this.DisBillEntryList()
|
| | | this.hform.HQty = ''
|
| | | } else {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: res.data.Message,
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | } catch (error) {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: '处理条码失败',
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | this.refreshBarCodeState()
|
| | | },
|
| | |
|
| | | // 处理条码扫描结果
|
| | | async handleBarCodeResult(data) {
|
| | | switch (data.hBarTypeField) {
|
| | | case '仓库条码':
|
| | | this.handleWarehouseBarCode(data)
|
| | | break
|
| | | case '仓位条码':
|
| | | this.handleStockPlaceBarCode(data)
|
| | | break
|
| | | case '部门条码':
|
| | | this.handleDepartmentBarCode(data)
|
| | | break
|
| | | case '源单条码':
|
| | | await this.handleSourceBillBarCode(data)
|
| | | break
|
| | | default:
|
| | | await this.handleMaterialBarCode(data)
|
| | | }
|
| | | },
|
| | |
|
| | | // 处理仓库条码
|
| | | handleWarehouseBarCode(data) {
|
| | | this.hform.HSCWHName = data.hWhNameField
|
| | | this.hform.HSCWHID = data.hWhIDField
|
| | | this.hform.HOutStockPlaceName = data.hSPNameField
|
| | | this.hform.HOutStockPlaceID = data.hSPIDField
|
| | | this.HSCIsStockMgr = data.hSPFlagField != 0
|
| | | },
|
| | |
|
| | | // 处理仓位条码
|
| | | handleStockPlaceBarCode(data) {
|
| | | this.hform.HOutStockPlaceName = data.hSPNameField
|
| | | this.hform.HOutStockPlaceID = data.hSPIDField
|
| | | this.hform.HSCWHName = data.hWhNameField
|
| | | this.hform.HSCWHID = data.hWhIDField
|
| | | },
|
| | |
|
| | | // 处理部门条码
|
| | | handleDepartmentBarCode(data) {
|
| | | this.hform.HDeptName = data.hDeptNameField
|
| | | this.hform.HDeptID = data.hDeptIDField
|
| | | this.tabs = 1
|
| | | },
|
| | |
|
| | | // 处理源单条码
|
| | | async handleSourceBillBarCode(data) {
|
| | | await this.setSourceBillInfo(data)
|
| | | this.tabs = 3
|
| | | },
|
| | |
|
| | | // 处理物料条码
|
| | | async handleMaterialBarCode(data) {
|
| | | if (!this.hform.HSourceBillNo) {
|
| | | await this.setSourceBillInfo(data)
|
| | | }
|
| | | this.tabs = 2
|
| | | },
|
| | |
|
| | | // 设置源单信息
|
| | | async setSourceBillInfo(data) {
|
| | | if (data.hDeptIDField != 0) {
|
| | | this.hform.HDeptID = data.hDeptIDField
|
| | | this.hform.HDeptName = data.hDeptNameField
|
| | | }
|
| | |
|
| | | this.hform.HSourceBillNo = data.hSourceBillNoField
|
| | | this.hform.HMainSourceBillType = data.hSourceBillTypeField
|
| | |
|
| | | // 更新源单类型显示
|
| | | const index = this.arrayHMainSourceBillValue.findIndex(e => e == data.hSourceBillTypeField)
|
| | | if (index !== -1) {
|
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[index]
|
| | | this.HMainSourceBillTypeIndex = index
|
| | | this.showHMainSourceBillType = false
|
| | | }
|
| | |
|
| | | if (data.hMulSourceFlagField == 0) {
|
| | | this.showHSourceBillNo = false
|
| | | }
|
| | |
|
| | | this.hform.HStockStyle = data.hStockStyleField
|
| | | this.hform.HStockInOrgID = data.hStockInOrgIDField
|
| | | this.hform.HStockOutOrgID = data.hStockOutOrgIDField
|
| | |
|
| | | // 更新组织显示
|
| | | const inOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.hStockInOrgIDField)
|
| | | const outOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.hStockOutOrgIDField)
|
| | | if (inOrgIndex !== -1) {
|
| | | this.hform.HStockInOrgName = this.arrayHOrgName[inOrgIndex]
|
| | | }
|
| | | if (outOrgIndex !== -1) {
|
| | | this.hform.HStockOutOrgName = this.arrayHOrgName[outOrgIndex]
|
| | | }
|
| | |
|
| | | // 如果组织发生变化,清空仓库仓位
|
| | | if (this.hform.HStockInOrgID != uni.getStorageSync('OrganizationID')) {
|
| | | this.clearInWarehouseData()
|
| | | }
|
| | | if (this.hform.HStockOutOrgID != uni.getStorageSync('OrganizationID')) {
|
| | | this.clearOutWarehouseData()
|
| | | }
|
| | | },
|
| | |
|
| | | // 清空调入仓库数据
|
| | | clearInWarehouseData() {
|
| | | this.hform.HWHID = 0
|
| | | this.hform.HWHName = ''
|
| | | this.hform.HStockPlaceID = 0
|
| | | this.hform.HStockPlaceName = ''
|
| | | this.HIsStockMgr = true
|
| | | },
|
| | |
|
| | | // 清空调出仓库数据
|
| | | clearOutWarehouseData() {
|
| | | this.hform.HSCWHID = 0
|
| | | this.hform.HSCWHName = ''
|
| | | this.hform.HOutStockPlaceID = 0
|
| | | this.hform.HOutStockPlaceName = ''
|
| | | this.HSCIsStockMgr = true
|
| | | },
|
| | |
|
| | | // 刷新条码输入状态
|
| | | async refreshBarCodeState() {
|
| | | this.barCodeFocus = false
|
| | | await this.$nextTick(() => {
|
| | | this.hform.HBarCode = ""
|
| | | this.barCodeFocus = true
|
| | | })
|
| | | },
|
| | |
|
| | | // 播放提示音
|
| | | playSound(type) {
|
| | | const innerAudioContext = uni.createInnerAudioContext();
|
| | | innerAudioContext.src = type == 1 ? '/static/success.wav' : '/static/jingbao.wav';
|
| | | innerAudioContext.play();
|
| | | },
|
| | |
|
| | | // 扫描仓库码
|
| | | async HWHNameOutScan(e) {
|
| | | let index = this.HWHNameList.findIndex(elem => elem['条码编号'] == e)
|
| | | if (index == -1) {
|
| | | uni.showToast({
|
| | | icon: 'none',
|
| | | title: '扫描仓库条码对应的仓库不存在...'
|
| | | })
|
| | | } else {
|
| | | this.HSCWHNameChange(this.HWHNameList[index]['仓库名称'])
|
| | | }
|
| | | },
|
| | |
|
| | | // 扫描仓位码
|
| | | async HStockPlaceOutNameScan(e) {
|
| | | let index = this.HStockPlaceNameList.findIndex(elem => elem['条码编号'] == e)
|
| | | // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
|
| | | this.hform.HStockPlaceID = 0
|
| | | this.hform.HStockPlaceName = ''
|
| | | await this.$nextTick()
|
| | | if (index == -1) {
|
| | | uni.showToast({
|
| | | icon: 'none',
|
| | | title: '扫描仓位条码对应的仓位不存在...'
|
| | | })
|
| | | } else {
|
| | | this.HOutStockPlaceNameChange(this.HStockPlaceNameList[index]['仓位名称'])
|
| | | }
|
| | | },
|
| | |
|
| | | // 扫描调入仓库码
|
| | | async HWHNameInScan(e) {
|
| | | let index = this.HWHInNameList.findIndex(elem => elem['条码编号'] == e)
|
| | | if (index == -1) {
|
| | | uni.showToast({
|
| | | icon: 'none',
|
| | | title: '扫描仓库条码对应的仓库不存在...'
|
| | | })
|
| | | } else {
|
| | | this.HWHInNameChange(this.HWHInNameList[index]['仓库名称'])
|
| | | }
|
| | | },
|
| | |
|
| | | // 扫描调入仓位码
|
| | | async HStockPlaceNameInScan(e) {
|
| | | let index = this.HStockPlaceInNameList.findIndex(elem => elem['条码编号'] == e)
|
| | | // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
|
| | | this.hform.HStockPlaceID = 0
|
| | | this.hform.HStockPlaceName = ''
|
| | | await this.$nextTick()
|
| | | if (index == -1) {
|
| | | uni.showToast({
|
| | | icon: 'none',
|
| | | title: '扫描仓位条码对应的仓位不存在...'
|
| | | })
|
| | | } else {
|
| | | this.HStockPlaceInNameChange(this.HStockPlaceInNameList[index]['仓位名称'])
|
| | | }
|
| | | },
|
| | |
|
| | | // 源单类型变更
|
| | | HMainSourceBillTypeChange(e) {
|
| | | this.HMainSourceBillTypeIndex = e.detail.value
|
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[this.HMainSourceBillTypeIndex]
|
| | | this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[this.HMainSourceBillTypeIndex]
|
| | | },
|
| | |
|
| | | // 源单单号确认
|
| | | onHSourceBillNoConfirmHandler() {
|
| | | if (this.hform.HMainSourceBillType == -1) {
|
| | | this.playSound(1)
|
| | | return
|
| | | }
|
| | | this.getSourceBarCodeData(this.hform.HSourceBillNo)
|
| | | },
|
| | |
|
| | | // 获取源单数据
|
| | | async getSourceBarCodeData(HSourceBillNo) {
|
| | | try {
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/WEBSController/get_SourceBarCode_MoveStockStepIn_Json',
|
| | | data: {
|
| | | HInterID: this.hform.HInterID,
|
| | | HBillNo: this.hform.HBillNo,
|
| | | HBillType: this.hform.HBillType,
|
| | | HSourceBillNo: HSourceBillNo,
|
| | | HSourceBillType: this.hform.HMainSourceBillType,
|
| | | HMaker: this.hform.HMaker,
|
| | | HStockInOrgID: this.hform.HStockInOrgID,
|
| | | HStockOutOrgID: this.hform.HStockOutOrgID
|
| | | }
|
| | | })
|
| | |
|
| | | if (res.data.count == 1) {
|
| | | this.playSound(1)
|
| | | await this.setSourceBillInfo(res.data.data)
|
| | | this.tabs = 2
|
| | | this.barCodeFocus = true
|
| | | this.DisBillEntryList()
|
| | | } else {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: res.data.Message,
|
| | | icon: 'none'
|
| | | })
|
| | | this.refreshHSourceBillState()
|
| | | }
|
| | | } catch (error) {
|
| | | this.playSound(0)
|
| | | uni.showToast({
|
| | | title: '获取源单数据失败',
|
| | | icon: 'none'
|
| | | })
|
| | | this.refreshHSourceBillState()
|
| | | }
|
| | | },
|
| | |
|
| | | // 刷新源单输入状态
|
| | | async refreshHSourceBillState() {
|
| | | this.HSourcebillNoFocus = false
|
| | | await this.$nextTick(() => {
|
| | | this.hform.HSourceBillNo = ""
|
| | | this.HSourcebillNoFocus = true
|
| | | })
|
| | | },
|
| | |
|
| | | // 显示源单列表
|
| | | showBillList() {
|
| | | this.$refs.billList.showPopup()
|
| | | },
|
| | |
|
| | | // 日期变更
|
| | | HDateChange(e) {
|
| | | this.hform.HDate = e.detail.value
|
| | | },
|
| | |
|
| | | // 调出仓库变更
|
| | | HSCWHNameChange(e) {
|
| | | const warehouse = this.HWHNameList.find(item => item.仓库名称 == e)
|
| | | if (warehouse) {
|
| | | this.hform.HSCWHName = warehouse.仓库名称
|
| | | this.hform.HSCWHID = warehouse.HItemID
|
| | | this.HSCIsStockMgr = warehouse['启用仓位'] == 'Y'
|
| | | if (!this.HSCIsStockMgr) {
|
| | | this.hform.HOutStockPlaceName = ''
|
| | | this.hform.HOutStockPlaceID = ''
|
| | | }
|
| | | }
|
| | | },
|
| | |
|
| | | // 调出仓位变更
|
| | | HOutStockPlaceNameChange(e) {
|
| | | const stockPlace = this.HStockPlaceNameList.find(item => item.仓位名称 == e)
|
| | | if (stockPlace) {
|
| | | this.hform.HOutStockPlaceName = stockPlace.仓位名称
|
| | | this.hform.HOutStockPlaceID = stockPlace.HMainID
|
| | | }
|
| | | },
|
| | |
|
| | | // 调入仓库变更
|
| | | HWHInNameChange(e) {
|
| | | const warehouse = this.HWHInNameList.find(item => item.仓库名称 == e)
|
| | | if (warehouse) {
|
| | | this.hform.HWHName = warehouse.仓库名称
|
| | | this.hform.HWHID = warehouse.HItemID
|
| | | this.HIsStockMgr = warehouse['启用仓位'] == 'Y'
|
| | | if (!this.HIsStockMgr) {
|
| | | this.hform.HStockPlaceName = ''
|
| | | this.hform.HStockPlaceID = ''
|
| | | }
|
| | | }
|
| | | },
|
| | |
|
| | | // 调入仓位变更
|
| | | HStockPlaceInNameChange(e) {
|
| | | const stockPlace = this.HStockPlaceInNameList.find(item => item.仓位名称 == e)
|
| | | if (stockPlace) {
|
| | | this.hform.HStockPlaceName = stockPlace.仓位名称
|
| | | this.hform.HStockPlaceID = stockPlace.HMainID
|
| | | }
|
| | | },
|
| | |
|
| | | // 部门变更
|
| | | HDeptNameChange(e) {
|
| | | const dept = this.HDeptNameList.find(item => item.部门名称 == e)
|
| | | if (dept) {
|
| | | this.hform.HDeptName = dept.部门名称
|
| | | this.hform.HDeptID = dept.HItemID
|
| | | }
|
| | | },
|
| | |
|
| | | // 获取基础数据
|
| | | getHBaseList() {
|
| | | // 获取仓库列表
|
| | | CommonUtils.doRequest2({
|
| | | url: '/Gy_Warehouse/list',
|
| | | data: {
|
| | | sWhere: "",
|
| | | user: uni.getStorageSync('HUserName'),
|
| | | Organization: uni.getStorageSync('Organization')
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | this.HWHNameList = res.data.data
|
| | | this.HWHInNameList = res.data.data
|
| | | this.arrayHWHName = res.data.data.map(item => item.仓库名称)
|
| | | this.arrayHWHInName = res.data.data.map(item => item.仓库名称)
|
| | | }
|
| | | }
|
| | | })
|
| | |
|
| | | // 获取仓位列表
|
| | | CommonUtils.doRequest2({
|
| | | url: '/Gy_StockPlace/list',
|
| | | data: {
|
| | | sWhere: "",
|
| | | user: uni.getStorageSync('HUserName'),
|
| | | Organization: uni.getStorageSync('Organization')
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | this.HStockPlaceNameList = res.data.data
|
| | | this.HStockPlaceInNameList = res.data.data
|
| | | this.arrayHStockPlaceName = res.data.data.map(item => item.仓位名称)
|
| | | this.arrayHStockPlaceInName = res.data.data.map(item => item.仓位名称)
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | // 获取部门列表
|
| | | getHDeptList() {
|
| | | CommonUtils.doRequest2({
|
| | | url: '/Gy_Department/list',
|
| | | data: {
|
| | | sWhere: "",
|
| | | user: uni.getStorageSync('HUserName'),
|
| | | Organization: uni.getStorageSync('Organization')
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | this.HDeptNameList = res.data.data
|
| | | this.arrayHDeptName = res.data.data.map(item => item.部门名称)
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | // 显示仓库列表
|
| | | showWarehouseList(type) {
|
| | | const HOrgID = type === 'HSCWHID' ? this.hform.HStockOutOrgID : this.hform.HStockInOrgID
|
| | | uni.navigateTo({
|
| | | url: `/pages/Baseset/WarehouseList?Type=${type}&HOrgID=${HOrgID}`
|
| | | })
|
| | | },
|
| | |
|
| | | // 显示仓位列表
|
| | | showStockPlaceList(type) {
|
| | | const HWhID = type === 'HOSpID' ? this.hform.HSCWHID : this.hform.HWHID
|
| | | const HOrgID = type === 'HOSpID' ? this.hform.HStockOutOrgID : this.hform.HStockInOrgID
|
| | | uni.navigateTo({
|
| | | url: `/pages/Baseset/StockPlaceList?HWhID=${HWhID}&Type=${type}&HOrgID=${HOrgID}`
|
| | | })
|
| | | },
|
| | |
|
| | | // 显示部门列表
|
| | | showDepartmentList() {
|
| | | uni.navigateTo({
|
| | | url: `/pages/Baseset/DepartmentList?HStockOrgID=${this.hform.HStockOrgID}&Type=HDept1`
|
| | | })
|
| | | },
|
| | |
|
| | | // 处理仓库选择结果
|
| | | handleWarehouseSelect(data) {
|
| | | if (data.type === 'HSCWHID') {
|
| | | this.hform.HSCWHName = data.data[0].HName
|
| | | this.hform.HSCWHID = data.data[0].HItemID
|
| | | this.hform.HOutStockPlaceName = data.data[0].HSPName
|
| | | this.hform.HOutStockPlaceID = data.data[0].HSPID
|
| | | this.HSCIsStockMgr = data.data[0].HSPFlag != 0
|
| | | } else if (data.type === 'HWHID') {
|
| | | this.hform.HWHName = data.data[0].HName
|
| | | this.hform.HWHID = data.data[0].HItemID
|
| | | this.hform.HStockPlaceName = data.data[0].HSPName
|
| | | this.hform.HStockPlaceID = data.data[0].HSPID
|
| | | this.HIsStockMgr = data.data[0].HSPFlag != 0
|
| | | }
|
| | | },
|
| | |
|
| | | // 处理仓位选择结果
|
| | | handleStockPlaceSelect(data) {
|
| | | if (data.type === 'HOSpID') {
|
| | | this.hform.HOutStockPlaceName = data.data[0].HName
|
| | | this.hform.HOutStockPlaceID = data.data[0].HItemID
|
| | | this.hform.HSCWHName = data.data[0].HWhName
|
| | | this.hform.HSCWHID = data.data[0].HWHID
|
| | | } else if (data.type === 'HSpID') {
|
| | | this.hform.HStockPlaceName = data.data[0].HName
|
| | | this.hform.HStockPlaceID = data.data[0].HItemID
|
| | | this.hform.HWHName = data.data[0].HWhName
|
| | | this.hform.HWHID = data.data[0].HWHID
|
| | | }
|
| | | },
|
| | |
|
| | | // 处理部门选择结果
|
| | | handleDepartmentSelect(data) {
|
| | | this.hform.HDeptName = data.data[0].HName
|
| | | this.hform.HDeptID = data.data[0].HItemID
|
| | | },
|
| | |
|
| | | // 显示物料明细
|
| | | showMaterialDetail(item) {
|
| | | this.selectedMaterial = item
|
| | | // this.$refs.materialEdit.show()
|
| | | },
|
| | |
|
| | | // 显示源单条码明细
|
| | | showSourceBarCodeDetail(item) {
|
| | | // 可以在这里实现源单条码明细的显示逻辑
|
| | | console.log('源单条码明细:', item)
|
| | | },
|
| | |
|
| | | // 物料保存回调
|
| | | onMaterialSave() {
|
| | | this.DisBillEntryList()
|
| | | },
|
| | |
|
| | | // 显示物料清单
|
| | | DisBillEntryList() {
|
| | | CommonUtils.doRequest2({
|
| | | url: '/WEBSController/GetBillEntryTmpList_Json',
|
| | | data: {
|
| | | HInterID: this.hform.HInterID,
|
| | | HBillNo: this.hform.HBillNo,
|
| | | HBillType: this.hform.HBillType,
|
| | | HStockOrgID: this.hform.HStockOutOrgID
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | const data = res.data.data
|
| | | this.Materlist = data.Materlist
|
| | | if (data.ICMOReportlist[0].HSourceInterID !=0 ) {
|
| | | this.FIFOlist = data.ICMOReportlist
|
| | | }
|
| | |
|
| | | // 更新条码信息
|
| | | if (data.BarCodeDetailslist && data.BarCodeDetailslist[0].HBarCode) {
|
| | | const barcode = data.BarCodeDetailslist[0]
|
| | | this.hform.HBarCode_B = barcode.HBarCode
|
| | | this.hform.HMaterName_B = barcode.HMaterName
|
| | | this.hform.HMaterModel_B = barcode.HMaterModel
|
| | | this.hform.HBatchNo_B = barcode.HBatchNo
|
| | | this.hform.HUnitName_B = barcode.HUnitName
|
| | | this.hform.HQty_B = barcode.HQty
|
| | | this.hform.HTMQty_B = barcode.HTMQty
|
| | | this.hform.HWHName_B = barcode.HWHName
|
| | | this.hform.HSPName_B = barcode.HSPName
|
| | | this.hform.HSCWHName_B = barcode.HSCWHName
|
| | | this.hform.HSCSPName_B = barcode.HSCSPName
|
| | | } else {
|
| | | this.clearBarcodeInfo()
|
| | | }
|
| | | } else {
|
| | | this.Materlist = []
|
| | | this.FIFOlist = []
|
| | | this.clearBarcodeInfo()
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | // 清空条码信息
|
| | | clearBarcodeInfo() {
|
| | | this.hform.HBarCode_B = ''
|
| | | this.hform.HMaterName_B = ''
|
| | | this.hform.HMaterModel_B = ''
|
| | | this.hform.HBatchNo_B = ''
|
| | | this.hform.HUnitName_B = ''
|
| | | this.hform.HQty_B = ''
|
| | | this.hform.HTMQty_B = ''
|
| | | this.hform.HWHName_B = ''
|
| | | this.hform.HSPName_B = ''
|
| | | this.hform.HSCWHName_B = ''
|
| | | this.hform.HSCSPName_B = ''
|
| | | },
|
| | |
|
| | | // 获取新单据数据
|
| | | getNewData() {
|
| | | CommonUtils.doRequest2({
|
| | | url: '/WEBSController/GetMaxBillNoAndID_Json',
|
| | | data: {
|
| | | HBillType: this.hform.HBillType
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | this.hform.HInterID = res.data.data[0].HInterID
|
| | | this.hform.HBillNo = res.data.data[0].HBillNo
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | // 加载已有单据
|
| | | RoadBillMain(HInterID) {
|
| | | CommonUtils.doRequest2({
|
| | | url: '/WEBSController/GetSourceBill_Temp_Json',
|
| | | data: {
|
| | | HInterID: HInterID,
|
| | | HBillType: this.hform.HBillType
|
| | | },
|
| | | resFunction: (res) => {
|
| | | if (res.data.count == 1) {
|
| | | const data = res.data.data[0]
|
| | | this.hform.HInterID = data.HInterID
|
| | | this.hform.HBillNo = data.HBillNo
|
| | | this.hform.HMainSourceBillType = data.HSourceBillType
|
| | | this.hform.HSourceBillNo = data.HSourceBillNo
|
| | |
|
| | | // 设置源单类型
|
| | | const index = this.arrayHMainSourceBillValue.findIndex(e => e == data.HSourceBillType)
|
| | | if (index !== -1) {
|
| | | this.HMainSourceBillType = this.arrayHMainSourceBillType[index]
|
| | | this.HMainSourceBillTypeIndex = index
|
| | | this.showHMainSourceBillType = false
|
| | | }
|
| | |
|
| | | if (data.HMulSourceBill == 0) {
|
| | | this.showHSourceBillNo = false
|
| | | }
|
| | |
|
| | | if (data.HDeptID != 0) {
|
| | | this.hform.HDeptID = data.HDeptID
|
| | | this.hform.HDeptName = data.HDeptName
|
| | | }
|
| | |
|
| | | this.hform.HStockStyle = data.HStockStyle
|
| | | this.hform.HStockInOrgID = data.HStockInOrgID
|
| | | this.hform.HStockOutOrgID = data.HStockOutOrgID
|
| | |
|
| | | // 设置组织显示
|
| | | const inOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.HStockInOrgID)
|
| | | const outOrgIndex = this.arrayHOrgValue.findIndex(e => e == data.HStockOutOrgID)
|
| | | if (inOrgIndex !== -1) {
|
| | | this.hform.HStockInOrgName = this.arrayHOrgName[inOrgIndex]
|
| | | }
|
| | | if (outOrgIndex !== -1) {
|
| | | this.hform.HStockOutOrgName = this.arrayHOrgName[outOrgIndex]
|
| | | }
|
| | |
|
| | | this.tabs = 2
|
| | | this.DisBillEntryList()
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | // 新增单据
|
| | | addNew() {
|
| | | uni.redirectTo({
|
| | | url: '/pages/fenbushidiaoru/form?OperationType=1'
|
| | | })
|
| | | },
|
| | |
|
| | | // 提交单据
|
| | | async submit() {
|
| | | // 表单验证
|
| | | if (!this.hform.HInterID) {
|
| | | uni.showToast({
|
| | | title: '单据内码获取失败,错误的单据内码!',
|
| | | icon: 'none'
|
| | | })
|
| | | return
|
| | | }
|
| | |
|
| | | if (!this.hform.HBillNo) {
|
| | | uni.showToast({
|
| | | title: '单据号获取失败,错误的单据号!',
|
| | | icon: 'none'
|
| | | })
|
| | | return
|
| | | }
|
| | |
|
| | | if (!this.Materlist || this.Materlist.length == 0) {
|
| | | uni.showToast({
|
| | | title: '没有扫码信息,请先扫描条码,确认无误后再提交!',
|
| | | icon: 'none'
|
| | | })
|
| | | return
|
| | | }
|
| | |
|
| | | const hasMaterial = this.Materlist.some(item => item.数量 > 0)
|
| | | if (!hasMaterial) {
|
| | | uni.showToast({
|
| | | title: '没有扫描物料条码,请先扫描物料条码,确认无误后再提交!',
|
| | | icon: 'none'
|
| | | })
|
| | | return
|
| | | }
|
| | |
|
| | | // 清空空值的ID
|
| | | if (!this.hform.HWHName) this.hform.HWHID = 0
|
| | | if (!this.hform.HStockPlaceName) this.hform.HStockPlaceID = 0
|
| | | if (!this.hform.HSCWHName) this.hform.HSCWHID = 0
|
| | | if (!this.hform.HOutStockPlaceName) this.hform.HOutStockPlaceID = 0
|
| | | if (!this.hform.HDeptName) this.hform.HDeptID = 0
|
| | |
|
| | | try {
|
| | | const sMainStr = JSON.stringify(this.hform)
|
| | | let res = await CommonUtils.doRequest2Sync({
|
| | | url: '/WEBSController/set_SaveMoveStockStepInBill_Json',
|
| | | method: 'POST',
|
| | | data: {
|
| | | oMain: sMainStr
|
| | | }
|
| | | })
|
| | |
|
| | | if (res.data.count == 1) {
|
| | | uni.showModal({
|
| | | title: '提示',
|
| | | content: res.data.Message + '。是否继续新增?',
|
| | | success: (res) => {
|
| | | if (res.confirm) {
|
| | | this.addNew()
|
| | | } else {
|
| | | if (this.OperationType == 2) {
|
| | | uni.navigateBack()
|
| | | } else {
|
| | | uni.switchTab({
|
| | | url: '/pages/index/index'
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | })
|
| | | } else {
|
| | | uni.showToast({
|
| | | title: res.data.Message,
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | } catch (error) {
|
| | | uni.showToast({
|
| | | title: '提交失败:' + error,
|
| | | icon: 'none'
|
| | | })
|
| | | }
|
| | | },
|
| | |
|
| | | // 返回
|
| | | goBack() {
|
| | | uni.showModal({
|
| | | title: '提示',
|
| | | content: '确认要退出当前页面吗?',
|
| | | success: (res) => {
|
| | | if (res.confirm) {
|
| | | if (this.OperationType == 2) {
|
| | | uni.navigateBack()
|
| | | } else {
|
| | | uni.switchTab({
|
| | | url: '/pages/index/index'
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .form {
|
| | | width: 668rpx;
|
| | | margin: 20rpx auto;
|
| | | padding-bottom: 240rpx;
|
| | | }
|
| | |
|
| | | .tabs {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | border-bottom: 1px solid #ddd;
|
| | | margin: 20rpx 0;
|
| | |
|
| | | view {
|
| | | width: 20%;
|
| | | font-size: 26rpx;
|
| | | color: #555;
|
| | | text-align: center;
|
| | | padding: 16rpx 0;
|
| | | }
|
| | |
|
| | | .on {
|
| | | color: #3a78ff;
|
| | | font-weight: bold;
|
| | | border-bottom: 3px solid #3a78ff;
|
| | | }
|
| | | }
|
| | |
|
| | | .form-item {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | font-size: 30rpx;
|
| | | padding: 6rpx 0;
|
| | | gap: 12rpx;
|
| | |
|
| | | .title {
|
| | | width: 208rpx;
|
| | | flex-shrink: 0;
|
| | | }
|
| | |
|
| | | .right {
|
| | | flex: 1;
|
| | | border-radius: 22rpx;
|
| | | border: 1px solid #acacac;
|
| | | position: relative;
|
| | | display: flex;
|
| | | }
|
| | |
|
| | | .righton {
|
| | | flex: 1;
|
| | | border-radius: 22rpx;
|
| | | border: 1px solid #e4e4e4;
|
| | | background-color: #e4e4e4;
|
| | | }
|
| | |
|
| | | input {
|
| | | width: 100%;
|
| | | padding: 8rpx 20rpx;
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .icon-wrapper {
|
| | | background-color: #3A78FF;
|
| | | border-radius: 100%;
|
| | | width: 52rpx;
|
| | | height: 52rpx;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | flex-shrink: 0;
|
| | |
|
| | | .uni-icons {
|
| | | color: #fff !important;
|
| | | }
|
| | | }
|
| | |
|
| | | .icon-wrapper[disabled] {
|
| | | background-color: rgba(228, 228, 228, 1);
|
| | | pointer-events: none;
|
| | | touch-action: none;
|
| | | }
|
| | | }
|
| | |
|
| | | .bottom-btn {
|
| | | box-sizing: border-box;
|
| | | width: 100%;
|
| | | 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-c {
|
| | | background-color: #acacac;
|
| | | color: #fff;
|
| | | }
|
| | | }
|
| | |
|
| | | .list {
|
| | | width: 100%;
|
| | |
|
| | | .card-detail {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | justify-content: space-between;
|
| | | line-height: 120%;
|
| | |
|
| | | .detail {
|
| | | font-size: 26rpx;
|
| | | margin-bottom: 12rpx;
|
| | | color: #555;
|
| | | margin-right: 20rpx;
|
| | |
|
| | | text {
|
| | | color: #999;
|
| | | font-size: 26rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .over {
|
| | | text-align: center;
|
| | | color: #999;
|
| | | padding: 40rpx;
|
| | | }
|
| | | </style> |