订单列表

master
lzq 2026-02-09 18:42:50 +08:00
parent 824d2402a9
commit 8894d0bb48
23 changed files with 213 additions and 81 deletions

View File

@ -16,6 +16,9 @@ export const useAppUserStore = defineStore('AppUser', () => {
const tenantId = ref<string | null>(null) const tenantId = ref<string | null>(null)
const tenantName = ref<string | null>(null) const tenantName = ref<string | null>(null)
const isAuthenticated = computed(() => !Strings.isEmpty(token.value)) const isAuthenticated = computed(() => !Strings.isEmpty(token.value))
const isXiaoNa = computed(() => {
return false
})
function $reset() { function $reset() {
userId.value = null userId.value = null
@ -40,6 +43,7 @@ export const useAppUserStore = defineStore('AppUser', () => {
bizObj, bizObj,
isAuthenticated, isAuthenticated,
roles, roles,
isXiaoNa,
$reset, $reset,
} }
}, { }, {

View File

@ -48,6 +48,7 @@ declare module 'vue' {
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
@ -106,6 +107,7 @@ declare global {
const ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] const ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
const ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] const ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
const ElSelect: typeof import('element-plus/es')['ElSelect'] const ElSelect: typeof import('element-plus/es')['ElSelect']
const ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
const ElSwitch: typeof import('element-plus/es')['ElSwitch'] const ElSwitch: typeof import('element-plus/es')['ElSwitch']
const ElTable: typeof import('element-plus/es')['ElTable'] const ElTable: typeof import('element-plus/es')['ElTable']
const ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] const ElTableColumn: typeof import('element-plus/es')['ElTableColumn']

View File

@ -47,8 +47,8 @@
</template> </template>
<template #columns> <template #columns>
<ElTableColumn label="账号" prop="username"/> <ElTableColumn label="账号" prop="username"/>
<ADesensitizeColumn desensitize-type="name" label="客户姓名" prop="nickname"/> <ElTableColumn label="客户姓名" prop="nickname"/>
<ADesensitizeColumn desensitize-type="mobile" label="联系电话" prop="phone"/> <ElTableColumn label="联系电话" prop="phone"/>
<ElTableColumn label="主体类型"> <ElTableColumn label="主体类型">
<template #default="scope"> <template #default="scope">
<!-- <span> <!-- <span>
@ -106,7 +106,6 @@ import ATablePage, {
type ATablePageInstance, type ATablePageInstance,
buildTablePageProps, buildTablePageProps,
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import ADesensitizeColumn from '@/components/a-table-column/ADesensitizeColumn.vue'
const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm') const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm')
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')

View File

@ -47,8 +47,8 @@
</template> </template>
<template #columns> <template #columns>
<ElTableColumn label="账号" prop="username"/> <ElTableColumn label="账号" prop="username"/>
<ADesensitizeColumn desensitize-type="name" label="客户姓名" prop="nickname"/> <ElTableColumn label="客户姓名" prop="nickname"/>
<ADesensitizeColumn desensitize-type="mobile" label="联系电话" prop="phone"/> <ElTableColumn label="联系电话" prop="phone"/>
<ElTableColumn label="主体类型"> <ElTableColumn label="主体类型">
<template #default="scope"> <template #default="scope">
<!-- <span> <!-- <span>
@ -106,7 +106,6 @@ import ATablePage, {
type ATablePageInstance, type ATablePageInstance,
buildTablePageProps, buildTablePageProps,
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import ADesensitizeColumn from '@/components/a-table-column/ADesensitizeColumn.vue'
const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm') const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm')
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')

View File

@ -47,8 +47,8 @@
</template> </template>
<template #columns> <template #columns>
<ElTableColumn label="账号" prop="username"/> <ElTableColumn label="账号" prop="username"/>
<ADesensitizeColumn desensitize-type="name" label="客户姓名" prop="nickname"/> <ElTableColumn label="客户姓名" prop="nickname"/>
<ADesensitizeColumn desensitize-type="mobile" label="联系电话" prop="phone"/> <ElTableColumn label="联系电话" prop="phone"/>
<ElTableColumn label="主体类型"> <ElTableColumn label="主体类型">
<template #default="scope"> <template #default="scope">
<!-- <span> <!-- <span>
@ -106,7 +106,6 @@ import ATablePage, {
type ATablePageInstance, type ATablePageInstance,
buildTablePageProps, buildTablePageProps,
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import ADesensitizeColumn from '@/components/a-table-column/ADesensitizeColumn.vue'
const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm') const customerFormIns = useTemplateRef<InstanceType<typeof CustomerForm>>('customerForm')
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')

View File

@ -16,8 +16,8 @@
<ElTableColumn label="业务类型" prop="bizTypeTxt"/> <ElTableColumn label="业务类型" prop="bizTypeTxt"/>
<ElTableColumn label="编码" prop="sn"/> <ElTableColumn label="编码" prop="sn"/>
<ElTableColumn label="分类名称" prop="categoryName"/> <ElTableColumn label="分类名称" prop="categoryName"/>
<ElTableColumn label="备注" prop="memo"/> <ElTableColumn label="备注" prop="memo" show-overflow-tooltip width="180"/>
<ElTableColumn label="创建时间" prop="createTime"/> <ElTableColumn label="创建时间" prop="createTime" width="180"/>
</template> </template>
<GoodsCategoryForm ref="goodsCategoryForm" :default-biz-type="defaultBizType" :research="research"/> <GoodsCategoryForm ref="goodsCategoryForm" :default-biz-type="defaultBizType" :research="research"/>
</ATablePage> </ATablePage>

View File

@ -0,0 +1,70 @@
<script lang="ts" setup>
import Utils from '@/common/utils'
import GoodsCategoryApi from '@/pages/gds/goods-category/goods-category-api.ts'
import { bizType } from '@/pages/gds/goods-category/constants.ts'
import Strings from '@/common/utils/strings.ts'
const props = defineProps<{
defaultBizType: typeof bizType[number]['val']
defaultValue: {
id?: string
categoryName?: string
}
}>()
const dataList = Utils.resetAble(reactive<GoodsCategoryTypes.SearchGoodsCategoryResult[]>([]))
const loading = ref(false)
const model = defineModel<string>()
const currentValue = reactive({
id: props.defaultValue.id,
categoryName: props.defaultValue.categoryName,
})
function loader(keywords: string) {
loading.value = true
GoodsCategoryApi
.paging({
bizType: props.defaultBizType,
keywords,
})
.then(res => {
if (!Strings.isBlank(currentValue.id)) {
const findIndex = res.data.records.findIndex(it => it.id === currentValue.id)
if (findIndex < 0) {
res.data.records.unshift({
id: currentValue.id!,
categoryName: currentValue.categoryName!,
})
}
}
dataList.$reset(res.data.records)
})
.finally(() => loading.value = false)
}
function changeHandle(value: string) {
const val = (dataList as GoodsCategoryTypes.SearchGoodsCategoryResult[]).filter(it => it.id === value)
currentValue.id = val[0].id
currentValue.categoryName = val[0].categoryName!
}
</script>
<template>
<ElSelect
v-model="model"
:loading="loading"
:remote-method="loader"
clearable
filterable
placeholder="请输入文字搜索"
remote
remote-show-suffix
@change="changeHandle"
>
<ElOption v-for="it in dataList" :key="it.id" :label="it.categoryName" :value="it.id"/>
</ElSelect>
</template>
<style lang="stylus" scoped>
</style>

View File

@ -2,20 +2,6 @@
<ATablePage <ATablePage
ref="tablePage" ref="tablePage"
v-bind="tablePageProps"> v-bind="tablePageProps">
<!-- <template #highFormItem="formData">
<ElFormItem label="产品分类">
<GoodsCategoryDropTable v-model="formData.goodsCategoryId" :default-biz-type="defaultBizType"/>
</ElFormItem>
<ElFormItem label="产品编码">
<ElInput v-model="formData.sn" placeholder="产品编码"/>
</ElFormItem>
<ElFormItem label="产品名称">
<ElInput v-model="formData.goodsName" placeholder="产品名称"/>
</ElFormItem>
<ElFormItem label="创建时间">
<ADtPicker v-model="formData.createTimes" :change-handler="research"/>
</ElFormItem>
</template> -->
<template #simpleFormItem="formData"> <template #simpleFormItem="formData">
<ElFormItem> <ElFormItem>
<ElInput v-model="formData.keywords" placeholder="产品名称/编码"/> <ElInput v-model="formData.keywords" placeholder="产品名称/编码"/>
@ -31,13 +17,13 @@
<ElTableColumn label="产品名称" prop="goodsName"/> <ElTableColumn label="产品名称" prop="goodsName"/>
<ElTableColumn label="规格" prop="specParams"/> <ElTableColumn label="规格" prop="specParams"/>
<ElTableColumn label="是否可用" prop="canuse"> <ElTableColumn label="是否可用" prop="canuse" width="100">
<template #default="{row}"> <template #default="{row}">
<ElSwitch v-model="row.canuse" @change="enableGoodsHandler($event as boolean,row.id)"/> <ElSwitch v-model="row.canuse" @change="enableGoodsHandler($event as boolean,row.id)"/>
</template> </template>
</ElTableColumn> </ElTableColumn>
<ElTableColumn label="备注" prop="memo"/> <ElTableColumn label="备注" prop="memo" show-overflow-tooltip width="180"/>
<ElTableColumn label="创建时间" prop="createTime" width="160"/> <ElTableColumn label="创建时间" prop="createTime" width="180"/>
</template> </template>
<GoodsForm ref="goodsForm" :default-biz-type="defaultBizType" :research="research"/> <GoodsForm ref="goodsForm" :default-biz-type="defaultBizType" :research="research"/>
</ATablePage> </ATablePage>

View File

@ -13,12 +13,18 @@
<ElInput v-model="formData.sn" placeholder="产品编码" readonly/> <ElInput v-model="formData.sn" placeholder="产品编码" readonly/>
</ElFormItem> </ElFormItem>
<ElFormItem label="产品分类" prop="goodsCategoryId"> <ElFormItem label="产品分类" prop="goodsCategoryId">
<GoodsCategoryDropTable v-model="formData.goodsCategoryId" :default-biz-type="defaultBizType"/> <GoodsCategorySelect
v-model="formData.goodsCategoryId"
:default-biz-type="defaultBizType"
:default-value="{
id:formData.goodsCategory?.id,
categoryName:formData.goodsCategory?.categoryName,
}"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="产品名称" prop="goodsName"> <ElFormItem label="产品名称" prop="goodsName">
<ElInput v-model="formData.goodsName" placeholder="产品名称"/> <ElInput v-model="formData.goodsName" placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="计费策略" prop="expenseStrategy"> <ElFormItem v-if="appUserStore.isXiaoNa" label="计费策略" prop="expenseStrategy">
<ElRadioGroup v-model="formData.expenseStrategy"> <ElRadioGroup v-model="formData.expenseStrategy">
<ElRadio v-for="it in expenseStrategy" :key="'expenseStrategy'+it.val" :value="it.val" border>{{ it.txt }}</ElRadio> <ElRadio v-for="it in expenseStrategy" :key="'expenseStrategy'+it.val" :value="it.val" border>{{ it.txt }}</ElRadio>
</ElRadioGroup> </ElRadioGroup>
@ -37,30 +43,30 @@
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="formData.expenseStrategy !== expenseStrategy.MianFei" label="税率" prop="taxRate"> <ElFormItem v-if="appUserStore.isXiaoNa&&formData.expenseStrategy !== expenseStrategy.MianFei" label="税率" prop="taxRate">
<ElInputNumber v-model="formData.taxRate" :max="100" :min="0" :precision="2" :step="0.01" controls-position="right" placeholder="请输入税率"> <ElInputNumber v-model="formData.taxRate" :max="100" :min="0" :precision="2" :step="0.01" controls-position="right" placeholder="请输入税率">
<template #suffix>%</template> <template #suffix>%</template>
</ElInputNumber> </ElInputNumber>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="formData.expenseStrategy === expenseStrategy.TanXing" label="起步价" prop="initialPrice"> <ElFormItem v-if="appUserStore.isXiaoNa&&formData.expenseStrategy === expenseStrategy.TanXing" label="起步价" prop="initialPrice">
<ElInputNumber v-model="formData.initialPrice" :min="0" :precision="2" :step="1" controls-position="right" placeholder="请输入起步价"> <ElInputNumber v-model="formData.initialPrice" :min="0" :precision="2" :step="1" controls-position="right" placeholder="请输入起步价">
<template #suffix>/{{ unit.txt(formData.unit) }}</template> <template #suffix>/{{ unit.txt(formData.unit) }}</template>
</ElInputNumber> </ElInputNumber>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="formData.expenseStrategy === expenseStrategy.TanXing" label="起步量" prop="initialQuantity"> <ElFormItem v-if="appUserStore.isXiaoNa&&formData.expenseStrategy === expenseStrategy.TanXing" label="起步量" prop="initialQuantity">
<ElInputNumber v-model="formData.initialQuantity" :min="0" :step="1" controls-position="right" placeholder="请输入起步量"> <ElInputNumber v-model="formData.initialQuantity" :min="0" :step="1" controls-position="right" placeholder="请输入起步量">
<template #suffix>{{ unit.txt(formData.unit) }}</template> <template #suffix>{{ unit.txt(formData.unit) }}</template>
</ElInputNumber> </ElInputNumber>
</ElFormItem> </ElFormItem>
<ElFormItem <ElFormItem
v-if="formData.expenseStrategy !== expenseStrategy.MianFei" v-if="appUserStore.isXiaoNa&&formData.expenseStrategy !== expenseStrategy.MianFei"
:label="formData.expenseStrategy === expenseStrategy.TanXing?'每档单价':(formData.expenseStrategy === expenseStrategy.DanJia?'单价':'价格')" :label="formData.expenseStrategy === expenseStrategy.TanXing?'每档单价':(formData.expenseStrategy === expenseStrategy.DanJia?'单价':'价格')"
prop="unitPrice"> prop="unitPrice">
<ElInputNumber v-model="formData.unitPrice" :min="0" :placeholder="`请输入${formData.expenseStrategy === expenseStrategy.TanXing?'每档单价':(formData.expenseStrategy === expenseStrategy.DanJia?'单价':'价格')}`" :precision="2" :step="1" controls-position="right"> <ElInputNumber v-model="formData.unitPrice" :min="0" :placeholder="`请输入${formData.expenseStrategy === expenseStrategy.TanXing?'每档单价':(formData.expenseStrategy === expenseStrategy.DanJia?'单价':'价格')}`" :precision="2" :step="1" controls-position="right">
<template #suffix>{{ (formData.expenseStrategy === expenseStrategy.DanJia || formData.expenseStrategy === expenseStrategy.TanXing ? `元/${unit.txt(formData.unit)}` : ``) }}</template> <template #suffix>{{ (formData.expenseStrategy === expenseStrategy.DanJia || formData.expenseStrategy === expenseStrategy.TanXing ? `元/${unit.txt(formData.unit)}` : ``) }}</template>
</ElInputNumber> </ElInputNumber>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="formData.expenseStrategy === expenseStrategy.TanXing" label="每档的量" prop="everyQuantity"> <ElFormItem v-if="appUserStore.isXiaoNa&&formData.expenseStrategy === expenseStrategy.TanXing" label="每档的量" prop="everyQuantity">
<ElInputNumber v-model="formData.everyQuantity" :min="0" :step="1" controls-position="right" placeholder="请输入每档的量"> <ElInputNumber v-model="formData.everyQuantity" :min="0" :step="1" controls-position="right" placeholder="请输入每档的量">
<template #suffix>{{ unit.txt(formData.unit) }}</template> <template #suffix>{{ unit.txt(formData.unit) }}</template>
</ElInputNumber> </ElInputNumber>
@ -87,12 +93,13 @@ import AFormPanel, {
type AFormPanelInstance, type AFormPanelInstance,
buildFormPanelProps, buildFormPanelProps,
} from '@/components/a-form-panel/AFormPanel.tsx' } from '@/components/a-form-panel/AFormPanel.tsx'
import GoodsCategoryDropTable from '@/pages/gds/goods-category/GoodsCategoryDropTable.vue'
import { import {
expenseStrategy, expenseStrategy,
unit, unit,
} from '@/pages/gds/goods/constants.ts' } from '@/pages/gds/goods/constants.ts'
import { bizType } from '@/pages/gds/goods-category/constants.ts' import { bizType } from '@/pages/gds/goods-category/constants.ts'
import GoodsCategorySelect from '@/pages/gds/goods-category/GoodsCategorySelect.vue'
import { useAppUserStore } from '@/common/app/app-user-store.ts'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
research?: () => void research?: () => void
@ -101,10 +108,11 @@ const props = withDefaults(defineProps<{
research: () => { research: () => {
}, },
}) })
const appUserStore = useAppUserStore()
const formPanelIns = useTemplateRef<AFormPanelInstance>('formPanel') const formPanelIns = useTemplateRef<AFormPanelInstance>('formPanel')
const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader') const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader')
const status = ref<'add' | 'modify'>('add') const status = ref<'add' | 'modify'>('add')
const formPanelProps = buildFormPanelProps<GoodsTypes.SearchGoodsResult>({ const formPanelProps = buildFormPanelProps<GoodsTypes.GoodsForm>({
title: status.value === 'add' ? '新建产品' : '修改产品', title: status.value === 'add' ? '新建产品' : '修改产品',
detailsLoader(id?: string) { detailsLoader(id?: string) {
if (Strings.isBlank(id)) { if (Strings.isBlank(id)) {
@ -121,13 +129,30 @@ const formPanelProps = buildFormPanelProps<GoodsTypes.SearchGoodsResult>({
everyQuantity: 0, everyQuantity: 0,
}) })
} else { } else {
status.value = 'modify' status.value = 'modify'
return GoodsApi return GoodsApi
.detail(id!) .detail(id!)
.then((res) => { .then((res) => {
if (res.data.picture != null) uploaderIns.value?.setDefaultFiles([ res.data.picture ]) if (res.data.picture != null) uploaderIns.value?.setDefaultFiles([ res.data.picture ])
return res.data return {
id: res.data.id,
goodsCategoryId: res.data.goodsCategoryId,
sn: res.data.sn,
goodsName: res.data.goodsName,
specParams: res.data.specParams,
picture: res.data.picture,
unit: res.data.unit,
sort: res.data.sort,
canuse: res.data.canuse,
memo: res.data.memo,
expenseStrategy: res.data.expenseItem?.expenseStrategy,
taxRate: res.data.expenseItem?.taxRate,
unitPrice: res.data.expenseItem?.unitPrice,
initialPrice: res.data.expenseItem?.initialPrice,
initialQuantity: res.data.expenseItem?.initialQuantity,
everyQuantity: res.data.expenseItem?.everyQuantity,
goodsCategory: res.data.goodsCategory,
}
}) })
} }
}, },
@ -148,6 +173,17 @@ const formPanelProps = buildFormPanelProps<GoodsTypes.SearchGoodsResult>({
initialQuantity: data.initialQuantity, initialQuantity: data.initialQuantity,
everyQuantity: data.everyQuantity, everyQuantity: data.everyQuantity,
unitPrice: data.unitPrice, unitPrice: data.unitPrice,
expenseItem: {
expenseItemCategory: 'ChanPin',
expenseStrategy: data.expenseStrategy,
unit: data.unit,
taxRate: data.taxRate,
unitPrice: data.unitPrice,
initialPrice: data.initialPrice,
initialQuantity: data.initialQuantity,
everyQuantity: data.everyQuantity,
memo: data.memo,
},
}) })
.then(props.research) .then(props.research)
} else { } else {
@ -167,6 +203,17 @@ const formPanelProps = buildFormPanelProps<GoodsTypes.SearchGoodsResult>({
initialPrice: data.initialPrice, initialPrice: data.initialPrice,
initialQuantity: data.initialQuantity, initialQuantity: data.initialQuantity,
everyQuantity: data.everyQuantity, everyQuantity: data.everyQuantity,
expenseItem: {
expenseItemCategory: 'ChanPin',
expenseStrategy: data.expenseStrategy,
unit: data.unit,
taxRate: data.taxRate,
unitPrice: data.unitPrice,
initialPrice: data.initialPrice,
initialQuantity: data.initialQuantity,
everyQuantity: data.everyQuantity,
memo: data.memo,
},
}) })
.then(props.research) .then(props.research)
} }
@ -192,8 +239,8 @@ const formPanelProps = buildFormPanelProps<GoodsTypes.SearchGoodsResult>({
}) })
defineExpose({ defineExpose({
open(data: GoodsTypes.SearchGoodsResult = {}) { open(data?: GoodsTypes.SearchGoodsResult) {
formPanelIns.value?.open(data.id) formPanelIns.value?.open(data?.id)
}, },
}) })
</script> </script>

View File

@ -7,7 +7,54 @@ declare global {
keywords?: string keywords?: string
} }
interface ExpenseItem {
expenseItemCategory?: string
expenseStrategy?: string
unit?: string
taxRate?: number
unitPrice?: number
initialPrice?: number
initialQuantity?: number
everyQuantity?: number
memo?: string
}
interface SearchGoodsResult { interface SearchGoodsResult {
// Id
id?: string
// 产品类型 Id
goodsCategoryId?: string
// 产品编码
sn?: string
// 产品名称
goodsName?: string
// 规格
specParams?: string
// 图片
picture?: string
// 计量单位字典代码unit
unit?: string
// 排序
sort?: number
// 是否可用0-->否、1-->是
canuse?: boolean
// 备注
memo?: string
goodsCategory: {
id: string
bizType: string
bizTypeTxt: string
bizTypeKey: string
categoryName: string
picture: string
sort: string
createTime: string
}
expenseItem: ExpenseItem
}
interface GoodsForm {
// Id // Id
id?: string id?: string
// 产品类型 Id // 产品类型 Id
@ -23,11 +70,6 @@ declare global {
// 计量单位字典代码unit // 计量单位字典代码unit
unit?: string unit?: string
// 是否为成品0-->否、1-->是 // 是否为成品0-->否、1-->是
fg?: boolean
// 是否为半成品0-->否、1-->是
sfg?: boolean
// 是否为原料0-->否、1-->是
rg?: boolean
// 排序 // 排序
sort?: number sort?: number
// 是否可用0-->否、1-->是 // 是否可用0-->否、1-->是
@ -46,18 +88,9 @@ declare global {
initialQuantity?: number initialQuantity?: number
// 每档的量 // 每档的量
everyQuantity?: number everyQuantity?: number
// 创建人 Idsys_user.id
creatorId?: string
// 修改人 Idsys_user.id
modifierId?: string
// 创建时间
createTime?: string
// 修改时间
modifyTime?: string
// 是否删除; 0-->未删除、1-->已删除
deleted?: boolean
} }
interface AddGoodsParam { interface AddGoodsParam {
// 产品类型 Id // 产品类型 Id
goodsCategoryId?: string goodsCategoryId?: string
@ -87,6 +120,7 @@ declare global {
initialQuantity?: number initialQuantity?: number
// 每档的量 // 每档的量
everyQuantity?: number everyQuantity?: number
expenseItem?: ExpenseItem
} }
interface ModifyGoodsParam { interface ModifyGoodsParam {
@ -120,6 +154,7 @@ declare global {
initialQuantity?: number initialQuantity?: number
// 每档的量 // 每档的量
everyQuantity?: number everyQuantity?: number
expenseItem?: ExpenseItem
} }
} }
} }

View File

@ -76,11 +76,6 @@
<ElTag :data-cs="transStatusColor.cs(row.transStatus)"> {{ row.transStatusTxt }}</ElTag> <ElTag :data-cs="transStatusColor.cs(row.transStatus)"> {{ row.transStatusTxt }}</ElTag>
</template> </template>
</ElTableColumn> </ElTableColumn>
<ElTableColumn fixed="right" label="勘料状态" prop="checkStatusTxt" width="90">
<template #default="{row}">
<ElTag :data-cs="checkStatusColor.cs(row.checkStatus)"> {{ row.checkStatusTxt }}</ElTag>
</template>
</ElTableColumn>
</template> </template>
<BookForm ref="bookForm" :research="research"/> <BookForm ref="bookForm" :research="research"/>
<BookDetail ref="bookDetail"/> <BookDetail ref="bookDetail"/>
@ -96,7 +91,6 @@ import ATablePage, {
buildTablePageProps, buildTablePageProps,
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import { import {
checkStatusColor,
orderCategory, orderCategory,
paymentStatusColor, paymentStatusColor,
transStatus, transStatus,
@ -108,7 +102,7 @@ import DispatchForm from '@/pages/order/book/DispatchForm.vue'
import OrderApi from '@/pages/order/order-api.ts' import OrderApi from '@/pages/order/order-api.ts'
const props = defineProps<{ const props = defineProps<{
defaultOrderCategory: typeof orderCategory[number]['val'] defaultOrderCategory: 'XiaoShou' | 'HuiShou' | 'DuanBo'
}>() }>()
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')
@ -128,7 +122,7 @@ const tablePageProps = buildTablePageProps<OrderTypes.SearchOrderParam, OrderTyp
}, },
searchForm: { searchForm: {
defaultData: { defaultData: {
orderCategory: props.defaultOrderCategory, bizType: props.defaultOrderCategory,
}, },
highForm: { highForm: {
contentWidth: 342, contentWidth: 342,

View File

@ -3,7 +3,7 @@ import Book from '@/pages/order/book/Book.vue'
</script> </script>
<template> <template>
<Book default-order-category="XiaoShouYuYue"/> <Book default-order-category="XiaoShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -3,7 +3,7 @@ import Book from '@/pages/order/book/Book.vue'
</script> </script>
<template> <template>
<Book default-order-category="HuiShouYuYue"/> <Book default-order-category="HuiShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -105,7 +105,6 @@ import ATablePage, {
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import { import {
checkStatusColor, checkStatusColor,
orderCategory,
paymentStatusColor, paymentStatusColor,
transStatusColor, transStatusColor,
} from '@/pages/order/constants.ts' } from '@/pages/order/constants.ts'
@ -115,7 +114,7 @@ import HistoryDetail from '@/pages/order/history/HistoryDetail.vue'
import CancelDetail from '@/pages/order/cancel/CancelDetail.vue' import CancelDetail from '@/pages/order/cancel/CancelDetail.vue'
const props = defineProps<{ const props = defineProps<{
defaultOrderCategory: typeof orderCategory[number]['val'] defaultOrderCategory: 'XiaoShou' | 'HuiShou' | 'DuanBo'
}>() }>()
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')
const cancelDetailIns = useTemplateRef<InstanceType<typeof HistoryDetail>>('cancelDetail') const cancelDetailIns = useTemplateRef<InstanceType<typeof HistoryDetail>>('cancelDetail')

View File

@ -3,7 +3,7 @@ import Cancel from '@/pages/order/cancel/Cancel.vue'
</script> </script>
<template> <template>
<Cancel default-order-category="XiaoShouYuYue"/> <Cancel default-order-category="XiaoShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -3,7 +3,7 @@ import Cancel from '@/pages/order/cancel/Cancel.vue'
</script> </script>
<template> <template>
<Cancel default-order-category="HuiShouYuYue"/> <Cancel default-order-category="HuiShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -105,7 +105,6 @@ import ATablePage, {
} from '@/components/a-page/a-table-page/ATablePage.tsx' } from '@/components/a-page/a-table-page/ATablePage.tsx'
import { import {
checkStatusColor, checkStatusColor,
orderCategory,
paymentStatusColor, paymentStatusColor,
transStatusColor, transStatusColor,
} from '@/pages/order/constants.ts' } from '@/pages/order/constants.ts'
@ -114,7 +113,7 @@ import type { R } from '@/common/utils/http-util.ts'
import HistoryDetail from '@/pages/order/history/HistoryDetail.vue' import HistoryDetail from '@/pages/order/history/HistoryDetail.vue'
const props = defineProps<{ const props = defineProps<{
defaultOrderCategory: typeof orderCategory[number]['val'] defaultOrderCategory: 'XiaoShou' | 'HuiShou' | 'DuanBo'
}>() }>()
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')
const historyDetailIns = useTemplateRef<InstanceType<typeof HistoryDetail>>('historyDetail') const historyDetailIns = useTemplateRef<InstanceType<typeof HistoryDetail>>('historyDetail')

View File

@ -3,7 +3,7 @@ import History from '@/pages/order/history/History.vue'
</script> </script>
<template> <template>
<History default-order-category="XiaoShouYuYue"/> <History default-order-category="XiaoShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -3,7 +3,7 @@ import History from '@/pages/order/history/History.vue'
</script> </script>
<template> <template>
<History default-order-category="HuiShouYuYue"/> <History default-order-category="HuiShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -107,7 +107,6 @@ import ATablePage, {
import { import {
checkStatus, checkStatus,
checkStatusColor, checkStatusColor,
orderCategory,
paymentStatusColor, paymentStatusColor,
transStatus, transStatus,
transStatusColor, transStatusColor,
@ -119,7 +118,7 @@ import type { R } from '@/common/utils/http-util.ts'
import RealtimeDetail from '@/pages/order/realtime/RealtimeDetail.vue' import RealtimeDetail from '@/pages/order/realtime/RealtimeDetail.vue'
const props = defineProps<{ const props = defineProps<{
defaultOrderCategory: typeof orderCategory[number]['val'] defaultOrderCategory: 'XiaoShou' | 'HuiShou' | 'DuanBo'
}>() }>()
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage') const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')
const realtimeDetailIns = useTemplateRef<InstanceType<typeof RealtimeDetail>>('realtimeDetail') const realtimeDetailIns = useTemplateRef<InstanceType<typeof RealtimeDetail>>('realtimeDetail')

View File

@ -3,7 +3,7 @@ import Realtime from '@/pages/order/realtime/Realtime.vue'
</script> </script>
<template> <template>
<Realtime default-order-category="XiaoShouYuYue"/> <Realtime default-order-category="XiaoShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -3,7 +3,7 @@ import Realtime from '@/pages/order/realtime/Realtime.vue'
</script> </script>
<template> <template>
<Realtime default-order-category="HuiShouYuYue"/> <Realtime default-order-category="HuiShou"/>
</template> </template>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -9,11 +9,11 @@ const model = defineModel<string | undefined | null>()
const dropTableColumns = [ const dropTableColumns = [
{ {
label: '账号', label: '账号',
prop: 'username', prop: 'account.username',
}, },
{ {
label: '创建时间', label: '注册时间',
prop: 'createTime', prop: 'account.regdate',
}, },
] ]
const dropTableLoader = (param: UserTypes.SearchUserParam) => { const dropTableLoader = (param: UserTypes.SearchUserParam) => {