订单列表
parent
824d2402a9
commit
8894d0bb48
|
|
@ -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,
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
|
|
||||||
|
|
@ -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']
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
// 创建人 Id;sys_user.id
|
|
||||||
creatorId?: string
|
|
||||||
// 修改人 Id;sys_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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue