Commit f7c16fe1 by 陈桂东

单据列表

parent 30f3acec
......@@ -10,11 +10,14 @@ export {GldwDao} from './src/main/ets/db/dao/GldwDao';
export {HjInfoDao} from './src/main/ets/db/dao/HjInfoDao';
export {HwInfoDao} from './src/main/ets/db/dao/HwInfoDao';
export {BzhxDao} from './src/main/ets/db/dao/BzhxDao';
export {DrInfoDao} from './src/main/ets/db/dao/DrInfoDao';
export {QyInfoDao} from './src/main/ets/db/dao/QyInfoDao';
export {KfInfoDao} from './src/main/ets/db/dao/KfInfoDao';
export {WzcrkDao} from './src/main/ets/db/dao/WzcrkDao';
export {WzcrkmxDao} from './src/main/ets/db/dao/WzcrkmxDao';
export {BgglDao} from './src/main/ets/db/dao/BgglDao';
export {HwInfo} from './src/main/ets/entity/HwInfo'
export {Bggl} from './src/main/ets/entity/Bggl'
export {Bzhx} from './src/main/ets/entity/Bzhx'
export {KfInfo} from './src/main/ets/entity/KfInfo'
export {QyInfo} from './src/main/ets/entity/QyInfo'
......@@ -24,5 +27,7 @@ export {WzdmDao} from './src/main/ets/db/dao/WzdmDao';
export {WzhxdmDao} from './src/main/ets/db/dao/WzhxdmDao';
export {Wzdm} from './src/main/ets/entity/Wzdm';
export {Wzhxdm} from './src/main/ets/entity/Wzhxdm';
export {DrInfo} from './src/main/ets/entity/DrInfo';
export {Wzcrk} from './src/main/ets/entity/Wzcrk';
export {Wzcrkmx} from './src/main/ets/entity/Wzcrkmx';
\ No newline at end of file
export {Wzcrkmx} from './src/main/ets/entity/Wzcrkmx';
export {pzlx_dict} from './src/main/ets/utils/dict';
\ No newline at end of file
......@@ -76,9 +76,9 @@ export default abstract class BaseTable<T> implements ITable {
async clearTable(): Promise<void> {
let db = await this.futureDb;
try {
db.beginTransaction();
await db.executeSql("delete from " + this.tableName);
await db.executeSql("update sqlite_sequence SET seq = 0 where name ='" + this.tableName + "'")
// db.beginTransaction();
await db.executeSql(`delete from ${this.tableName}`);
// await db.executeSql("update sqlite_sequence SET seq = 0 where name ='" + this.tableName + "'")
} catch (e) {
Logger.error(this, "清空表失败:", e);
db.rollBack();
......
......@@ -42,4 +42,11 @@ export class DrInfoDao extends BaseTable<DrInfo> {
return import_sql;
}
/**
* 查询导入列表
*/
getDrList(): Promise<DrInfo[]> {
let wp = this.getPredicates();
return this.query(wp, this.getTableColumns());
}
}
\ No newline at end of file
......@@ -52,10 +52,10 @@ export class GldwDao extends BaseTable<Gldw> {
*/
getGldwList(offset: number, dwmc?: string): Promise<Gldw[]> {
let wp = this.getPredicates();
wp.orderByAsc('DWDM').offsetAs(offset).limitAs(20);
if (dwmc) {
wp.like('DWFH', `%${dwmc}%`)
}
wp.orderByAsc('DWDM').offsetAs(offset).limitAs(20);
return this.query(wp, this.getTableColumns());
}
}
\ No newline at end of file
/**
* 管理单位信息
* 包裹信息
*/
export interface Bggl {
guid?: string,
......
......@@ -12,8 +12,10 @@
// return time
// }
//
// // @ts-ignore
// var hour = parseInt(time / 3600)
// time = time % 3600
// // @ts-ignore
// var minute = parseInt(time / 60)
// time = time % 60
// var second = time
......
import { BgglDao, SQLiteContext, Bggl } from '@ohos/common'
// 包裹管理
class BgglModel {
// 添加包裹
async set(data: Bggl[]) {
await SQLiteContext.with(BgglDao).batchInsert(data)
}
// 查询包裹
async query(ddh?: string):Promise<Bggl[]> {
let res = await SQLiteContext.with(BgglDao).getDdh(ddh);
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(BgglDao).clearTable()
}
}
const bgglModel = new BgglModel()
export default bgglModel
\ No newline at end of file
......@@ -33,6 +33,11 @@ class BzhxModel {
let res = await SQLiteContext.with(WzhxdmDao).selectHXList(sql);
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(WzhxdmDao).clearTable()
}
}
const bzhxModel = new BzhxModel()
......
import { DrInfo, SQLiteContext, DrInfoDao } from '@ohos/common'
import { uuid, dateUtils } from '@ohos/common/src/main/ets/utils/util'
// 导入
class DrModel {
// 添加导入
async set(filename: string) {
const obj = {
filename,
guid: uuid(),
filetype: null,
size: null,
time: dateUtils.formatDateTime(new Date(), 'all')
}
await SQLiteContext.with(DrInfoDao).insert(obj)
}
// 查询导入
async query(): Promise<DrInfo[]> {
let res = await SQLiteContext.with(DrInfoDao).getDrList()
return res;
// return res;
}
// 清空表
async clear() {
await SQLiteContext.with(DrInfoDao).clearTable()
}
}
const drModel = new DrModel()
export default drModel
\ No newline at end of file
......@@ -13,6 +13,11 @@ class GldwModel {
let res = await SQLiteContext.with(GldwDao).getGldwList(offset, dwmc)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(GldwDao).clearTable()
}
}
const gldwModel = new GldwModel()
......
......@@ -12,6 +12,11 @@ class HjModel {
let res = await SQLiteContext.with(HjInfoDao).getHjList(no);
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(HjInfoDao).clearTable()
}
}
const hjModel = new HjModel()
......
......@@ -12,6 +12,11 @@ class HwModel {
let res = await SQLiteContext.with(HwInfoDao).getHwList(no)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(HwInfoDao).clearTable()
}
}
const hwModel = new HwModel()
......
......@@ -12,6 +12,11 @@ class KfModel {
let res = await SQLiteContext.with(KfInfoDao).getKf(kfmc)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(KfInfoDao).clearTable()
}
}
const kfModel = new KfModel()
......
......@@ -12,6 +12,11 @@ class QyModel {
let res = await SQLiteContext.with(QyInfoDao).getQy(qydm)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(QyInfoDao).clearTable()
}
}
const qyModel = new QyModel()
......
......@@ -5,6 +5,7 @@ import wzcrkmxModel from './WzcrkmxModel';
class WzcrkModel {
// 添加
async set(data: Wzcrk[]) {
for (let index = 0; index < data.length; index++) {
const wzcrk = data[index];
const wzcrkmx = data[index].jhmx;
......@@ -19,6 +20,11 @@ class WzcrkModel {
let res = await SQLiteContext.with(WzcrkDao).getWzcrk(crklx)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(WzcrkDao).clearTable()
}
}
const wzcrkModel = new WzcrkModel()
......
......@@ -12,6 +12,11 @@ class WzcrkmxModel {
let res = await SQLiteContext.with(WzcrkmxDao).getWzcrkmx(wzcrkguid)
return res;
}
// 清空表
async clear() {
await SQLiteContext.with(WzcrkmxDao).clearTable()
}
}
const wzcrkmxModel = new WzcrkmxModel()
......
import { WzinClass } from './Wzin.data'
import { pzlx_dict } from '@ohos/common'
@Component
export struct WzInList {
@ObjectLink item: WzinClass
renderPzlx(pzlx) {
return pzlx_dict.find(v => v.value == pzlx).text
}
build() {
Column() {
Row() {
Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
.selectedColor('#007DFF')
.onChange((value: boolean) => {
console.info('Checkbox1 change is' + value)
}).margin({ right: 10, left: 10 })
Column() {
Text(this.item.crkrq).alignSelf(ItemAlign.Start).width("30%")
Text(this.renderPzlx(this.item.pzlx)).alignSelf(ItemAlign.Start).width("30%").margin({ top: 5 })
}
Column() {
Row() {
Text('凭证号: ')
Text(this.item.pzh + '')
}.alignSelf(ItemAlign.Start).padding({ top: 8, bottom: 8 })
Row() {
if(this.item.crksl < this.item.pzsl) {
Text("数量: ")
Text(this.item.crksl + '').fontColor('#ff3d43')
Text('/').fontColor('#ff3d43')
Text(this.item.pzsl + '').fontColor('#ff4aff3d')
}
else {
Text("数量: ")
Text(this.item.crksl + '').fontColor('#28bf1d')
Text('/').fontColor('#28bf1d')
Text(this.item.pzsl + '').fontColor('#28bf1d')
}
}.alignSelf(ItemAlign.Start)
}.width("30%").padding({ top: 8, bottom: 8 })
Row() {
if(this.item.wczt == '1') {
Text("状态: ")
Text( "完成").fontColor('#ff3d43')
}
else {
Text("状态:")
Text("未完成").fontColor('#28bf1d')
}
}
}.margin({ top: 10 }).border({ width: { bottom: '1lpx' }, color: "#717171" })
}.width('100%').height('100%')
}
}
\ No newline at end of file
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router';
import { WzInList } from './WzInList';
import { BasicDialog } from '../../../view/BasicDialog/BasicDialog';
import wzcrkModel from '../../../model/WzcrkModel';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { WzinClass } from './Wzin.data'
@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)
}
@Entry
@Component
export struct WzInPage {
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State dataSource: WzinClass[] = []
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
itemClick() {
router.pushUrl({ url: 'pages/order_detail/PzInOutDetailPage' })
}
aboutToAppear() {
this.getWzcrkList()
}
async getWzcrkList(qzh?: number) {
const res = await wzcrkModel.query('2', qzh)
Logger.info('出入库数据>>:', JSON.stringify(res))
Logger.info('出入库数据长度>>:', JSON.stringify(res.length))
for (let index = 0; index < res.length; index++) {
const element = res[index];
this.dataSource.push(new WzinClass(element))
}
}
@Builder container() {
Column() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
console.log('Radio1 status is ' + isChecked)
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
console.log('Radio1 status is ' + isChecked)
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
}
}
dialogController: CustomDialogController = new CustomDialogController({
builder: BasicDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
title: '设置状态',
container: this.container
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
offset: { dx: 0, dy: -20 },
gridCount: 4,
customStyle: false
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
console.info('------确认------')
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(16)
.lineHeight(22)
.margin({ bottom: 7 })
Divider()
.strokeWidth(2)
.color('#fff')
.width(50)
.opacity(this.currentIndex === index ? 1 : 0)
}.width('100%')
}
@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/AddTemporaryInPage",
})
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("设置状态")
.bottomBtnSty()
.onClick(() => {
if (this.dialogController != undefined) {
this.dialogController.open()
}
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("导出数据包")
.bottomBtnSty()
.onClick(() => {
}).fontColor("#0fa983").fontSize("14vp")
// Button("全选")
// .bottomBtnSty().fontColor("#0fa983") .fontSize("14vp")
Button("清空选择")
.bottomBtnSty()
.onClick(() => {
}).fontColor("#0fa983").fontSize("14vp")
}
}.height(80)
}
@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%')
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "物资入库" })
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)
.onChange((index: number) => {
this.currentIndex = index
})
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('60%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
})
.borderRadius(5)
Select([{ value: "未完成" }, { value: "已完成" }])
.value('请选择状态')
.borderWidth(1)
.borderRadius(6)
.height(42)
.margin({ left: 10 })
.borderColor("#454545")
.onSelect(async (index: number, value?: string) => {
if (value == '未完成') {
console.log("未完成", '未完成')
} else {
console.log("已完成", '已完成')
}
})
.width(120)
.padding({
right: 15
})
}
}.margin({ top: -20 })
.width("100%")
.padding('15vp')
// 列表
Column() {
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
CheckboxGroup({ group: 'checkboxGroup' })
.selectedColor('#007DFF')
.onChange((itemName: CheckboxGroupResult) => {
console.info("checkbox group content" + JSON.stringify(itemName))
})
Text("全选").margin({ left: 10 })
}.margin({ bottom: -15, left: 8 }).backgroundColor('#fff').zIndex(999).width('90%')
ForEach(this.dataSource, (item) => {
WzInList({ item }).width('90%').backgroundColor('#fff')
})
}
}.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
@Observed
export class WzinClass {
guid?: string
/**
* 工作年度
*/
gznd: string
/**
* 出入库日期
*/
crkrq: string
/**
* 仓库单位编号
*/
ckdwguid: string
/**
* 操作人
*/
czr: string
/**
* 确认状态:字典(确认、未确认)
*/
qrzt: string
/**
* 出入库类型:字典(CRKLX)
*/
crklx: string
/**
* 凭证主表GUID
*/
pzzbguid: string
/**
* 凭证类型 收物单,发物单,倒库单,价拨单,调号单
*/
pzlx: string
/**
* 凭证号
*/
pzh: number
/**
* 数据类型 导入/新建
*/
sjlx: string
/**
* 收支类型
*/
pzszlx: string
/**
* 收发单位
*/
sfdw: string
/**
* 完成状态 完成、未完成
*/
wczt: string
/**
* 库房代码
*/
kfdm: string
/**
* 入库库房代码
*/
rkkfdm: string
/**
* 凭证数量
*/
pzsl: number
/**
* 出入库数量
*/
crksl: number
/**
* 运单号
*/
ydh: string
/**
* 发物管理单位代码
*/
fwgldwdm: string
/**
* 收物管理单位代码
*/
swgldwdm: string
/**
* 库房GUID
*/
kfguid: string
/**
* 账目类型
*/
zmlx: string
/**
*
*/
bdguid: string
/**
* 备注
*/
dec: string
constructor(data: {
gznd: string;
crkrq: string;
ckdwguid: string;
czr: string;
qrzt: string;
crklx: string;
pzzbguid: string;
pzlx: string;
sjlx: string;
pzszlx: string;
sfdw: string;
wczt: string;
kfdm: string;
rkkfdm: string;
ydh: string;
fwgldwdm: string;
swgldwdm: string;
kfguid: string;
zmlx: string;
bdguid: string;
dec: string;
guid?: string;
pzh?: number;
pzsl?: number;
crksl?: number;
}) {
this.guid = data.guid;
this.gznd = data.gznd;
this.crkrq = data.crkrq;
this.ckdwguid = data.ckdwguid;
this.czr = data.czr;
this.qrzt = data.qrzt;
this.crklx = data.crklx;
this.pzzbguid = data.pzzbguid;
this.pzlx = data.pzlx;
this.pzh = data.pzh;
this.sjlx = data.sjlx;
this.pzszlx = data.pzszlx;
this.sfdw = data.sfdw;
this.wczt = data.wczt;
this.kfdm = data.kfdm;
this.rkkfdm = data.rkkfdm;
this.pzsl = data.pzsl;
this.crksl = data.crksl;
this.ydh = data.ydh;
this.fwgldwdm = data.fwgldwdm;
this.swgldwdm = data.swgldwdm;
this.kfguid = data.kfguid;
this.zmlx = data.zmlx;
this.bdguid = data.bdguid;
this.dec = data.dec;
}
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ import { TitleBar } from '../../../view/title/TitleBar'
import { TipDialog } from '../../../view/TipDialog/TipDialog'
import { ListDialog } from './ListDialog'
import { listData, IProductName } from './sync.data'
import { getPmList, getBaseList, getDjList } from './sync.api'
import { getPmList, getBaseList, getDjList, getBgList, getLsqList } from './sync.api'
import { Bzhx } from '@ohos/common/src/main/ets/entity/Bzhx'
import bzhxModal from '../../../model/BzhxModel'
import kfModel from '../../../model/KfModel'
......@@ -14,6 +14,8 @@ import hwModel from '../../../model/HwModel'
import promptAction from '@ohos.promptAction'
import { Logger } from '@ohos/common/src/main/ets/utils/Logger'
import wzcrkModel from '../../../model/WzcrkModel'
import { Bggl } from '@ohos/common/src/main/ets/entity/Bggl'
import bgglModel from '../../../model/BgglModel'
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
......@@ -115,10 +117,7 @@ export struct Pmhx {
}
break;
case "单据导入":
try {
this.showProgress = true
const { rows } = await getDjList({})
......@@ -130,13 +129,51 @@ export struct Pmhx {
promptAction.showToast({
message: '同步数据失败'
})
} finally {
this.showProgress = false
}
break;
case "临时区库存":
try {
this.showProgress = true
const res = await getLsqList({})
// 获取临时区库存数据
const lsqData = JSON.parse(res)
await hwModel.set(lsqData)
promptAction.showToast({
message: '同步数据成功'
})
}catch (error) {
promptAction.showToast({
message: '同步数据失败'
})
} finally {
this.showProgress = false
}
break;
case "订单导入":
try {
this.showProgress = true
const res = await getBgList({})
// 获取包裹数据
const bgData = JSON.parse(res) as Bggl[]
await bgglModel.set(bgData)
promptAction.showToast({
message: '同步数据成功'
})
}catch (error) {
promptAction.showToast({
message: '同步数据失败'
})
} finally {
this.showProgress = false
}
break;
case "删除表结构":
if (this.dialogController != undefined) {
this.content = '是否确定清除数据并删除表结构'
......
import wzcrkModel from '../../../model/WzcrkModel'
import wzcrkmxModel from '../../../model/WzcrkmxModel'
import { TipDialog } from '../../../view/TipDialog/TipDialog'
import { itemData } from './sync.data'
import promptAction from '@ohos.promptAction'
import bgglModel from '../../../model/BgglModel'
import { getBzhxSql } from '../../../sql/compoent/import'
import bzhxModel from '../../../model/BzhxModel'
import qyModel from '../../../model/QyModel'
import kfModel from '../../../model/KfModel'
import hwModel from '../../../model/HwModel'
import hjModel from '../../../model/HjModel'
import gldwModel from '../../../model/GldwModel'
@CustomDialog
@Component
......@@ -24,8 +35,69 @@ export struct ListDialog {
console.log("onCancel")
}
onSubmit() {
console.log("onSubmit")
async onSubmit(content: string) {
switch (content) {
case '是否确定清除基础数据':
try {
qyModel.clear();
kfModel.clear();
hwModel.clear();
hjModel.clear();
gldwModel.clear();
promptAction.showToast({
message: '清除基础数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除基础数据失败'
})
}
case '是否确认清除单据数据':
try {
wzcrkModel.clear()
wzcrkmxModel.clear()
promptAction.showToast({
message: '清除单据数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除单据数据失败'
})
}
break;
case '是否确认清除包裹数据':
try {
bgglModel.clear()
promptAction.showToast({
message: '清除包裹数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除包裹数据失败'
})
}
break;
case '是否确认清除品名及号型数据':
try {
bzhxModel.clear()
promptAction.showToast({
message: '清除品名及号型数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除品名及号型数据失败'
})
}
break;
default:
break;
}
}
handleClick(item) {
......
......@@ -3,7 +3,9 @@ import defHttp from "@ohos/common/src/main/ets/utils/HttpUtil"
enum Api {
pmList = '/api/integrate/knzy/infrastructurePm',
baseList = '/api/integrate/knzy/infrastructure',
djList = '/api/integrate/knzy/billOfDocument2'
djList = '/api/integrate/knzy/billOfDocument2',
bgList = '/api/integrate/knzy/enwrap',
lshList = '/api/integrate/knzy/intiRepertory'
}
// 获取品名信息
......@@ -13,4 +15,10 @@ export const getPmList = (data) => defHttp.post({url: Api.pmList, data})
export const getBaseList = (data) => defHttp.post({url: Api.baseList, data})
// 获取单据信息
export const getDjList = (data) => defHttp.post({url: Api.djList, data})
\ No newline at end of file
export const getDjList = (data) => defHttp.post({url: Api.djList, data})
// 获取包裹
export const getBgList = (data) => defHttp.post({url: Api.bgList, data})
// 获取临时区库存
export const getLsqList = (data) => defHttp.post({url: Api.lshList, data})
\ No newline at end of file
......@@ -2,22 +2,33 @@ import bzhxModal from '../../../model/BzhxModel'
import { BasicTable } from '../../../view/BasicTable/BasicTable'
import { TitleBar } from '../../../view/title/TitleBar'
import { Bzhx, Logger } from '@ohos/common'
import {pmhxList} from './pmhxList'
import { pmhxList } from './pmhxList'
@Entry
@Component
export struct Pmhx {
@State dataSource: Bzhx[] = []
controller: SearchController = new SearchController()
@State offsetNumber: number = 0
@State finished: boolean = false
@State pmdmsix: string = ''
controller: SearchController = new SearchController()
aboutToAppear(){
this.getUnitList()
aboutToAppear() {
this.getPmhxList()
}
async getUnitList(pmdmsix?: string) {
const res = await bzhxModal.query(this.offsetNumber * 20, pmdmsix)
async getPmhxList() {
const res = await bzhxModal.query(this.offsetNumber * 20, this.pmdmsix)
if (res.length == 0) { // 如果数据库查到的数据是空数组,则告诉后面不需要再调了
this.finished = true
}
this.dataSource = [...this.dataSource, ...res]
this.offsetNumber++
}
clearData() {
this.dataSource = []
this.finished = false
this.offsetNumber = 0
}
build() {
......@@ -29,32 +40,47 @@ export struct Pmhx {
Column() {
Text('品名数量: 0个')
}
Column() {
Text('号型数量: 0个')
}
}
.width('100%').backgroundColor('#fff').height(52).borderRadius(5).padding({ left: 10, right: 10 })
.width('100%')
.backgroundColor('#fff')
.height(52)
.borderRadius(5)
.padding({ left: 10, right: 10 })
}
Row() {
Search({ placeholder: '请输入六位品名代码', controller: this.controller })
Search({ placeholder: '请输入六位品名代码', controller: this.controller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.onSubmit((value: string) => this.getUnitList(value))
.onSubmit((value: string) => {
this.clearData()
this.pmdmsix = value
this.getPmhxList()
})
.borderRadius(5)
.margin({top:15})
.margin({ top: 15 })
}
Column() {
pmhxList({dataSource: $dataSource,onScrollEdge: this.getUnitList})
pmhxList({
dataSource: $dataSource,
onScrollEdge: this.getPmhxList,
finished: $finished,
offsetNumber: $offsetNumber
})
}.flexGrow(1)
}
}.linearGradient({
direction: GradientDirection.RightBottom,
repeating: true,
colors: [['#36a3c0', 0.0], ['#97c6a6', 1.0], ['#c7d799', 2.0]]
}).padding({bottom:40,left:20,right:20})
}).padding({ bottom: 40, left: 20, right: 20 })
}
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ import { Bzhx } from '@ohos/common'
@Component
export struct pmhxList {
@Link dataSource: Bzhx[]
@Link finished: boolean
@Link offsetNumber: number
@Styles commonPadding() {
.padding({top:4, bottom:4})
.alignSelf(ItemAlign.Start)
......@@ -11,7 +13,6 @@ export struct pmhxList {
@Builder renderList() {
Column() {
Scroll() {
List(){
ForEach(this.dataSource, (item, index) => {
ListItem(){
......@@ -40,7 +41,13 @@ export struct pmhxList {
}
})
}.divider({strokeWidth:1,color:'505050'})
}.onScrollEdge(() => this.onScrollEdge())
.onScrollIndex((firstIndex: number, lastIndex: number) => {
if (!this.finished && this.dataSource.length == (lastIndex + 1) ) {
// 如果没完成并且划到最底部则调刷新数据接口
this.offsetNumber ++
this.onScrollEdge()
}
})
}.width('100%').height('100%').backgroundColor('#fff')
}
......
......@@ -9,21 +9,28 @@ export struct Unit {
@State dataSource: Gldw[] = []
@State offsetNumber: number = 0
@State finished: boolean = false
@State dwmc: string = ''
controller: SearchController = new SearchController()
aboutToAppear(){
this.getUnitList()
}
async getUnitList(dwmc?: string) {
async getUnitList() {
Logger.info('-------DEBUG-------: 起始' + this.offsetNumber)
const res = await gldwModal.query(this.offsetNumber * 20, dwmc)
const res = await gldwModal.query(this.offsetNumber * 20, this.dwmc)
if (res.length == 0) { // 如果数据库查到的数据是空数组,则告诉后面不需要再调了
this.finished = true
}
this.dataSource = [...this.dataSource, ...res]
}
clearData() {
this.dataSource = []
this.finished = false
this.offsetNumber = 0
}
scrollEvent() {
this.getUnitList()
Logger.info('-------DEBUG-------: 开始滑动' + this.offsetNumber)
......@@ -41,18 +48,22 @@ export struct Unit {
.placeholderColor(Color.Grey)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.onSubmit((value) => this.getUnitList(value))
.onSubmit((value) => {
this.clearData()
this.dwmc = value
this.getUnitList()
})
.borderRadius(5)
}.width('100%')
Column() {
UnitList({ dataSource: $dataSource, finished: $finished,offsetNumber: $offsetNumber, onScrollEdge: this.getUnitList })
}.margin({top:20}).borderRadius(2)
}.margin({top:20}).borderRadius(2).flexGrow(1)
}
}.linearGradient({
direction: GradientDirection.RightBottom,
repeating: true,
colors: [['#36a3c0', 0.0], ['#97c6a6', 1.0], ['#c7d799', 2.0]]
}).padding({bottom:40,left:20,right:20})
}).padding({left:20,right:20})
}
}
\ No newline at end of file
......@@ -16,23 +16,33 @@ export struct UnitList {
@Builder renderList() {
Column() {
Row() {
Text('单位代码')
.textAlign(TextAlign.Center)
.backgroundColor("#f6f6f6")
.padding({ top: 8, bottom: 8 })
.width('40%')
Text('单位名称')
.textAlign(TextAlign.Center)
.backgroundColor("#f6f6f6")
.padding({ top: 8, bottom: 8 })
.width('60%')
}
List({ space: 2, scroller: this.scroller }){
ForEach(this.dataSource, (item, index) => {
ListItem(){
Row() {
Column() {
Row(){
Text("单位代码:").commonPadding()
Text(item.dwdm).commonPadding()
}.margin({left:10})
}.width('45%')
}.width('40%')
Column() {
Row(){
Text("单位名称:").commonPadding()
Text(item.dwfh).commonPadding()
}
}.width('45%')
}.width('60%')
}.commonPadding()
}.borderRadius(4)
})
......@@ -44,7 +54,6 @@ export struct UnitList {
this.onScrollEdge()
}
})
}.width('100%').height('100%').backgroundColor('#fff')
}
......
......@@ -2,35 +2,38 @@ import { KfInfo } from '@ohos/common/src/main/ets/entity/KfInfo'
@Component
export struct HouseList {
@Link dataSource: KfInfo[]
@Link dataSource: KfInfo[]
@Styles commonPadding() {
.padding({top:4, bottom:4})
.padding({ top: 4, bottom: 4 })
.alignSelf(ItemAlign.Start)
}
@Builder renderList() {
Column() {
List(){
List() {
ForEach(this.dataSource, (item, index) => {
ListItem(){
ListItem() {
Row() {
Column() {
Row(){
Row() {
Text("库房代码:").commonPadding()
Text(item.kfdm).commonPadding()
}.margin({left:20})
Row(){
}.margin({ left: 20 })
Row() {
Text("库房名称:").commonPadding()
Text(item.kfmc).commonPadding()
}
}.width('40%')
Column() {
Row(){
Row() {
Text("库房类型:").commonPadding()
Text(item.kflx).commonPadding()
}
Row(){
Row() {
Text("优先级:").commonPadding()
Text(item.yxj + '').commonPadding()
}
......@@ -47,26 +50,25 @@ export struct HouseList {
}.commonPadding()
}
})
}.divider({strokeWidth:1,color:'505050'})
}.divider({ strokeWidth: 1, color: '505050' })
}.width('100%').height('100%').backgroundColor('#fff')
}
@Builder renderEmpty() {
Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}) {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() {
Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({top: 5})
Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
}
}.height('70%')
}
build() {
if(this.dataSource.length == 0) {
this.renderEmpty()
} else {
this.renderList()
}
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
this.renderList()
}
}
}
\ No newline at end of file
......@@ -5,7 +5,7 @@ export struct TipDialog {
private title: string;
controller: CustomDialogController
cancel: () => void
confirm: () => void
confirm: (content?: string) => void
private content: string;
build() {
......@@ -31,7 +31,7 @@ export struct TipDialog {
.padding({top:20,bottom:20}).fontColor("#007aff")
.onClick(() => {
this.controller.close()
this.confirm()
this.confirm(this.content)
})
}
}
......
......@@ -27,6 +27,18 @@ struct child {
build() {
Column() {
Row() {
Text('哈哈哈')
.textAlign(TextAlign.Center)
.backgroundColor("#f6f6f6")
.padding({ top: 8, bottom: 8 })
.width('45%')
Text('哈哈哈')
.textAlign(TextAlign.Center)
.backgroundColor("#f6f6f6")
.padding({ top: 8, bottom: 8 })
.width('45%')
}
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Column() {
Text("冬季防寒靴100000").padding({ top: 5, bottom: 5 })
......
......@@ -9,6 +9,7 @@
"pages/metailmange/WzExchangePage",
"pages/metailmange/WzConversionPage",
"pages/metailmange/WzInvPage",
"pages/metailmange/WzInPage/WzInPage",
"pages/metailmange/WzPositionPage",
"pages/metailmange/WzReversePage",
"pages/metailmange/AddConversionPage",
......
......@@ -81,7 +81,7 @@ export struct MaterialManagement {
switch (type) {
case "in":
router.pushUrl({
url: "pages/metailmange/WzInPage",
url: "pages/metailmange/WzInPage/WzInPage",
})
break;
case "out":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论