Commit c834d195 by ning

Merge remote-tracking branch 'origin/master'

parents f5c78c06 2e175768
...@@ -67,4 +67,12 @@ export class BzhxDao extends BaseTable<Bzhx> { ...@@ -67,4 +67,12 @@ export class BzhxDao extends BaseTable<Bzhx> {
wp.orderByAsc('GUID').offsetAs(offset).limitAs(20); wp.orderByAsc('GUID').offsetAs(offset).limitAs(20);
return this.query(wp, this.getTableColumns()) return this.query(wp, this.getTableColumns())
} }
async selectWZInfo(lsm?:string):Promise<Bzhx[]>{
let wp = this.getPredicates();
if (lsm) {
wp.equalTo('LSM', lsm);
}
wp.orderByAsc('LSM');
return this.query(wp, this.getTableColumns())
}
} }
\ No newline at end of file
...@@ -53,4 +53,30 @@ export class DsRfidDao extends BaseTable<DsRfid> { ...@@ -53,4 +53,30 @@ export class DsRfidDao extends BaseTable<DsRfid> {
)`; )`;
return count_sql; return count_sql;
} }
/*查询上架---sjType:0(待上架),1(已上架)*/
async getselectSJList(wzcrkguid: string,sjType:number): Promise<DsRfid[]> {
let wp = this.getPredicates();
if (wzcrkguid) {
wp.equalTo('WZCRKGUID', wzcrkguid);
}
if(sjType==0){
wp.equalTo("HWH","暂无")
}else {
wp.notEqualTo("HWH","暂无")
}
wp.orderByAsc('HWH');
return this.query(wp, this.getTableColumns())
}
/**
* 更新上架状态
*/
async updateSJStatus(guid: string, hwh?: string): Promise<number> {
const valueBucket = {
"HWH": hwh
};
let wp = this.getPredicates()
wp.equalTo('guid', guid)
return this.updateData(valueBucket, wp)
}
} }
\ No newline at end of file
...@@ -60,5 +60,12 @@ export class HwInfoDao extends BaseTable<HwInfo> { ...@@ -60,5 +60,12 @@ export class HwInfoDao extends BaseTable<HwInfo> {
wp.orderByAsc('HWH'); wp.orderByAsc('HWH');
return this.query(wp, this.getTableColumns()) return this.query(wp, this.getTableColumns())
} }
async getselectHwList(kfguid: string): Promise<HwInfo[]> {
let wp = this.getPredicates();
if (kfguid) {
wp.equalTo('KFGUID', kfguid);
}
wp.orderByAsc('HWH');
return this.query(wp, this.getTableColumns())
}
} }
\ No newline at end of file
...@@ -62,7 +62,7 @@ export class WzhxdmDao extends BaseTable<Wzhxdm> { ...@@ -62,7 +62,7 @@ export class WzhxdmDao extends BaseTable<Wzhxdm> {
async selectHXList(sql?: string): Promise<Wzhxdm[]> { async selectHXList(sql?: string): Promise<Wzhxdm[]> {
let db = await this.futureDb; let db = await this.futureDb;
let rs = await db.querySql('', []); let rs = await db.querySql(sql, this.getTableColumns());
let items: Wzhxdm[]; let items: Wzhxdm[];
if (rs.goToFirstRow()) { if (rs.goToFirstRow()) {
do { do {
......
...@@ -238,7 +238,7 @@ async function analysisQrCode(bqData:string, isData:boolean = false) { ...@@ -238,7 +238,7 @@ async function analysisQrCode(bqData:string, isData:boolean = false) {
// "' or lsm = '" + hx_map["wzdm"] + "') " + " and ( pmdmten in (" + hx_map["pmdm_hxmc"] + // "' or lsm = '" + hx_map["wzdm"] + "') " + " and ( pmdmten in (" + hx_map["pmdm_hxmc"] +
// ") or hxmc in (" + hx_map["pmdm_hxmc"] + ") or lsm in (" + hx_map["pmdm_hxmc"] + ")) "; // ") or hxmc in (" + hx_map["pmdm_hxmc"] + ") or lsm in (" + hx_map["pmdm_hxmc"] + ")) ";
let sql = "select wzdm,hxdm,hxmc,lsm,wzpm from tab_xtwh_jcsj_wzhxdm where "+ let sql = "select wzdm,hxdm,hxmc,lsm,wzpm from TAB_XTWH_JCSJ_WZHXDM where "+
" lsm = '" + hx_map["wzdm"] + "' " + " lsm = '" + hx_map["wzdm"] + "' " +
" or lsm in (" + hx_map["pmdm_hxmc"] + ")"+ " or lsm in (" + hx_map["pmdm_hxmc"] + ")"+
" or pmdmten = '" + hx_map["wzdm"] + "' " + " or pmdmten = '" + hx_map["wzdm"] + "' " +
...@@ -255,8 +255,12 @@ async function analysisQrCode(bqData:string, isData:boolean = false) { ...@@ -255,8 +255,12 @@ async function analysisQrCode(bqData:string, isData:boolean = false) {
// const allList = await selectInformationType("GY_M_PMV3", allsql) // const allList = await selectInformationType("GY_M_PMV3", allsql)
// const allList1 = await createOrFindSQL("GY_M_PMV3", allsql1)\ // const allList1 = await createOrFindSQL("GY_M_PMV3", allsql1)\
bzhxModal.queryLsm(str) bzhxModal.queryLsm(str)
console.log('sql', sql) console.log('sql查询语句'+ sql)
let wzdmList = await bzhxModal.queryHXlist(sql) let wzdmList = await bzhxModal.queryHXlist(sql)
console.log('sql查询结果'+JSON.stringify(wzdmList))
if(!wzdmList){
wzdmList=[]
}
for (let j = 0; j < wzdmList.length; j++) { for (let j = 0; j < wzdmList.length; j++) {
let wzdm = wzdmList[j]; let wzdm = wzdmList[j];
Object.keys(hx_map).forEach((item) => { Object.keys(hx_map).forEach((item) => {
......
...@@ -26,8 +26,8 @@ class BzhxModel { ...@@ -26,8 +26,8 @@ class BzhxModel {
let res = await SQLiteContext.with(BzhxDao).getBzhxList(offset, pmdmsix, pmdmten) let res = await SQLiteContext.with(BzhxDao).getBzhxList(offset, pmdmsix, pmdmten)
return res; return res;
} }
async queryLsm(lsm?: string):Promise<Wzdm[]> { async queryLsm(lsm?: string):Promise<Bzhx[]> {
let res = await SQLiteContext.with(WzdmDao).selectWZDM(lsm); let res = await SQLiteContext.with(BzhxDao).selectWZInfo(lsm);
Logger.info("查询LSM结果"+JSON.stringify(res)) Logger.info("查询LSM结果"+JSON.stringify(res))
return res; return res;
} }
......
...@@ -6,6 +6,20 @@ class DsRfidModel { ...@@ -6,6 +6,20 @@ class DsRfidModel {
data.guid=uuid() data.guid=uuid()
await SQLiteContext.with(DsRfidDao).insert(data) await SQLiteContext.with(DsRfidDao).insert(data)
} }
// 查询待上架
async queryDSJ(wzcrkguid? : string,sjType?:number): Promise<DsRfid[]> {
let res = await SQLiteContext.with(DsRfidDao).getselectSJList(wzcrkguid,sjType)
return res;
}
// 查询已上架
async queryYSJ(wzcrkguid? : string,sjType?:number): Promise<DsRfid[]> {
let res = await SQLiteContext.with(DsRfidDao).getselectSJList(wzcrkguid,sjType)
return res;
}
async updateSJStatus(guid: string, hwh: string):Promise<number> {
let res = await SQLiteContext.with(DsRfidDao).updateSJStatus(guid, hwh)
return res;
}
} }
const dsRfidModel = new DsRfidModel() const dsRfidModel = new DsRfidModel()
......
...@@ -12,6 +12,11 @@ class HwModel { ...@@ -12,6 +12,11 @@ class HwModel {
let res = await SQLiteContext.with(HwInfoDao).getHwList(no) let res = await SQLiteContext.with(HwInfoDao).getHwList(no)
return res; return res;
} }
// 查询库房下货位
async queryHw(kfguid? : string): Promise<HwInfo[]> {
let res = await SQLiteContext.with(HwInfoDao).getselectHwList(kfguid)
return res;
}
// 清空表 // 清空表
async clear() { async clear() {
await SQLiteContext.with(HwInfoDao).clearTable() await SQLiteContext.with(HwInfoDao).clearTable()
......
import { TitleBar } from '../../view/title/TitleBar' import { TitleBar } from '../../view/title/TitleBar'
import promptAction from '@ohos.promptAction' import promptAction from '@ohos.promptAction'
import hwModel from "../../model/HwModel"
import { HwInfo, SQLiteContext, HwInfoDao,Logger} from '@ohos/common'
import dsRfidModel from '../../model/DsRfidModel';
import router from '@ohos.router'
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
.borderWidth(2) .borderWidth(2)
...@@ -10,20 +14,54 @@ import promptAction from '@ohos.promptAction' ...@@ -10,20 +14,54 @@ import promptAction from '@ohos.promptAction'
.type(ButtonType.Normal) .type(ButtonType.Normal)
.stateEffect(true) .stateEffect(true)
} }
@Entry @Entry
@Component @Component
struct GoodsSelectHwPage{ struct GoodsSelectHwPage{
@State model: boolean = true @State model: boolean = true
@State hwInfoList:HwInfo[]=[]
@State selectValue:Array<SelectOption>=[]
@State checkedList: Array<string> = []
@State hwh:string=""
aboutToAppear(){
this.checkedList= router.getParams() as string[];
this.getHwList()
}
async getHwList(){
this.hwInfoList=await hwModel.queryHw("")
this.selectValue=this.hwInfoList.map(item =>{
return {value:item.hwh}
})
}
/*手动保存*/
onSubmit() {
try {
Logger.info("选择上架数据===》"+JSON.stringify(this.checkedList))
this.checkedList.forEach(async (element) => {
let num = await dsRfidModel.updateSJStatus(element, this.hwh)
if (num) {// 如果更新成功就减少
promptAction.showToast({
message: "保存成功"
})
}else{
promptAction.showToast({
message: "保存失败"
})
}
})
} catch (e) {
} finally {
router.back()
this.checkedList = []
}
}
build(){ build(){
Column() { Column() {
Flex({ direction: FlexDirection.Column }) { Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "货位"}) TitleBar({ title: "货位"})
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Column() { Column() {
Select([{ value: "LS-1-1-2" }, { value: "LS-1-1-3" }, { value: "LS-1-1-4" }]) Select(this.selectValue)
.value('请选择') .value('请选择')
.borderWidth(1) .borderWidth(1)
.borderRadius(6) .borderRadius(6)
...@@ -34,7 +72,7 @@ struct GoodsSelectHwPage{ ...@@ -34,7 +72,7 @@ struct GoodsSelectHwPage{
.borderColor("#e5e5e5") .borderColor("#e5e5e5")
.width(220) .width(220)
.onSelect((index: number, value?: string) => { .onSelect((index: number, value?: string) => {
this.hwh=value
}) })
}.visibility(this.model?Visibility.Visible:Visibility.Hidden).width('70%').margin({ right: 10 }) }.visibility(this.model?Visibility.Visible:Visibility.Hidden).width('70%').margin({ right: 10 })
...@@ -52,7 +90,7 @@ struct GoodsSelectHwPage{ ...@@ -52,7 +90,7 @@ struct GoodsSelectHwPage{
if (this.model) { if (this.model) {
} else { } else {
Flex({ justifyContent: FlexAlign.Center , alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Center , alignItems: ItemAlign.Center}) {
Text('请扫描货位码').fontColor('#fff').fontSize(20) Text('请扫描货位码').fontColor('#fff').fontSize(20)
} }
.width('100%') .width('100%')
...@@ -72,14 +110,10 @@ struct GoodsSelectHwPage{ ...@@ -72,14 +110,10 @@ struct GoodsSelectHwPage{
.fontColor('#0fa983') .fontColor('#0fa983')
.backgroundColor('#fff') .backgroundColor('#fff')
.onClick(() => { .onClick(() => {
promptAction.showToast({ this.onSubmit()
message: "保存"
})
}) })
} }
.height(70) .height(70)
}.width("100%") }.width("100%")
}.linearGradient({ }.linearGradient({
direction: GradientDirection.Right, // 渐变方向 direction: GradientDirection.Right, // 渐变方向
......
...@@ -61,11 +61,6 @@ export struct WzInPage { ...@@ -61,11 +61,6 @@ export struct WzInPage {
this.getWzcrkList() this.getWzcrkList()
} }
ininData() {
this.checkedList = []
this.getWzcrkList()
}
async getWzcrkList(qzh?: number, wczt?: string) { async getWzcrkList(qzh?: number, wczt?: string) {
Logger.info('出入库传入参数>>:', JSON.stringify(this.searchData)) Logger.info('出入库传入参数>>:', JSON.stringify(this.searchData))
this.dataSource = [] this.dataSource = []
...@@ -75,10 +70,7 @@ export struct WzInPage { ...@@ -75,10 +70,7 @@ export struct WzInPage {
res.forEach(element => { res.forEach(element => {
this.dataSource.push(new WzinClass(element)) this.dataSource.push(new WzinClass(element))
}); });
// for (let index = 0; index < res.length; index++) { Logger.info('数量是' + JSON.stringify(this.dataSource))
// const element = res[index];
// this.dataSource.push(new WzinClass(element))
// }
} }
@Builder container() { @Builder container() {
...@@ -111,6 +103,7 @@ export struct WzInPage { ...@@ -111,6 +103,7 @@ export struct WzInPage {
cancel: this.onCancel, cancel: this.onCancel,
confirm: this.onSubmit, confirm: this.onSubmit,
checkedList: $checkedList, checkedList: $checkedList,
dataSource: $dataSource,
container: this.container container: this.container
}), }),
autoCancel: true, autoCancel: true,
...@@ -127,13 +120,13 @@ export struct WzInPage { ...@@ -127,13 +120,13 @@ export struct WzInPage {
this.checkedList.forEach(async (element) => { this.checkedList.forEach(async (element) => {
let num = await wzcrkModel.updateWzcrkWczt(element, this.radioChecked ? '已完成' : '未完成') let num = await wzcrkModel.updateWzcrkWczt(element, this.radioChecked ? '已完成' : '未完成')
if (num) {// 如果更新成功就减少 if (num) {// 如果更新成功就减少
this.dataSource = this.dataSource.filter(i => i.guid != element) Logger.info("删除的数据是:" + JSON.stringify(this.dataSource))
this.dataSource.splice(this.dataSource.findIndex(i => i.guid == element), 1)
} }
}) })
} catch (e) { } catch (e) {
} finally { } finally {
this.checkedList = [] this.checkedList = []
} }
} }
......
...@@ -24,7 +24,7 @@ interface params { ...@@ -24,7 +24,7 @@ interface params {
/*入库详情*/ /*入库详情*/
@Entry @Entry
@Component @Component
struct PzInOutDetailPage{ struct WzinDetail{
@State fontColor: string = '#0FA983' @State fontColor: string = '#0FA983'
@State selectedFontColor: string = '#fff' @State selectedFontColor: string = '#fff'
@State currentIndex: number = 0 @State currentIndex: number = 0
......
...@@ -19,6 +19,7 @@ import bgglModel from '../../../model/BgglModel' ...@@ -19,6 +19,7 @@ import bgglModel from '../../../model/BgglModel'
import wzdmModel from '../../../model/WzdmModel' import wzdmModel from '../../../model/WzdmModel'
import drModel from '../../../model/DrModel' import drModel from '../../../model/DrModel'
import { DrInfo } from '@ohos/common/src/main/ets/entity/DrInfo' import { DrInfo } from '@ohos/common/src/main/ets/entity/DrInfo'
import wzcrkmxModel from '../../../model/WzcrkmxModel'
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
.borderWidth(2) .borderWidth(2)
...@@ -57,6 +58,7 @@ export struct Pmhx { ...@@ -57,6 +58,7 @@ export struct Pmhx {
listController: CustomDialogController = new CustomDialogController({ listController: CustomDialogController = new CustomDialogController({
builder: ListDialog({ builder: ListDialog({
cancel: this.onCancel, cancel: this.onCancel,
getDrData: this.getDrData
}), }),
autoCancel: true, autoCancel: true,
alignment: DialogAlignment.Bottom, alignment: DialogAlignment.Bottom,
...@@ -77,7 +79,7 @@ export struct Pmhx { ...@@ -77,7 +79,7 @@ export struct Pmhx {
console.log("onSubmit") console.log("onSubmit")
} }
aboutToAppear(){ aboutToAppear() {
this.getDrData() this.getDrData()
} }
...@@ -94,6 +96,11 @@ export struct Pmhx { ...@@ -94,6 +96,11 @@ export struct Pmhx {
case "基础信息": case "基础信息":
try { try {
this.showProgress = true this.showProgress = true
await qyModel.clear();
await kfModel.clear();
await hwModel.clear();
await hjModel.clear();
await gldwModel.clear();
const res = await getPmList({ rows: 5000, page: 1 }) const res = await getPmList({ rows: 5000, page: 1 })
// 获取品名 // 获取品名
const allData = JSON.parse(res).bzhxList as Bzhx[] const allData = JSON.parse(res).bzhxList as Bzhx[]
...@@ -142,6 +149,8 @@ export struct Pmhx { ...@@ -142,6 +149,8 @@ export struct Pmhx {
case "单据导入": case "单据导入":
try { try {
this.showProgress = true this.showProgress = true
await wzcrkModel.clear()
await wzcrkmxModel.clear()
const { rows } = await getDjList({}) const { rows } = await getDjList({})
// 使用map对rows进行操作 // 使用map对rows进行操作
const mappedRows = rows.map((row) => { const mappedRows = rows.map((row) => {
...@@ -193,6 +202,7 @@ export struct Pmhx { ...@@ -193,6 +202,7 @@ export struct Pmhx {
case "订单导入": case "订单导入":
try { try {
this.showProgress = true this.showProgress = true
await bgglModel.clear()
const res = await getBgList({}) const res = await getBgList({})
// 获取包裹数据 // 获取包裹数据
const bgData = JSON.parse(res) as Bggl[] const bgData = JSON.parse(res) as Bggl[]
...@@ -257,18 +267,20 @@ export struct Pmhx { ...@@ -257,18 +267,20 @@ export struct Pmhx {
Column() { Column() {
Row() { Row() {
Text("当前数据导入版本:").fontSize(12).fontColor("#0fa983") Text("当前数据导入版本:").fontSize(12).fontColor("#0fa983")
Text("暂无").fontSize(12).fontColor("#0fa983") Text("暂无").fontSize(12).fontColor("#0fa983").margin({ left: 20 })
} }.margin({ top: 5 })
List(){
ForEach(this.drData,(item: DrInfo) => { List() {
ListItem(){ ForEach(this.drData, (item: DrInfo) => {
Column(){ ListItem() {
Text(item.filename).fontSize(11) Column() {
Text(item.time).fontSize(10).fontSize('#858383') Text(item.filename).fontSize(12).alignSelf(ItemAlign.Start).padding({ top: 6, bottom: 3 })
} Text(item.time).fontSize(10).padding({ bottom: 4 }).fontColor('#8a919f').alignSelf(ItemAlign.Start)
}.margin({ left: 8 })
} }
}) })
} }.divider({ strokeWidth: 1, color: "#afb5c0" }).margin({ top: 6 })
}.border({ width: 1, color: 0x0fa983, radius: 2, style: BorderStyle.Dotted }) }.border({ width: 1, color: 0x0fa983, radius: 2, style: BorderStyle.Dotted })
.height("92%").width('92%').margin({ top: 12 }) .height("92%").width('92%').margin({ top: 12 })
} }
......
...@@ -11,12 +11,14 @@ import kfModel from '../../../model/KfModel' ...@@ -11,12 +11,14 @@ import kfModel from '../../../model/KfModel'
import hwModel from '../../../model/HwModel' import hwModel from '../../../model/HwModel'
import hjModel from '../../../model/HjModel' import hjModel from '../../../model/HjModel'
import gldwModel from '../../../model/GldwModel' import gldwModel from '../../../model/GldwModel'
import drModel from '../../../model/DrModel'
@CustomDialog @CustomDialog
@Component @Component
export struct ListDialog { export struct ListDialog {
cancel: () => void cancel: () => void
@State content: string = '' @State content: string = ''
getDrData: () => void
dialogController: CustomDialogController = new CustomDialogController({ dialogController: CustomDialogController = new CustomDialogController({
builder: TipDialog({ builder: TipDialog({
cancel: this.onCancel, cancel: this.onCancel,
...@@ -41,11 +43,13 @@ export struct ListDialog { ...@@ -41,11 +43,13 @@ export struct ListDialog {
case '是否确定清除基础数据': case '是否确定清除基础数据':
try { try {
qyModel.clear(); await qyModel.clear();
kfModel.clear(); await kfModel.clear();
hwModel.clear(); await hwModel.clear();
hjModel.clear(); await hjModel.clear();
gldwModel.clear(); await gldwModel.clear();
await await drModel.set('清除基础数据')
await this.getDrData()
promptAction.showToast({ promptAction.showToast({
message: '清除基础数据成功' message: '清除基础数据成功'
}) })
...@@ -57,8 +61,10 @@ export struct ListDialog { ...@@ -57,8 +61,10 @@ export struct ListDialog {
case '是否确认清除单据数据': case '是否确认清除单据数据':
try { try {
wzcrkModel.clear() await wzcrkModel.clear()
wzcrkmxModel.clear() await wzcrkmxModel.clear()
await drModel.set('清除单据数据')
// await this.getDrData()
promptAction.showToast({ promptAction.showToast({
message: '清除单据数据成功' message: '清除单据数据成功'
}) })
...@@ -71,7 +77,9 @@ export struct ListDialog { ...@@ -71,7 +77,9 @@ export struct ListDialog {
case '是否确认清除包裹数据': case '是否确认清除包裹数据':
try { try {
bgglModel.clear() await bgglModel.clear()
await drModel.set('清除包裹数据')
await this.getDrData()
promptAction.showToast({ promptAction.showToast({
message: '清除包裹数据成功' message: '清除包裹数据成功'
}) })
...@@ -84,7 +92,9 @@ export struct ListDialog { ...@@ -84,7 +92,9 @@ export struct ListDialog {
case '是否确认清除品名及号型数据': case '是否确认清除品名及号型数据':
try { try {
bzhxModel.clear() await bzhxModel.clear()
await drModel.set('清除品名及号型')
await this.getDrData()
promptAction.showToast({ promptAction.showToast({
message: '清除品名及号型数据成功' message: '清除品名及号型数据成功'
}) })
...@@ -95,6 +105,21 @@ export struct ListDialog { ...@@ -95,6 +105,21 @@ export struct ListDialog {
} }
break; break;
case '是否确认清除导入导出数据':
try {
await drModel.clear()
await drModel.set('清除导入导出数据')
await this.getDrData()
promptAction.showToast({
message: '清除导入导出数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除导入导出数据失败'
})
}
break;
default: default:
break; break;
} }
......
import { UniListItem } from '@ohos/system/src/main/ets/model/UniInitList'; import { UniListItem } from '@ohos/system/src/main/ets/model/UniInitList';
import { WzinClass } from '../../pages/metailmange/WzInPage/Wzin.data';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
.borderWidth(2) .borderWidth(2)
.borderColor('#0fa983') .borderColor('#0fa983')
...@@ -31,7 +32,7 @@ interface FormData { ...@@ -31,7 +32,7 @@ interface FormData {
@CustomDialog @CustomDialog
@Component @Component
export struct SetStatusDialog { export struct SetStatusDialog {
@Link dataSource: WzinClass[]
@Link checkedList: Array<string> @Link checkedList: Array<string>
controller: CustomDialogController controller: CustomDialogController
cancel: () => void cancel: () => void
...@@ -39,6 +40,7 @@ export struct SetStatusDialog { ...@@ -39,6 +40,7 @@ export struct SetStatusDialog {
@BuilderParam container: () => void @BuilderParam container: () => void
build() { build() {
Column() { Column() {
Flex({ alignItems: ItemAlign.Start }) { Flex({ alignItems: ItemAlign.Start }) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论