Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jump_hm_warehouse
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
毛勇泽
jump_hm_warehouse
Commits
98758423
Commit
98758423
authored
Jan 23, 2024
by
毛勇泽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
盘库。倒库,调号
parent
8895519d
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
1579 行增加
和
7 行删除
+1579
-7
WzhxdmDao.ets
common/src/main/ets/db/dao/WzhxdmDao.ets
+3
-0
UHFScanPage.ets
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
+3
-4
WzExchangeDetailPage.ets
entry/src/main/ets/pages/metailmange/WzExchangePage/WzExchangeDetailPage/WzExchangeDetailPage.ets
+169
-0
WzExchangePage.ets
entry/src/main/ets/pages/metailmange/WzExchangePage/WzExchangePage.ets
+360
-0
WzInvDetail.ets
entry/src/main/ets/pages/metailmange/WzInvPage/WzInvDetail/WzInvDetail.ets
+165
-0
WzInvPage.ets
entry/src/main/ets/pages/metailmange/WzInvPage/WzInvPage.ets
+354
-0
WzReverseDetailPage.ets
entry/src/main/ets/pages/metailmange/WzReversePage/WzReverseDetailPage/WzReverseDetailPage.ets
+170
-0
WzReversePage.ets
entry/src/main/ets/pages/metailmange/WzReversePage/WzReversePage.ets
+346
-0
main_pages.json
entry/src/main/resources/base/profile/main_pages.json
+6
-0
MaterialManagement.ets
features/MaterialManagement/src/main/ets/components/MaterialManagement.ets
+3
-3
没有找到文件。
common/src/main/ets/db/dao/WzhxdmDao.ets
View file @
98758423
...
@@ -73,6 +73,8 @@ export class WzhxdmDao extends BaseTable<Wzhxdm> {
...
@@ -73,6 +73,8 @@ export class WzhxdmDao extends BaseTable<Wzhxdm> {
wp.endWrap()
wp.endWrap()
wp.endWrap()
wp.endWrap()
}
}
console.log("执行语句==="+JSON.stringify(hx_map))
console.log("执行语句==="+JSON.stringify(wp))
return this.query(wp, this.getTableColumns())
return this.query(wp, this.getTableColumns())
}
}
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
View file @
98758423
...
@@ -227,8 +227,7 @@ struct UHFScanPage{
...
@@ -227,8 +227,7 @@ struct UHFScanPage{
this.doneEpcsList.push(epc)
this.doneEpcsList.push(epc)
try {
try {
// this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
// this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
this.handleanalysisQrCode('0504000D2490C80C56033C44FC1A111100096300E0D220713000');
this.handleanalysisQrCode(epc);
IdentifyService.stopRfidInv()
}catch (err){
}catch (err){
Logger.info("解析失败1"+epc+JSON.stringify(err))
Logger.info("解析失败1"+epc+JSON.stringify(err))
...
@@ -245,8 +244,8 @@ struct UHFScanPage{
...
@@ -245,8 +244,8 @@ struct UHFScanPage{
console.log("proEpc"+pro.strEpc)
console.log("proEpc"+pro.strEpc)
console.log("LSM"+pro.getiWzLsm())
console.log("LSM"+pro.getiWzLsm())
console.log("箱号===》"+pro.getiXangNo().toString())
console.log("箱号===》"+pro.getiXangNo().toString())
const scan = await analysisQrCode(pro.getiWzLsm().toString(), true)
//
const scan = await analysisQrCode(pro.getiWzLsm().toString(), true)
console.log('扫描返回数据', JSON.stringify(scan))
//
console.log('扫描返回数据', JSON.stringify(scan))
const res = await bzhxModal.queryLsm(pro.getiWzLsm().toString())
const res = await bzhxModal.queryLsm(pro.getiWzLsm().toString())
console.log('RFDID解析返回数据', res)
console.log('RFDID解析返回数据', res)
if (res && res.length == 0) {
if (res && res.length == 0) {
...
...
entry/src/main/ets/pages/metailmange/WzExchangePage/WzExchangeDetailPage/WzExchangeDetailPage.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../../view/title/TitleBar'
import router from '@ohos.router';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzInfo } from '../../WzInPage/WzinDetail/WzInfo'
import { PzInfo } from '../../WzInPage/WzinDetail/PzInfo'
import {AddWzin} from '../../WzInPage/WzinDetail/AddWzin'
import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import bzhxModel from '../../../../model/BzhxModel';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import { uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#97c6a6')
.fontColor('#fff')
.borderRadius(5)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface params {
wzcrk: Wzcrk,
isUpdate: boolean
}
@Entry
@Component
struct WzExchangeDetailPage{
@State fontColor: string = '#0FA983'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细
private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
onPageShow() {
const params = router.getParams() as params
this.isUpdate = params.isUpdate
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
}
// 获取凭证信息
async getDetail(wzpm?) {
this.wzmx = []
const res = await wzcrkmxModel.query(this.wzcrk.guid, wzpm)
res.forEach(i => {
// @ts-ignore
this.wzmx.push(new WzmxClass(i))
})
Logger.info('接收到出入库物资明细信息>>', JSON.stringify(res))
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(21)
.lineHeight(36)
}
.width('100%')
.height(45)
.border({ width: 2, color: 'rgb(15, 169, 131)' })
.borderRadius(3)
.backgroundColor(this.currentIndex === index ? this.fontColor : '#00000000')
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "凭证详情" })
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
Column() {
if(this.isUpdate) {
PzInfo({ wzcrk: this.wzcrk })
} else {
AddWzin({ wzcrk: this.wzcrk })
}
}.width("100%")
}.tabBar(this.TabBuilder(0, '凭证信息'))
TabContent() {
Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
.margin({ left: 15, right: 15, top: 15 })
.onChange((index: number) => {
this.currentIndex = index
})
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("保存").CommonButtonStyle().width("100%")
.onClick(async () => {
try {
Logger.info('保存的入库明细数据>>', JSON.stringify(this.wzmx))
if(this.isUpdate) {
await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
dec: this.wzcrk.dec,
ydh: this.wzcrk.ydh,
})
}
else {
this.wzcrk.guid = uuid()
this.wzcrk.gznd = new Date().getFullYear() + ''
this.wzcrk.sjlx = '新建'
await wzcrkModel.setOne(this.wzcrk)
Logger.info('添加的入库数据>>', JSON.stringify(this.wzcrk))
}
// for (let index = 0; index < this.wzmx.length; index++) {
// const element = this.wzmx[index];
// try {
// Logger.error(this, '更新数据参数' + JSON.stringify({
// 'guid': element.guid,
// 'crksl': element.crksl
// }))
// let val1 = await this.wzcrkmxDao.update({ 'guid': element.guid, 'crksl': element.crksl } as Wzcrkmx)
// Logger.error(this, '更新查询的入库数据>>' + JSON.stringify(val1));
// } catch (e) {
// Logger.error(this, '保存失败了>>' + JSON.stringify(e))
// }
// }
//
// const crksl = this.wzmx.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
//
// await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
// dec: this.wzcrk.dec,
// ydh: this.wzcrk.ydh,
// crksl
// })
//
promptAction.showToast({
message: '保存入库数据成功',
bottom: 300
})
setTimeout(() => {
router.replaceUrl({ url: 'pages/metailmange/WzInPage/WzInPage' })
}, 300)
} catch (e) {
promptAction.showToast({
message: '保存入库数据失败',
bottom: 200
})
}
})
}
}.margin({ left: 10, right: 10 }).height(80)
}.width("100%")
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzExchangePage/WzExchangePage.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router';
import wzcrkModel from '../../../model/WzcrkModel';
import { Logger } from '@ohos/common';
import { WzClass } from '../Common/Wzcrk.data';
import { WzList } from '../Common/WzcrkList';
import promptAction from '@ohos.promptAction';
import { SetStatusDialog } from '../../../view/SetStatusDialog/SetStatusDialog';
import { dateUtils } from '@ohos/common/src/main/ets/utils/util';
import ViewdrdcModel from '../../../model/ViewdrdcModel';
import { importData } from '../Common/Wzcrk.api';
import { ExportOrderDialog } from '../../../view/ExportOrderDialog/ExportOrderDialog';
@Extend(Button) function bottomBtnSty() {
.borderWidth(1)
.padding({top:1,bottom:1,right:7,left:7})
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface SearchData {
pzh?: string;
wczt?: string;
}
@Entry
@Component
struct WzExchangePage{
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State dataSource: WzClass[] = []
@State checkedList: Array<string> = []
@State radioChecked: boolean = true
@State searchData: SearchData = {
pzh: '',
wczt: '未完成'
}
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
aboutToAppear() {
this.getWzcrkList()
}
async getWzcrkList(qzh?: number, wczt?: string) {
this.dataSource = []
const res = await wzcrkModel.query({
pzlx: "41",
pzh: Number(this.searchData.pzh),
wczt: this.searchData.wczt,
sjlx: this.currentIndex === 0 ? "导入" : "临时调号" })
res.forEach(element => {
this.dataSource.push(new WzClass(element))
});
Logger.info('数量是' + JSON.stringify(this.dataSource))
}
@Builder container() {
Column() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.checked(true)
.onChange((isChecked: boolean) => {
this.radioChecked = isChecked
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成').margin({ left: 20 })
Radio({ value: 'Radio2', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
}
}
@Builder exportContainer() {
Column() {
Text('请选择导出单据模式')
}.height(40)
}
dialogController: CustomDialogController = new CustomDialogController({
builder: SetStatusDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.container
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
try{
this.checkedList.forEach(async (element)=>{
let num = await wzcrkModel.updateWzcrkWczt(element, (this.radioChecked == undefined || this.radioChecked ? '已完成' : '未完成'))
if(num) {
this.dataSource.splice(this.dataSource.findIndex(i => i.guid == element), 1)
}
})
}catch(e){
}finally{
this.checkedList = []
}
}
exportDialogController: CustomDialogController = new CustomDialogController({
builder: ExportOrderDialog({
cancel: this.onExportCancel,
confirm: this.onExportSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.exportContainer
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onExportCancel() {
}
onExportSubmit() {
this.checkedList.forEach(async element => {
let res = await ViewdrdcModel.queryExport({guid: element, wczt: '已完成', pzlx: '17'})
const jhguidArr = res.map((item) => item.guid)
if (jhguidArr && jhguidArr.length > 0) {
const date = dateUtils.formatDateTime(new Date(), 'before')
const newArr = [...new Set(jhguidArr)]
const exportData = newArr.map((item) => {
let newObj = {}
let ItemData = []
res.forEach((Item) => {
if (item == Item.guid) {
ItemData.push({
jhmxguid: Item.jhmxguid,
hwh: Item.hwh,
pmdmcode: Item.pmdmcode,
wzdm: Item.wzdm,
pzsl: Item.pzsl || 0,
sjsl: Item.crksl || 0
})
}
})
const [filterData] = res.filter((fItem) => fItem
.guid == item)
if (filterData) {
newObj = {
cbdwdm: filterData.ckdwguid,
ckkfdm: filterData.kfdm,
...filterData,
crksl: ItemData.map(i => i.sjsl).reduce((a, b) => {
return a + b
},0),
scjid: "863576927543400,863576927543400",
cjmc: "普华",
imei: "863576927543400,863576927543400",
model: "ax6737_65_n",
vendor: "alps",
dcsj: date,
pzmx: ItemData
}
}
return newObj
})
const exportForm = {
pzzbJson: exportData,
crklx: '11111CRKLX2',
gznd: '2023',
jsdwguid: 1,
}
await importData(exportForm)
}
})
promptAction.showDialog({
title: '提示',
message: '入库作业单据已同步至业务系统,请以保管员身份登录业务系统,在菜单“作业项目--物资入库”里刷新查看。',
buttons: [{
text: '已知晓',
color: '#0fa983',
}],
})
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(16)
.lineHeight(22)
.margin({ top: 17, bottom: 7 })
Divider()
.strokeWidth(2)
.color('#fff')
.width(50)
.opacity(this.currentIndex === index ? 1 : 0)
}.width('100%')
}
@Builder renderEmpty() {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() {
Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
}
}.height('70%')
}
@Builder bottomButtons() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("临时调号")
.visibility(this.currentIndex === 1 ? Visibility.Visible:Visibility.None)
.bottomBtnSty()
.onClick( () => {
router.pushUrl({
url: "pages/metailmange/AddAdjustModelPage",
})
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("设置状态")
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else {
// if (this.dialogController != undefined) {
// this.dialogController.open()
// }
}
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("导出数据包")
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else if (this.dataSource.filter(i => i.wczt == '未完成').length > 0) {
promptAction.showToast({
message: '请选择已完成的单据'
})
} else {
// if (this.exportDialogController != undefined) {
// this.exportDialogController.open()
// }
}
}).fontColor("#0fa983") .fontSize("14vp")
Button("全选")
.bottomBtnSty().fontColor("#0fa983").fontSize("14vp")
.onClick(() => {
this.checkedList = this.dataSource.map((item) => item.guid)
})
Button("清空选择")
.bottomBtnSty()
.onClick(() => {
this.checkedList = []
}).fontColor("#0fa983").fontSize("14vp")
}
}.height(80)
}
build(){
Column() {
Flex({direction:FlexDirection.Column}){
TitleBar({ title:"物资调号" })
Row(){
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Search({ placeholder: '请输入凭证号', controller: this.searchcontroller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.textAlign(TextAlign.Center)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.width('100%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
this.searchData.pzh = value
this.getWzcrkList()
})
.borderRadius(5)
}
}.width("100%")
.padding('15vp')
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#00CB87')
}.tabBar(this.TabBuilder(0, '导入'))
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#007DFF')
}.tabBar(this.TabBuilder(1, '临时调号'))
}
.height(80)
.margin({top:-15})
.onChange((index: number) => {
this.currentIndex = index
})
// 列表
Column() {
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
List({ space: 2 }) {
ForEach(this.dataSource, (item) => {
ListItem() {
WzList({ item, checkedList: $checkedList }).width('100%').backgroundColor('#fff')
}.onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzExchangePage/WzExchangeDetailPage/WzExchangeDetailPage', params: {
wzcrk: item,
isUpdate:true
} },)
})
})
}.padding(18)
}
}.flexGrow(1).alignSelf(ItemAlign.Center)
Row(){
// 底部按钮
this.bottomButtons();
}.backgroundColor("#97c6a6").width("100%").height(80)
}
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzInvPage/WzInvDetail/WzInvDetail.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../../view/title/TitleBar'
import router from '@ohos.router';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzInfo } from '../../WzInPage/WzinDetail/WzInfo'
import { PzInfo } from '../../WzInPage/WzinDetail/PzInfo'
import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import bzhxModel from '../../../../model/BzhxModel';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import { uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#97c6a6')
.fontColor('#fff')
.borderRadius(5)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface params {
wzcrk: Wzcrk,
isUpdate: boolean
}
/*盘库详情*/
@Entry
@Component
struct WzInvDetail{
@State fontColor: string = '#0FA983'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细
private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
onPageShow() {
const params = router.getParams() as params
this.isUpdate = params.isUpdate
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
}
// 获取凭证信息
async getDetail(wzpm?) {
this.wzmx = []
const res = await wzcrkmxModel.query(this.wzcrk.guid, wzpm)
res.forEach(i => {
// @ts-ignore
this.wzmx.push(new WzmxClass(i))
})
Logger.info('接收到出入库物资明细信息>>', JSON.stringify(res))
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(21)
.lineHeight(36)
}
.width('100%')
.height(45)
.border({ width: 2, color: 'rgb(15, 169, 131)' })
.borderRadius(3)
.backgroundColor(this.currentIndex === index ? this.fontColor : '#00000000')
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "凭证详情" })
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
Column() {
PzInfo({ wzcrk: this.wzcrk })
}.width("100%")
}.tabBar(this.TabBuilder(0, '凭证信息'))
TabContent() {
Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
.margin({ left: 15, right: 15, top: 15 })
.onChange((index: number) => {
this.currentIndex = index
})
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("保存").CommonButtonStyle().width("100%")
.onClick(async () => {
try {
Logger.info('保存的入库明细数据>>', JSON.stringify(this.wzmx))
if(this.isUpdate) {
await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
dec: this.wzcrk.dec,
ydh: this.wzcrk.ydh,
})
}
else {
this.wzcrk.guid = uuid()
this.wzcrk.gznd = new Date().getFullYear() + ''
this.wzcrk.sjlx = '新建'
await wzcrkModel.setOne(this.wzcrk)
Logger.info('添加的入库数据>>', JSON.stringify(this.wzcrk))
}
// for (let index = 0; index < this.wzmx.length; index++) {
// const element = this.wzmx[index];
// try {
// Logger.error(this, '更新数据参数' + JSON.stringify({
// 'guid': element.guid,
// 'crksl': element.crksl
// }))
// let val1 = await this.wzcrkmxDao.update({ 'guid': element.guid, 'crksl': element.crksl } as Wzcrkmx)
// Logger.error(this, '更新查询的入库数据>>' + JSON.stringify(val1));
// } catch (e) {
// Logger.error(this, '保存失败了>>' + JSON.stringify(e))
// }
// }
//
// const crksl = this.wzmx.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
//
// await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
// dec: this.wzcrk.dec,
// ydh: this.wzcrk.ydh,
// crksl
// })
//
promptAction.showToast({
message: '保存入库数据成功',
bottom: 300
})
setTimeout(() => {
router.replaceUrl({ url: 'pages/metailmange/WzInPage/WzInPage' })
}, 300)
} catch (e) {
promptAction.showToast({
message: '保存入库数据失败',
bottom: 200
})
}
})
}
}.margin({ left: 10, right: 10 }).height(80)
}.width("100%")
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzInvPage/WzInvPage.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router';
import { WzList } from '../Common/WzcrkList';
import wzcrkModel from '../../../model/WzcrkModel';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { WzClass, getDefaultPzh } from '../Common/Wzcrk.data'
import promptAction from '@ohos.promptAction';
import { SetStatusDialog } from '../../../view/SetStatusDialog/SetStatusDialog';
import { ExportOrderDialog } from '../../../view/ExportOrderDialog/ExportOrderDialog';
import ViewdrdcModel from '../../../model/ViewdrdcModel';
import { importData } from '../Common/Wzcrk.api';
import { dateUtils } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function bottomBtnSty() {
.borderWidth(1)
.padding({ top: 1, bottom: 1, right: 7, left: 7 })
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface SearchData {
pzh?: string;
wczt?: string;
}
@Entry
@Component
struct WzInvPage{
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State dataSource: WzClass[] = []
@State checkedList: Array<string> = []
@State radioChecked: boolean = true
@State searchData: SearchData = {
pzh: '',
wczt: '未完成'
}
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
@State page: number = 1
@State rows: number = 10
@State sjlx: string = "0"
@State wczt: string = ""
@State pzh: string = ""
params = {
pzh: this.pzh,
page: this.page,
rows: this.rows,
sjlx: this.currentIndex === 0 ? "未完成" : "已完成",
wczt: "未完成"
}
itemClick() {
router.pushUrl({ url: 'pages/order_detail/PzInOutDetailPage' })
}
aboutToAppear() {
this.getWzcrkList()
}
async getWzcrkList(qzh?: number, wczt?: string) {
this.dataSource = []
const res = await wzcrkModel.query({
pzlx: "42",
pzh: Number(this.searchData.pzh),
wczt: this.currentIndex === 0 ? "未完成" : "已完成" })
res.forEach(element => {
this.dataSource.push(new WzClass(element))
});
Logger.info('数量是' + JSON.stringify(this.dataSource))
}
@Builder container() {
Column() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.checked(true)
.onChange((isChecked: boolean) => {
this.radioChecked = isChecked
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成').margin({ left: 20 })
Radio({ value: 'Radio2', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
}
}
@Builder exportContainer() {
Column() {
Text('请选择导出单据模式')
}.height(40)
}
dialogController: CustomDialogController = new CustomDialogController({
builder: SetStatusDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.container
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
try{
this.checkedList.forEach(async (element)=>{
let num = await wzcrkModel.updateWzcrkWczt(element, (this.radioChecked == undefined || this.radioChecked ? '已完成' : '未完成'))
if(num) {
this.dataSource.splice(this.dataSource.findIndex(i => i.guid == element), 1)
}
})
}catch(e){
}finally{
this.checkedList = []
}
}
exportDialogController: CustomDialogController = new CustomDialogController({
builder: ExportOrderDialog({
cancel: this.onExportCancel,
confirm: this.onExportSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.exportContainer
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onExportCancel() {
}
onExportSubmit() {
this.checkedList.forEach(async element => {
let res = await ViewdrdcModel.queryExport({guid: element, wczt: '已完成', pzlx: '17'})
const jhguidArr = res.map((item) => item.guid)
if (jhguidArr && jhguidArr.length > 0) {
const date = dateUtils.formatDateTime(new Date(), 'before')
const newArr = [...new Set(jhguidArr)]
const exportData = newArr.map((item) => {
let newObj = {}
let ItemData = []
res.forEach((Item) => {
if (item == Item.guid) {
ItemData.push({
jhmxguid: Item.jhmxguid,
hwh: Item.hwh,
pmdmcode: Item.pmdmcode,
wzdm: Item.wzdm,
pzsl: Item.pzsl || 0,
sjsl: Item.crksl || 0
})
}
})
const [filterData] = res.filter((fItem) => fItem
.guid == item)
if (filterData) {
newObj = {
cbdwdm: filterData.ckdwguid,
ckkfdm: filterData.kfdm,
...filterData,
crksl: ItemData.map(i => i.sjsl).reduce((a, b) => {
return a + b
},0),
scjid: "863576927543400,863576927543400",
cjmc: "普华",
imei: "863576927543400,863576927543400",
model: "ax6737_65_n",
vendor: "alps",
dcsj: date,
pzmx: ItemData
}
}
return newObj
})
const exportForm = {
pzzbJson: exportData,
crklx: '11111CRKLX2',
gznd: '2023',
jsdwguid: 1,
}
await importData(exportForm)
}
})
promptAction.showDialog({
title: '提示',
message: '入库作业单据已同步至业务系统,请以保管员身份登录业务系统,在菜单“作业项目--物资入库”里刷新查看。',
buttons: [{
text: '已知晓',
color: '#0fa983',
}],
})
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(16)
.lineHeight(22)
.margin({ top: 17, bottom: 7 })
Divider()
.strokeWidth(2)
.color('#fff')
.width(50)
.opacity(this.currentIndex === index ? 1 : 0)
}.width('100%')
}
@Builder renderEmpty() {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() {
Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
}
}.height('70%')
}
@Builder bottomButtons() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("设置状态")
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else {
// if (this.dialogController != undefined) {
// this.dialogController.open()
// }
}
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("导出数据包")
.visibility(this.currentIndex === 1 ? Visibility.Visible : Visibility.None)
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else if (this.dataSource.filter(i => i.wczt == '未完成').length > 0) {
promptAction.showToast({
message: '请选择已完成的单据'
})
} else {
// if (this.exportDialogController != undefined) {
// this.exportDialogController.open()
// }
}
}).fontColor("#0fa983") .fontSize("14vp")
Button("全选")
.bottomBtnSty().fontColor("#0fa983") .fontSize("14vp")
.onClick(() => {
this.checkedList = this.dataSource.map((item) => item.guid)
})
Button("清空选择")
.bottomBtnSty()
.onClick(() => {
this.checkedList = []
}).fontColor("#0fa983") .fontSize("14vp")
}
}.height(80)
}
build(){
Column() {
Flex({direction:FlexDirection.Column}){
TitleBar({ title:"物资盘库" })
Row(){
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Search({ placeholder: '请输入凭证号', controller: this.searchcontroller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.textAlign(TextAlign.Center)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.width('100%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
this.searchData.pzh = value
this.getWzcrkList()
})
.borderRadius(5)
}
}.width("100%")
.padding('15vp')
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#00CB87')
}.tabBar(this.TabBuilder(0, '未完成'))
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#007DFF')
}.tabBar(this.TabBuilder(1, '已完成'))
}
.height(80)
.margin({top:-15})
.onChange((index: number) => {
this.currentIndex = index
this.getWzcrkList()
})
// 列表
Column() {
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
List({ space: 2 }) {
ForEach(this.dataSource, (item) => {
ListItem() {
WzList({ item, checkedList: $checkedList }).width('100%').backgroundColor('#fff')
}.onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzInvPage/WzInvDetail/WzInvDetail', params: {
wzcrk: item
} },)
})
})
}.padding(18)
}
}.flexGrow(1).alignSelf(ItemAlign.Center)
Row(){
// 底部按钮
this.bottomButtons();
}.backgroundColor("#97c6a6").width("100%").height(80)
}
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzReversePage/WzReverseDetailPage/WzReverseDetailPage.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../../view/title/TitleBar'
import router from '@ohos.router';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzInfo } from '../../WzInPage/WzinDetail/WzInfo'
import { PzInfo } from '../../WzInPage/WzinDetail/PzInfo'
import {AddWzin} from '../../WzInPage/WzinDetail/AddWzin'
import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import bzhxModel from '../../../../model/BzhxModel';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import { uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#97c6a6')
.fontColor('#fff')
.borderRadius(5)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface params {
wzcrk: Wzcrk,
isUpdate: boolean
}
@Entry
@Component
struct WzReverseDetailPage{
@State fontColor: string = '#0FA983'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细
private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
onPageShow() {
const params = router.getParams() as params
this.isUpdate = params.isUpdate
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
}
// 获取凭证信息
async getDetail(wzpm?) {
this.wzmx = []
const res = await wzcrkmxModel.query(this.wzcrk.guid, wzpm)
res.forEach(i => {
// @ts-ignore
this.wzmx.push(new WzmxClass(i))
})
Logger.info('接收到出入库物资明细信息>>', JSON.stringify(res))
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(21)
.lineHeight(36)
}
.width('100%')
.height(45)
.border({ width: 2, color: 'rgb(15, 169, 131)' })
.borderRadius(3)
.backgroundColor(this.currentIndex === index ? this.fontColor : '#00000000')
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "凭证详情" })
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
Column() {
if(this.isUpdate) {
PzInfo({ wzcrk: this.wzcrk })
} else {
AddWzin({ wzcrk: this.wzcrk })
}
}.width("100%")
}.tabBar(this.TabBuilder(0, '凭证信息'))
TabContent() {
Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
.margin({ left: 15, right: 15, top: 15 })
.onChange((index: number) => {
this.currentIndex = index
})
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("保存").CommonButtonStyle().width("100%")
.onClick(async () => {
try {
Logger.info('保存的入库明细数据>>', JSON.stringify(this.wzmx))
if(this.isUpdate) {
await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
dec: this.wzcrk.dec,
ydh: this.wzcrk.ydh,
})
}
else {
this.wzcrk.guid = uuid()
this.wzcrk.gznd = new Date().getFullYear() + ''
this.wzcrk.sjlx = '新建'
await wzcrkModel.setOne(this.wzcrk)
Logger.info('添加的入库数据>>', JSON.stringify(this.wzcrk))
}
// for (let index = 0; index < this.wzmx.length; index++) {
// const element = this.wzmx[index];
// try {
// Logger.error(this, '更新数据参数' + JSON.stringify({
// 'guid': element.guid,
// 'crksl': element.crksl
// }))
// let val1 = await this.wzcrkmxDao.update({ 'guid': element.guid, 'crksl': element.crksl } as Wzcrkmx)
// Logger.error(this, '更新查询的入库数据>>' + JSON.stringify(val1));
// } catch (e) {
// Logger.error(this, '保存失败了>>' + JSON.stringify(e))
// }
// }
//
// const crksl = this.wzmx.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
//
// await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
// dec: this.wzcrk.dec,
// ydh: this.wzcrk.ydh,
// crksl
// })
//
promptAction.showToast({
message: '保存入库数据成功',
bottom: 300
})
setTimeout(() => {
router.replaceUrl({ url: 'pages/metailmange/WzInPage/WzInPage' })
}, 300)
} catch (e) {
promptAction.showToast({
message: '保存入库数据失败',
bottom: 200
})
}
})
}
}.margin({ left: 10, right: 10 }).height(80)
}.width("100%")
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzReversePage/WzReversePage.ets
0 → 100644
View file @
98758423
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router';
import wzcrkModel from '../../../model/WzcrkModel';
import { Logger } from '@ohos/common';
import { WzClass } from '../Common/Wzcrk.data';
import { WzList } from '../Common/WzcrkList';
import promptAction from '@ohos.promptAction';
import { SetStatusDialog } from '../../../view/SetStatusDialog/SetStatusDialog';
import { dateUtils } from '@ohos/common/src/main/ets/utils/util';
import ViewdrdcModel from '../../../model/ViewdrdcModel';
import { importData } from '../Common/Wzcrk.api';
import { ExportOrderDialog } from '../../../view/ExportOrderDialog/ExportOrderDialog';
@Extend(Button) function bottomBtnSty() {
.borderWidth(1)
.padding({top:1,bottom:1,right:7,left:7})
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface SearchData {
pzh?: string;
wczt?: string;
}
@Entry
@Component
struct WzReversePage{
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State dataSource: WzClass[] = []
@State checkedList: Array<string> = []
@State radioChecked: boolean = true
@State searchData: SearchData = {
pzh: '',
wczt: '未完成'
}
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
@State page: number = 1
@State rows: number = 10
@State sjlx: string = "0"
@State wczt: string = ""
@State pzh: string = ""
aboutToAppear() {
this.getWzcrkList()
}
async getWzcrkList(qzh?: number, wczt?: string) {
this.dataSource = []
const res = await wzcrkModel.query({
pzlx: "19",
pzh: Number(this.searchData.pzh),
wczt: this.currentIndex === 0 ? "未完成" : "已完成" })
res.forEach(element => {
this.dataSource.push(new WzClass(element))
});
Logger.info('数量是' + JSON.stringify(this.dataSource))
}
@Builder container() {
Column() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.checked(true)
.onChange((isChecked: boolean) => {
this.radioChecked = isChecked
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成').margin({ left: 20 })
Radio({ value: 'Radio2', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
}
}
@Builder exportContainer() {
Column() {
Text('请选择导出单据模式')
}.height(40)
}
dialogController: CustomDialogController = new CustomDialogController({
builder: SetStatusDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.container
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
try{
this.checkedList.forEach(async (element)=>{
let num = await wzcrkModel.updateWzcrkWczt(element, (this.radioChecked == undefined || this.radioChecked ? '已完成' : '未完成'))
if(num) {
this.dataSource.splice(this.dataSource.findIndex(i => i.guid == element), 1)
}
})
}catch(e){
}finally{
this.checkedList = []
}
}
exportDialogController: CustomDialogController = new CustomDialogController({
builder: ExportOrderDialog({
cancel: this.onExportCancel,
confirm: this.onExportSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.exportContainer
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onExportCancel() {
}
onExportSubmit() {
this.checkedList.forEach(async element => {
let res = await ViewdrdcModel.queryExport({guid: element, wczt: '已完成', pzlx: '17'})
const jhguidArr = res.map((item) => item.guid)
if (jhguidArr && jhguidArr.length > 0) {
const date = dateUtils.formatDateTime(new Date(), 'before')
const newArr = [...new Set(jhguidArr)]
const exportData = newArr.map((item) => {
let newObj = {}
let ItemData = []
res.forEach((Item) => {
if (item == Item.guid) {
ItemData.push({
jhmxguid: Item.jhmxguid,
hwh: Item.hwh,
pmdmcode: Item.pmdmcode,
wzdm: Item.wzdm,
pzsl: Item.pzsl || 0,
sjsl: Item.crksl || 0
})
}
})
const [filterData] = res.filter((fItem) => fItem
.guid == item)
if (filterData) {
newObj = {
cbdwdm: filterData.ckdwguid,
ckkfdm: filterData.kfdm,
...filterData,
crksl: ItemData.map(i => i.sjsl).reduce((a, b) => {
return a + b
},0),
scjid: "863576927543400,863576927543400",
cjmc: "普华",
imei: "863576927543400,863576927543400",
model: "ax6737_65_n",
vendor: "alps",
dcsj: date,
pzmx: ItemData
}
}
return newObj
})
const exportForm = {
pzzbJson: exportData,
crklx: '11111CRKLX2',
gznd: '2023',
jsdwguid: 1,
}
await importData(exportForm)
}
})
promptAction.showDialog({
title: '提示',
message: '入库作业单据已同步至业务系统,请以保管员身份登录业务系统,在菜单“作业项目--物资入库”里刷新查看。',
buttons: [{
text: '已知晓',
color: '#0fa983',
}],
})
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(16)
.lineHeight(22)
.margin({ top: 17, bottom: 7 })
Divider()
.strokeWidth(2)
.color('#fff')
.width(50)
.opacity(this.currentIndex === index ? 1 : 0)
}.width('100%')
}
@Builder renderEmpty() {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() {
Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
}
}.height('70%')
}
@Builder bottomButtons() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("设置状态")
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else {
// if (this.dialogController != undefined) {
// this.dialogController.open()
// }
}
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("导出数据包")
.visibility(this.currentIndex === 1 ? Visibility.Visible : Visibility.None)
.bottomBtnSty()
.onClick(() => {
if (this.checkedList.length == 0) {
promptAction.showToast({
message: '请至少选择一条单据'
})
} else if (this.dataSource.filter(i => i.wczt == '未完成').length > 0) {
promptAction.showToast({
message: '请选择已完成的单据'
})
} else {
// if (this.exportDialogController != undefined) {
// this.exportDialogController.open()
// }
}
}).fontColor("#0fa983") .fontSize("14vp")
Button("全选")
.bottomBtnSty().fontColor("#0fa983") .fontSize("14vp")
.onClick(() => {
this.checkedList = this.dataSource.map((item) => item.guid)
})
Button("清空选择")
.bottomBtnSty()
.onClick(() => {
this.checkedList = []
}).fontColor("#0fa983") .fontSize("14vp")
}
}.height(80)
}
build(){
Column() {
Flex({direction:FlexDirection.Column}){
TitleBar({ title:"物资倒库" })
Row(){
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Search({ placeholder: '请输入凭证号', controller: this.searchcontroller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.textAlign(TextAlign.Center)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.width('100%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
this.searchData.pzh = value
this.getWzcrkList()
})
.borderRadius(5)
}
}.width("100%")
.padding('15vp')
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#00CB87')
}.tabBar(this.TabBuilder(0, '未完成'))
TabContent() {
// Column().width('100%').height('100%').backgroundColor('#007DFF')
}.tabBar(this.TabBuilder(1, '已完成'))
}
.height(80)
.margin({top:-15})
.onChange((index: number) => {
this.currentIndex = index
this.getWzcrkList()
})
// 列表
Column() {
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
List({ space: 2 }) {
ForEach(this.dataSource, (item) => {
ListItem() {
WzList({ item, checkedList: $checkedList }).width('100%').backgroundColor('#fff')
}.onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzReversePage/WzReverseDetailPage/WzReverseDetailPage', params: {
wzcrk: item
} },)
})
})
}.padding(18)
}
}.flexGrow(1).alignSelf(ItemAlign.Center)
Row(){
// 底部按钮
this.bottomButtons();
}.backgroundColor("#97c6a6").width("100%").height(80)
}
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/resources/base/profile/main_pages.json
View file @
98758423
...
@@ -7,12 +7,18 @@
...
@@ -7,12 +7,18 @@
"pages/metailmange/WzInPage/WzInPage"
,
"pages/metailmange/WzInPage/WzInPage"
,
"pages/metailmange/WzOutPage/WzOutPage"
,
"pages/metailmange/WzOutPage/WzOutPage"
,
"pages/metailmange/WzExchangePage"
,
"pages/metailmange/WzExchangePage"
,
"pages/metailmange/WzExchangePage/WzExchangeDetailPage/WzExchangeDetailPage"
,
"pages/metailmange/WzExchangePage/WzExchangePage"
,
"pages/metailmange/WzConversionPage"
,
"pages/metailmange/WzConversionPage"
,
"pages/metailmange/WzInvPage"
,
"pages/metailmange/WzInvPage"
,
"pages/metailmange/WzInvPage/WzInvPage"
,
"pages/metailmange/WzInvPage/WzInvDetail/WzInvDetail"
,
"pages/metailmange/WzInPage/WzInPage"
,
"pages/metailmange/WzInPage/WzInPage"
,
"pages/metailmange/WzInPage/WzinDetail/WzinDetail"
,
"pages/metailmange/WzInPage/WzinDetail/WzinDetail"
,
"pages/metailmange/WzPositionPage"
,
"pages/metailmange/WzPositionPage"
,
"pages/metailmange/WzReversePage"
,
"pages/metailmange/WzReversePage"
,
"pages/metailmange/WzReversePage/WzReverseDetailPage/WzReverseDetailPage"
,
"pages/metailmange/WzReversePage/WzReversePage"
,
"pages/metailmange/AddConversionPage"
,
"pages/metailmange/AddConversionPage"
,
"pages/metailmange/AddTemporaryInPage"
,
"pages/metailmange/AddTemporaryInPage"
,
"pages/metailmange/AddTemporaryOutPage"
,
"pages/metailmange/AddTemporaryOutPage"
,
...
...
features/MaterialManagement/src/main/ets/components/MaterialManagement.ets
View file @
98758423
...
@@ -91,17 +91,17 @@ export struct MaterialManagement {
...
@@ -91,17 +91,17 @@ export struct MaterialManagement {
break;
break;
case "exchange":
case "exchange":
router.pushUrl({
router.pushUrl({
url: "pages/metailmange/WzExchangePage",
url: "pages/metailmange/WzExchangePage
/WzExchangePage
",
})
})
break;
break;
case "reverse":
case "reverse":
router.pushUrl({
router.pushUrl({
url: "pages/metailmange/WzReversePage",
url: "pages/metailmange/WzReversePage
/WzReversePage
",
})
})
break;
break;
case "inv":
case "inv":
router.pushUrl({
router.pushUrl({
url: "pages/metailmange/WzInvPage",
url: "pages/metailmange/WzInvPage
/WzInvPage
",
})
})
break;
break;
case "conversion":
case "conversion":
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论