diff --git a/src/components/a-drop-table/ADropTable.vue b/src/components/a-drop-table/ADropTable.vue index a7fa97e..affa445 100644 --- a/src/components/a-drop-table/ADropTable.vue +++ b/src/components/a-drop-table/ADropTable.vue @@ -33,7 +33,7 @@ const selectRows = Utils.resetAble(reactive([])) function paging() { searching.value = true - return props.loader(searchForm) + return props.loader(searchForm.$clone()) .then(res => { totalCount.value = res.total ?? 0 const value = res.records ?? [] diff --git a/src/components/a-page/a-table-page/ATablePage.tsx b/src/components/a-page/a-table-page/ATablePage.tsx index 7f62749..6cd6f08 100644 --- a/src/components/a-page/a-table-page/ATablePage.tsx +++ b/src/components/a-page/a-table-page/ATablePage.tsx @@ -120,7 +120,7 @@ interface FormPropsType { */ labelWidth: number, /** - * 输入框宽度,单位:px,默认:190px + * 输入框宽度,单位:px,默认:200px */ contentWidth: number, /** @@ -135,7 +135,25 @@ interface FormPropsType { /** * 简单查询表单配置 */ - simpleForm: Partial + simpleForm: Partial & { + /** + * 列数,默认:1 + */ + colCount: number, + /** + * 输入框宽度,单位:px,默认:200px + */ + contentWidth: number, + + /** + * 行间隔,单位:px,默认:10px + */ + // rgap: number, + /** + * 列间隔,单位:px,默认:10px + */ + // cgap: number + } } /** @@ -180,15 +198,28 @@ function buildSearchForm(searchForm: DeepPartial { + const colCount = props.searchForm.simpleForm.colCount + const contentWidth = props.searchForm.simpleForm.contentWidth + const btnCount = props.toolBar.rightTools.length + (props.searchForm.export == null ? 0 : 1) + (props.pageLayout.enableHighForm ? 1 : 0) + return { + '--form-item-count': colCount, + '--form-item-width': contentWidth + 'px', + // '--rgap': props.searchForm.simpleForm.rgap + 'px', + // '--cgap': props.searchForm.simpleForm.cgap + 'px', + '--btn-count': btnCount, + } + }) + const pageCssParam = computed(() => { const dataListHeight = props.pageLayout.dataListHeight const searchFormHeight = props.pageLayout.searchFormHeight @@ -520,7 +564,7 @@ const component = defineComponent( )) } -
+
{/*@ts-ignore*/} diff --git a/src/components/a-page/a-table-page/a-table-page.module.styl b/src/components/a-page/a-table-page/a-table-page.module.styl index 3657ca3..5a96945 100644 --- a/src/components/a-page/a-table-page/a-table-page.module.styl +++ b/src/components/a-page/a-table-page/a-table-page.module.styl @@ -53,7 +53,7 @@ box-sizing: border-box; display grid grid-template-columns 1fr - grid-template-rows 50px minmax(0, 1fr) 50px + grid-template-rows 32px minmax(0, 1fr) 50px border: 1px solid var(--el-border-color-light); padding: 15px 20px 20px 15px; border-radius: 8px; @@ -64,8 +64,7 @@ .tool-bar { display: grid; - grid-template-columns: minmax(260px, 1fr) minmax(428px, 1fr); - grid-template-rows: 50px; + grid-template-columns: 1fr auto; box-sizing: border-box; .tool-bar-left { @@ -74,16 +73,28 @@ .tool-bar-right { display grid - grid-template-columns: minmax(200px, 1fr) auto; - grid-auto-rows: 32px; + justify-self end + grid-template-columns: auto calc(var(--btn-count) * 42px + 64px); + grid-template-rows: 32px; gap 10px & > div:first-child { justify-self: end; + //width 100%; + //width calc(var(--form-item-count) * var(--form-item-width) * 1px + var(--form-item-count) * 10px) ; + + /*:global(.el-scrollbar__wrap) { + width 100%; + } + + :global(.el-scrollbar__view) { + width 100%; + }*/ :global(.el-form) { + //width 100%; display: grid; - grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); + grid-template-columns: repeat(var(--form-item-count), var(--form-item-width)); gap 10px :global(.el-form-item) { diff --git a/src/dts/components.d.ts b/src/dts/components.d.ts index c718434..d84b264 100644 --- a/src/dts/components.d.ts +++ b/src/dts/components.d.ts @@ -5,6 +5,7 @@ // ------ // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 +import { GlobalComponents } from 'vue' export {} @@ -117,4 +118,4 @@ declare global { const ElUpload: typeof import('element-plus/es')['ElUpload'] const RouterLink: typeof import('vue-router')['RouterLink'] const RouterView: typeof import('vue-router')['RouterView'] -} +} \ No newline at end of file diff --git a/src/pages/a-frame/AFrame.vue b/src/pages/a-frame/AFrame.vue index c8ce305..c581284 100644 --- a/src/pages/a-frame/AFrame.vue +++ b/src/pages/a-frame/AFrame.vue @@ -100,6 +100,7 @@ onUnmounted(() => { & > div:nth-child(1) { height: 100%; + min-width 300px; display: flex; align-items: center; box-sizing border-box @@ -118,8 +119,10 @@ onUnmounted(() => { & > div:nth-child(2) { height: 100%; + min-width 400px; display: flex; align-items: center; + justify-content end box-sizing border-box gap 20px diff --git a/src/pages/fin/expense-item/ExpenseItem.vue b/src/pages/fin/expense-item/ExpenseItem.vue new file mode 100644 index 0000000..6db6ee0 --- /dev/null +++ b/src/pages/fin/expense-item/ExpenseItem.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/pages/fin/expense-item/ExpenseItemDetail.vue b/src/pages/fin/expense-item/ExpenseItemDetail.vue new file mode 100644 index 0000000..a46963e --- /dev/null +++ b/src/pages/fin/expense-item/ExpenseItemDetail.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/pages/fin/expense-item/ExpenseItemForm.vue b/src/pages/fin/expense-item/ExpenseItemForm.vue new file mode 100644 index 0000000..c2cf4e4 --- /dev/null +++ b/src/pages/fin/expense-item/ExpenseItemForm.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/pages/fin/expense-item/expense-item-api.ts b/src/pages/fin/expense-item/expense-item-api.ts new file mode 100644 index 0000000..113040d --- /dev/null +++ b/src/pages/fin/expense-item/expense-item-api.ts @@ -0,0 +1,22 @@ +import { + get, + post, +} from '@/common/utils/http-util.ts' + +export default { + paging(data: ExpenseItemTypes.SearchExpenseItemParam) { + return get>('/expense_item/paging', data) + }, + detail(id: string) { + return get('/expense_item/detail', {id}) + }, + add(data: ExpenseItemTypes.AddExpenseItemParam) { + return post('/expense_item/add', data) + }, + modify(data: ExpenseItemTypes.ModifyExpenseItemParam) { + return post('/expense_item/modify', data) + }, + del(ids: string[]) { + return post('/expense_item/del', ids) + }, +} diff --git a/src/pages/fin/expense-item/expense-item.d.ts b/src/pages/fin/expense-item/expense-item.d.ts new file mode 100644 index 0000000..7c803fd --- /dev/null +++ b/src/pages/fin/expense-item/expense-item.d.ts @@ -0,0 +1,185 @@ +export {} + +declare global { + namespace ExpenseItemTypes { + interface SearchExpenseItemParam extends G.PageParam { + // Id + id?: string + // 归属用户 Id + userId?: string + // 归属客户 Id + customerId?: string + // 归属组织 Id + orgId?: string + // 产品 Id;仅当项目类型为“产品”时有值 + goodsId?: string + // 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 + expenseItemCategory?: string + // 付费项名称 + expenseItemName?: string + // 计费策略;字典代码:expense_strategy,MianFei-->免费、TanXing-->弹性、GuDing-->固定、DanJia-->单价 + expenseStrategy?: string + // 计量单位;字典代码:unit,Che-->车、Fang-->方、GongLi-->公里、Dun-->吨 + unit?: string + // 税率 + taxRate?: string + // 单价;单位:元,弹性模式-->每档价格 + unitPrice?: string + // 起步价;单位:元,<= 起步量 固定费用 + initialPrice?: string + // 起步量 + initialQuantity?: number + // 每档的量 + everyQuantity?: number + // 是否可用;0-->否、1-->是 + canuse?: boolean + // 备注 + memo?: string + // 创建人 Id; sys_user.id + creatorId?: string + // 修改人 Id; sys_user.id + modifierId?: string + // 创建时间 + createTime?: string + // 修改时间 + modifyTime?: string + // 是否删除; 0-->未删除、1-->已删除 + deleted?: boolean + } + + interface SearchExpenseItemResult { + // Id + id?: string + // 归属用户 Id + userId?: string + // 归属客户 Id + customerId?: string + // 归属组织 Id + orgId?: string + // 产品 Id;仅当项目类型为“产品”时有值 + goodsId?: string + // 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 + expenseItemCategory?: string + // 付费项名称 + expenseItemName?: string + // 计费策略;字典代码:expense_strategy,MianFei-->免费、TanXing-->弹性、GuDing-->固定、DanJia-->单价 + expenseStrategy?: string + // 计量单位;字典代码:unit,Che-->车、Fang-->方、GongLi-->公里、Dun-->吨 + unit?: string + // 税率 + taxRate?: string + // 单价;单位:元,弹性模式-->每档价格 + unitPrice?: string + // 起步价;单位:元,<= 起步量 固定费用 + initialPrice?: string + // 起步量 + initialQuantity?: number + // 每档的量 + everyQuantity?: number + // 是否可用;0-->否、1-->是 + canuse?: boolean + // 备注 + memo?: string + // 创建人 Id; sys_user.id + creatorId?: string + // 修改人 Id; sys_user.id + modifierId?: string + // 创建时间 + createTime?: string + // 修改时间 + modifyTime?: string + // 是否删除; 0-->未删除、1-->已删除 + deleted?: boolean + } + + interface AddExpenseItemParam { + // Id + id?: string + // 归属用户 Id + userId?: string + // 归属客户 Id + customerId?: string + // 归属组织 Id + orgId?: string + // 产品 Id;仅当项目类型为“产品”时有值 + goodsId?: string + // 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 + expenseItemCategory?: string + // 付费项名称 + expenseItemName?: string + // 计费策略;字典代码:expense_strategy,MianFei-->免费、TanXing-->弹性、GuDing-->固定、DanJia-->单价 + expenseStrategy?: string + // 计量单位;字典代码:unit,Che-->车、Fang-->方、GongLi-->公里、Dun-->吨 + unit?: string + // 税率 + taxRate?: string + // 单价;单位:元,弹性模式-->每档价格 + unitPrice?: string + // 起步价;单位:元,<= 起步量 固定费用 + initialPrice?: string + // 起步量 + initialQuantity?: number + // 每档的量 + everyQuantity?: number + // 是否可用;0-->否、1-->是 + canuse?: boolean + // 备注 + memo?: string + // 创建人 Id; sys_user.id + creatorId?: string + // 修改人 Id; sys_user.id + modifierId?: string + // 创建时间 + createTime?: string + // 修改时间 + modifyTime?: string + // 是否删除; 0-->未删除、1-->已删除 + deleted?: boolean + } + + interface ModifyExpenseItemParam { + // Id + id?: string + // 归属用户 Id + userId?: string + // 归属客户 Id + customerId?: string + // 归属组织 Id + orgId?: string + // 产品 Id;仅当项目类型为“产品”时有值 + goodsId?: string + // 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 + expenseItemCategory?: string + // 付费项名称 + expenseItemName?: string + // 计费策略;字典代码:expense_strategy,MianFei-->免费、TanXing-->弹性、GuDing-->固定、DanJia-->单价 + expenseStrategy?: string + // 计量单位;字典代码:unit,Che-->车、Fang-->方、GongLi-->公里、Dun-->吨 + unit?: string + // 税率 + taxRate?: string + // 单价;单位:元,弹性模式-->每档价格 + unitPrice?: string + // 起步价;单位:元,<= 起步量 固定费用 + initialPrice?: string + // 起步量 + initialQuantity?: number + // 每档的量 + everyQuantity?: number + // 是否可用;0-->否、1-->是 + canuse?: boolean + // 备注 + memo?: string + // 创建人 Id; sys_user.id + creatorId?: string + // 修改人 Id; sys_user.id + modifierId?: string + // 创建时间 + createTime?: string + // 修改时间 + modifyTime?: string + // 是否删除; 0-->未删除、1-->已删除 + deleted?: boolean + } + } +} diff --git a/src/pages/fin/expense-item/page.ts b/src/pages/fin/expense-item/page.ts new file mode 100644 index 0000000..2eacd37 --- /dev/null +++ b/src/pages/fin/expense-item/page.ts @@ -0,0 +1,3 @@ +export default { + component: () => import('@/pages/fin/expense-item/ExpenseItem.vue'), +} as RouterTypes.RouteConfig \ No newline at end of file diff --git a/src/pages/gds/goods-category/GoodsCategory.vue b/src/pages/gds/goods-category/GoodsCategory.vue index 9d43be9..cd00f88 100644 --- a/src/pages/gds/goods-category/GoodsCategory.vue +++ b/src/pages/gds/goods-category/GoodsCategory.vue @@ -3,11 +3,6 @@ ref="tablePage" v-bind="tablePageProps"> - + @@ -58,6 +48,10 @@ import ATablePage, { buildTablePageProps, } from '@/components/a-page/a-table-page/ATablePage.tsx' +const props = defineProps<{ + defaultBizType: typeof bizType[number]['val'] +}>() + const goodsCategoryFormIns = useTemplateRef>('goodsCategoryForm') const tablePageIns = useTemplateRef('tablePage') @@ -69,6 +63,24 @@ const tablePageProps = buildTablePageProps diff --git a/src/pages/gds/goods-category/GoodsCategoryDropTable.vue b/src/pages/gds/goods-category/GoodsCategoryDropTable.vue index a671a78..4dcf799 100644 --- a/src/pages/gds/goods-category/GoodsCategoryDropTable.vue +++ b/src/pages/gds/goods-category/GoodsCategoryDropTable.vue @@ -1,6 +1,12 @@ + + diff --git a/src/pages/gds/goods-category/product/page.ts b/src/pages/gds/goods-category/product/page.ts new file mode 100644 index 0000000..9a584fe --- /dev/null +++ b/src/pages/gds/goods-category/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/gds/product-category', + name: 'product-category', + component: () => import('@/pages/gds/goods-category/product/ProductCategory.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/gds/goods-category/waste/WasteCategory.vue b/src/pages/gds/goods-category/waste/WasteCategory.vue new file mode 100644 index 0000000..2d7dd4f --- /dev/null +++ b/src/pages/gds/goods-category/waste/WasteCategory.vue @@ -0,0 +1,8 @@ + + + diff --git a/src/pages/gds/goods-category/waste/page.ts b/src/pages/gds/goods-category/waste/page.ts new file mode 100644 index 0000000..01f77e2 --- /dev/null +++ b/src/pages/gds/goods-category/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/gds/waste-category', + name: 'waste-category', + component: () => import('@/pages/gds/goods-category/waste/WasteCategory.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/gds/goods/ExpenseConfig.vue b/src/pages/gds/goods/ExpenseConfig.vue deleted file mode 100644 index 037e2fb..0000000 --- a/src/pages/gds/goods/ExpenseConfig.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/src/pages/gds/goods/Goods.vue b/src/pages/gds/goods/Goods.vue index b263b09..72e0ae4 100644 --- a/src/pages/gds/goods/Goods.vue +++ b/src/pages/gds/goods/Goods.vue @@ -4,7 +4,7 @@ v-bind="tablePageProps"> - + @@ -56,6 +56,11 @@ import ATablePage, { type ATablePageInstance, buildTablePageProps, } from '@/components/a-page/a-table-page/ATablePage.tsx' +import { bizType } from '@/pages/gds/goods-category/constants.ts' + +const props = defineProps<{ + defaultBizType: typeof bizType[number]['val'] +}>() const goodsFormIns = useTemplateRef>('goodsForm') @@ -69,12 +74,16 @@ const tablePageProps = buildTablePageProps({ pageLayout: { searchFormHeight: '120px', dataListHeight: 1, + enableHighForm: false, }, searchForm: { + defaultData: {createTimes: [ undefined, undefined ], bizType: props.defaultBizType}, highForm: { contentWidth: 320, }, - defaultData: {createTimes: [ undefined, undefined ]}, + simpleForm: { + colCount: 2, + }, paging(param: GoodsTypes.SearchGoodsParam) { return GoodsApi.paging({ ...param, diff --git a/src/pages/gds/goods/GoodsForm.vue b/src/pages/gds/goods/GoodsForm.vue index 709d7b7..dcae7da 100644 --- a/src/pages/gds/goods/GoodsForm.vue +++ b/src/pages/gds/goods/GoodsForm.vue @@ -13,7 +13,7 @@ - + @@ -92,14 +92,15 @@ import { expenseStrategy, unit, } from '@/pages/gds/goods/constants.ts' +import { bizType } from '@/pages/gds/goods-category/constants.ts' const props = withDefaults(defineProps<{ research?: () => void + defaultBizType: typeof bizType[number]['val'] }>(), { research: () => { }, }) - const formPanelIns = useTemplateRef('formPanel') const uploaderIns = useTemplateRef>('uploader') const status = ref<'add' | 'modify'>('add') diff --git a/src/pages/gds/goods/page.ts b/src/pages/gds/goods/page.ts deleted file mode 100644 index 14ad11c..0000000 --- a/src/pages/gds/goods/page.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - component: () => import('@/pages/gds/goods/Goods.vue'), -} as RouterTypes.RouteConfig \ No newline at end of file diff --git a/src/pages/gds/goods/product/ProductGoods.vue b/src/pages/gds/goods/product/ProductGoods.vue new file mode 100644 index 0000000..94f68ef --- /dev/null +++ b/src/pages/gds/goods/product/ProductGoods.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/pages/gds/goods/product/page.ts b/src/pages/gds/goods/product/page.ts new file mode 100644 index 0000000..a194d95 --- /dev/null +++ b/src/pages/gds/goods/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/gds/product-goods', + name: 'product-goods', + component: () => import('@/pages/gds/goods/product/ProductGoods.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/gds/goods/waste/WasteGood.vue b/src/pages/gds/goods/waste/WasteGood.vue new file mode 100644 index 0000000..b3cc5c3 --- /dev/null +++ b/src/pages/gds/goods/waste/WasteGood.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/pages/gds/goods/waste/page.ts b/src/pages/gds/goods/waste/page.ts new file mode 100644 index 0000000..e1cabbd --- /dev/null +++ b/src/pages/gds/goods/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/gds/waste-goods', + name: 'waste-goods', + component: () => import('@/pages/gds/goods/waste/WasteGood.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/home/Home.vue b/src/pages/home/Home.vue index 9ca2a84..b62e1f6 100644 --- a/src/pages/home/Home.vue +++ b/src/pages/home/Home.vue @@ -16,7 +16,7 @@ const a = ref(false)

欢迎使用
再昇云智能收运系统

高效、安全、智能的一站式管理平台,助力您的业务腾飞。全新界面,极致体验,即刻开启您的数字化之旅。

-

+

@@ -116,8 +116,8 @@ const a = ref(false) color: #6C757D; margin-bottom: 40px; line-height: 1.6; - //max-width: 500px; - width: 7500px; + max-width: 500px; + //width: 7500px; } /* 按钮样式 */ diff --git a/src/pages/order/book/Book.vue b/src/pages/order/book/Book.vue index 24e8f2a..dc03e58 100644 --- a/src/pages/order/book/Book.vue +++ b/src/pages/order/book/Book.vue @@ -79,22 +79,31 @@ - + diff --git a/src/pages/order/book/page.ts b/src/pages/order/book/page.ts deleted file mode 100644 index bfc4d07..0000000 --- a/src/pages/order/book/page.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - component: () => import('@/pages/order/book/Book.vue'), -} as RouterTypes.RouteConfig diff --git a/src/pages/order/book/product/ProductBook.vue b/src/pages/order/book/product/ProductBook.vue new file mode 100644 index 0000000..9177a93 --- /dev/null +++ b/src/pages/order/book/product/ProductBook.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/book/product/page.ts b/src/pages/order/book/product/page.ts new file mode 100644 index 0000000..d67b4ab --- /dev/null +++ b/src/pages/order/book/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/product-book', + name: 'product-book', + component: () => import('@/pages/order/book/product/ProductBook.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/book/waste/WasteBook.vue b/src/pages/order/book/waste/WasteBook.vue new file mode 100644 index 0000000..94a0213 --- /dev/null +++ b/src/pages/order/book/waste/WasteBook.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/book/waste/page.ts b/src/pages/order/book/waste/page.ts new file mode 100644 index 0000000..60179a2 --- /dev/null +++ b/src/pages/order/book/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/waste-book', + name: 'waste-book', + component: () => import('@/pages/order/book/waste/WasteBook.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/cancel/Cancel.vue b/src/pages/order/cancel/Cancel.vue index d212733..ad54b6b 100644 --- a/src/pages/order/cancel/Cancel.vue +++ b/src/pages/order/cancel/Cancel.vue @@ -92,11 +92,16 @@ import ATablePage, { buildTablePageProps, } from '@/components/a-page/a-table-page/ATablePage.tsx' import BookDetail from '@/pages/order/book/BookDetail.vue' +import { orderCategory } from '@/pages/order/constants.ts' +import type { R } from '@/common/utils/http-util.ts' + +const props = defineProps<{ + defaultOrderCategory: typeof orderCategory[number]['val'] +}>() const tablePageIns = useTemplateRef('tablePage') const bookDetailIns = useTemplateRef>('bookDetail') - function research() { tablePageIns.value?.doSearch() } @@ -105,31 +110,10 @@ const tablePageProps = buildTablePageProps>) + }, + }, + + table: { + actionColumn: { + tableActions: [ + { + tooltip: '详情', + icon: 'Postcard', + type: 'primary', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '删除', + type: 'danger', + icon: 'Delete', + confirm: { + title: '确认删除吗?', + }, + action() { + }, + }, + ], }, }, }) diff --git a/src/pages/order/cancel/page.ts b/src/pages/order/cancel/page.ts deleted file mode 100644 index 3b73d23..0000000 --- a/src/pages/order/cancel/page.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - component: () => import('@/pages/order/cancel/Cancel.vue'), -} as RouterTypes.RouteConfig diff --git a/src/pages/order/cancel/product/ProductCancel.vue b/src/pages/order/cancel/product/ProductCancel.vue new file mode 100644 index 0000000..8d7af9c --- /dev/null +++ b/src/pages/order/cancel/product/ProductCancel.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/cancel/product/page.ts b/src/pages/order/cancel/product/page.ts new file mode 100644 index 0000000..cb9bff6 --- /dev/null +++ b/src/pages/order/cancel/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/product-cancel', + name: 'product-cancel', + component: () => import('@/pages/order/cancel/product/ProductCancel.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/cancel/waste/WasteCancel.vue b/src/pages/order/cancel/waste/WasteCancel.vue new file mode 100644 index 0000000..acaa275 --- /dev/null +++ b/src/pages/order/cancel/waste/WasteCancel.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/cancel/waste/page.ts b/src/pages/order/cancel/waste/page.ts new file mode 100644 index 0000000..a80b6a9 --- /dev/null +++ b/src/pages/order/cancel/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/waste-cancel', + name: 'waste-cancel', + component: () => import('@/pages/order/cancel/waste/WasteCancel.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/history/History.vue b/src/pages/order/history/History.vue index 6cb15c6..eba7b67 100644 --- a/src/pages/order/history/History.vue +++ b/src/pages/order/history/History.vue @@ -92,7 +92,12 @@ import ATablePage, { buildTablePageProps, } from '@/components/a-page/a-table-page/ATablePage.tsx' import BookDetail from '@/pages/order/book/BookDetail.vue' +import { orderCategory } from '@/pages/order/constants.ts' +import type { R } from '@/common/utils/http-util.ts' +const props = defineProps<{ + defaultOrderCategory: typeof orderCategory[number]['val'] +}>() const tablePageIns = useTemplateRef('tablePage') const bookDetailIns = useTemplateRef>('bookDetail') @@ -105,29 +110,10 @@ const tablePageProps = buildTablePageProps>) + }, + }, + table: { + actionColumn: { + tableActions: [ + { + tooltip: '详情', + icon: 'Postcard', + type: 'primary', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '三联单', + type: 'info', + icon: 'liandan', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '历史轨迹', + type: 'info', + icon: 'liandan', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + ], }, }, }) diff --git a/src/pages/order/history/page.ts b/src/pages/order/history/page.ts deleted file mode 100644 index c56db93..0000000 --- a/src/pages/order/history/page.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - component: () => import('@/pages/order/history/History.vue'), -} as RouterTypes.RouteConfig diff --git a/src/pages/order/history/product/ProductHistory.vue b/src/pages/order/history/product/ProductHistory.vue new file mode 100644 index 0000000..b4016f7 --- /dev/null +++ b/src/pages/order/history/product/ProductHistory.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/history/product/page.ts b/src/pages/order/history/product/page.ts new file mode 100644 index 0000000..a5593b0 --- /dev/null +++ b/src/pages/order/history/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/product-history', + name: 'product-history', + component: () => import('@/pages/order/history/product/ProductHistory.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/history/waste/WasteHistory.vue b/src/pages/order/history/waste/WasteHistory.vue new file mode 100644 index 0000000..619d9f5 --- /dev/null +++ b/src/pages/order/history/waste/WasteHistory.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/history/waste/page.ts b/src/pages/order/history/waste/page.ts new file mode 100644 index 0000000..eb9a143 --- /dev/null +++ b/src/pages/order/history/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/waste-history', + name: 'waste-history', + component: () => import('@/pages/order/history/waste/WasteHistory.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/realtime/Realtime.vue b/src/pages/order/realtime/Realtime.vue index bb1539d..dca123e 100644 --- a/src/pages/order/realtime/Realtime.vue +++ b/src/pages/order/realtime/Realtime.vue @@ -95,12 +95,17 @@ import ATablePage, { import BookDetail from '@/pages/order/book/BookDetail.vue' import { checkStatus, + orderCategory, transStatus, } from '@/pages/order/constants.ts' import InOutPanel from '@/pages/order/realtime/InOutPanel.vue' import { ElMessage } from 'element-plus' import { useTemplateRef } from 'vue' +import type { R } from '@/common/utils/http-util.ts' +const props = defineProps<{ + defaultOrderCategory: typeof orderCategory[number]['val'] +}>() const tablePageIns = useTemplateRef('tablePage') const bookDetailIns = useTemplateRef>('bookDetail') const inOutPanelIns = useTemplateRef>('inOutPanel') @@ -113,58 +118,10 @@ const tablePageProps = buildTablePageProps>) + }, + }, + table: { + actionColumn: { + width: 190, + foldLimit: 5, + tableActions: [ + { + tooltip: '详情', + icon: 'Postcard', + type: 'primary', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '三联单', + type: 'info', + icon: 'liandan', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '实时轨迹', + type: 'info', + icon: 'liandan', + action({row}) { + bookDetailIns.value?.open(row) + }, + }, + { + tooltip: '进场', + type: 'success', + icon: 'approach', + show({row}) { + return row.transStatus === transStatus.YunShuZhong + }, + action({row}) { + inOutPanelIns.value?.open(row.id!, row.truckLicensePlate!, '进场') + }, + }, + { + tooltip: '出场', + type: 'danger', + icon: 'carexit', + show({row}) { + return row.transStatus === transStatus.YiJinChang && (row.checkStatus === checkStatus.Wu || row.checkStatus === checkStatus.YiKanLiao) + }, + action({row}) { + inOutPanelIns.value?.open(row.id!, row.truckLicensePlate!, '出场') + }, + }, + { // 二级框 退单 + tooltip: '勘料', + type: 'warning', + icon: 'chakanliaodan', + confirm: { + title: '是否确认勘料', + }, + show({row}) { + return row.transStatus === transStatus.YiJinChang && row.checkStatus === checkStatus.WeiKanLiao + }, + action({row}) { + ElMessage.success(`${row.truckLicensePlate!}勘料成功`) + }, + }, + ], }, }, }) diff --git a/src/pages/order/realtime/page.ts b/src/pages/order/realtime/page.ts deleted file mode 100644 index 3a66ddd..0000000 --- a/src/pages/order/realtime/page.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - component: () => import('@/pages/order/realtime/Realtime.vue'), -} as RouterTypes.RouteConfig diff --git a/src/pages/order/realtime/product/ProductRealtime.vue b/src/pages/order/realtime/product/ProductRealtime.vue new file mode 100644 index 0000000..87f8c8b --- /dev/null +++ b/src/pages/order/realtime/product/ProductRealtime.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/realtime/product/page.ts b/src/pages/order/realtime/product/page.ts new file mode 100644 index 0000000..674cb6e --- /dev/null +++ b/src/pages/order/realtime/product/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/product-realtime', + name: 'product-realtime', + component: () => import('@/pages/order/realtime/product/ProductRealtime.vue'), +} as RouterTypes.RouteConfig diff --git a/src/pages/order/realtime/waste/WasteRealtime.vue b/src/pages/order/realtime/waste/WasteRealtime.vue new file mode 100644 index 0000000..b44fa69 --- /dev/null +++ b/src/pages/order/realtime/waste/WasteRealtime.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/pages/order/realtime/waste/page.ts b/src/pages/order/realtime/waste/page.ts new file mode 100644 index 0000000..9f07ad4 --- /dev/null +++ b/src/pages/order/realtime/waste/page.ts @@ -0,0 +1,5 @@ +export default { + path: '/order/waste-realtime', + name: 'waste-realtime', + component: () => import('@/pages/order/realtime/waste/WasteRealtime.vue'), +} as RouterTypes.RouteConfig diff --git a/z-doc/颜色计算.html b/z-doc/颜色计算.html new file mode 100644 index 0000000..536574a --- /dev/null +++ b/z-doc/颜色计算.html @@ -0,0 +1,464 @@ + + + + + + Element 风格颜色阶数计算器 + + + +
+

Element 风格颜色阶数计算器

+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + + +
+ +
+ +
+ +
+ + +
+
+ + +
复制成功!
+ + + +