diff --git a/src/api/order/order.ts b/src/api/order/order.ts index 18e7539f17fa6d23c7e05d10b5490df8211826cb..b26920f698e58c9e7eb519e167738e8a74424cb6 100644 --- a/src/api/order/order.ts +++ b/src/api/order/order.ts @@ -2,6 +2,7 @@ import { http } from '@/utils/http/axios'; import qs from 'qs'; export interface BasicResponseModel { +map(arg0: (item: any) => { label: any; value: any; id: any; status: any; sort: any; }): never[]; code: number; message: string; result: T; @@ -79,3 +80,24 @@ export const getOrderItemPage = (orderId) => { params: { orderId }, }); }; +/** + * 获取物流公司列表的的api + */ +export const getLogistics = (params?) => { + return http.request({ + url: '/order/order/logistics', + method: 'GET', + params, + }); +}; +/** + * 订单发货的api + */ + +export const shipment = (params) => { + return http.request({ + url: '/order/order/shipment', + method: 'PUT', + params:params + }) +} \ No newline at end of file diff --git a/src/router/modules/order.ts b/src/router/modules/order.ts index 7c0e58c61e3dcc430f73bb7f668a3a9f2ac0d9d4..327f68441169ec2acb0ed61830aa2286f4390ea1 100644 --- a/src/router/modules/order.ts +++ b/src/router/modules/order.ts @@ -30,11 +30,23 @@ const routes: Array = [ path: 'order-list', name: 'orderList', meta: { - title: '订单列表', + title: '订单管理', permissions: ['order_list'], //keepAlive: true, }, component: () => import('@/views/order/orderList/index.vue'), + children: [ + { + path: 'order-list', + name: 'orderList', + meta: { + title: '订单列表', + permissions: ['order_list'], + //keepAlive: true, + }, + component: () => import('@/views/order/orderList/index.vue'), + }, + ], }, ], }, diff --git a/src/views/order/orderList/index.vue b/src/views/order/orderList/index.vue index 5285ff10c56cdab3dd57720fcbb824e2bb71d742..d14cee715d7b872694c4aa8505a5220cab39bff2 100644 --- a/src/views/order/orderList/index.vue +++ b/src/views/order/orderList/index.vue @@ -47,6 +47,21 @@ + + + + @@ -55,12 +70,14 @@ import { useDialog, useMessage } from 'naive-ui'; import { BasicTable, TableAction } from '@/components/Table'; import { BasicForm, FormSchema, useForm } from '@/components/Form/index'; - import { getOrderPage, saveOrder, updateOrder, deleteOrder } from '@/api/order/order'; + import { getOrderPage, saveOrder, updateOrder, deleteOrder, shipment } from '@/api/order/order'; import { columns } from './columns'; import { PlusOutlined } from '@vicons/antd'; import { ResultEnum } from '@/enums/httpEnum'; import OrderDetail from './lib/components/OrderDetail.vue'; import OrderItem from './lib/components/OrderItem.vue'; + import { OrderStatus } from '@/enums/orderEnum'; + import OrderShipments from './lib/components/OrderShipments.vue'; const schemas: FormSchema[] = [ { field: 'orderType', @@ -97,17 +114,22 @@ rules: [{ required: false }], }, ]; - const formRef: any = ref(null); const message = useMessage(); const actionRef = ref(); - + const isShipmentsShow = ref(false); const showModal = ref(false); const formBtnLoading = ref(false); const checkedOrderId = ref(); //当前编辑id const isEdit = ref(false); // 弹出框是否为编辑 + const shipmentMsg = ref({ + logisticsName: '', + logisticsId: null, + logisticsSn: '', + orderSn: 0, + }); // 提交发货信息数据 const editTitle = ref(''); - const dialog = useDialog(); + // const dialog = useDialog(); const formParams = reactive({ id: null, orderSn: '', @@ -142,6 +164,7 @@ createTime: '', completeTime: '', }); + const optionTitle = ref(''); const formParamsBak = { ...formParams }; const params = ref({}); @@ -152,19 +175,22 @@ key: 'action', fixed: 'right', render(record) { + // ResultEnum.ERROR + let action: Array<{}> = [ + { + label: '订单详情', + onClick: handleEdit.bind(null, record), + }, + ]; + if (Number(record.orderStatus) === OrderStatus.AlreadyPay) { + action.push({ + label: '发货', + onClick: shipments.bind(null, record), + }); + } return h(TableAction as any, { style: 'button', - actions: [ - { - label: '订单详情', - onClick: handleEdit.bind(null, record), - }, - // { - // label: '删除', - // icon: 'ic:outline-delete-outline', - // onClick: handleDelete.bind(null, record), - // }, - ], + actions: action, }); }, }); @@ -265,6 +291,26 @@ function handleReset(values: Recordable) { console.log(values); } + const shipments = (record: Recordable) => { + // console.log('点击了编辑', record); + optionTitle.value = '订单信息'; + Object.assign(formParams, record); + isShipmentsShow.value = true; + }; + const sure = (value) => { + shipmentMsg.value = value; + }; + // 请求发货的方法 + const submitSure = async () => { + if ( + shipmentMsg.value.logisticsName.length !== 0 && + shipmentMsg.value.logisticsSn.length !== 0 + ) { + await shipment(shipmentMsg.value); + } else { + message.error('还有选项没有填'); + } + }; diff --git a/src/views/order/orderList/lib/components/OrderShipments.vue b/src/views/order/orderList/lib/components/OrderShipments.vue new file mode 100644 index 0000000000000000000000000000000000000000..116371690e5a13d7e99e3df56107e5b25262598f --- /dev/null +++ b/src/views/order/orderList/lib/components/OrderShipments.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/views/setting/system/BasicSetting.vue b/src/views/setting/system/BasicSetting.vue index 9fc3cab49f9d99a2b0d6d00959bb5be531d68855..e3aa99a7c9e35f12dfc7ba7bf4d3d9b72fddbcfe 100755 --- a/src/views/setting/system/BasicSetting.vue +++ b/src/views/setting/system/BasicSetting.vue @@ -30,7 +30,7 @@ :maxSize="2" :maxNumber="1" @uploadChange="uploadChangeMini" - v-model:value="miniLogo" + v-model:value="smallLogo" helpText="单个文件不超过2MB,最多只能上传1个文件" /> @@ -43,6 +43,7 @@ :maxSize="1" :maxNumber="1" @uploadChange="uploadChange" + v-model:value="logo" helpText="单个文件不超过2MB,最多只能上传1个文件" /> @@ -87,8 +88,9 @@ const formRef: any = ref(null); const message = useMessage(); const dialog = useDialog(); - const miniLogo = ref(); - const logo = ref(); + const smallLogo = ref([]); + const logo = ref([]); + const id = ref(1); const state = reactive({ formValue: { siteName: '', @@ -124,24 +126,24 @@ // 获取设置 async function getSettings() { const res = await getSetting({ settingName: 'site' }); - // console.log(res); state.formValue = res.settings; - logo.value = res.settings.logo; - miniLogo.value = res.settings.miniLogo; - // console.log(miniLogo.value); + logo.value[0] = res.settings.logo; + smallLogo.value[0] = res.settings.smallLogo; } getSettings(); function formSubmit() { formRef.value.validate(async (errors) => { if (!errors) { - message.success('验证成功'); try { await saveSetting({ - id: 1, + id: id.value, settingName: 'site', settings: state.formValue, //设置内容, }); - } catch (error) {} + message.success('提交成功'); + } catch (error) { + console.log(111, error); + } } else { message.error('验证失败,请填写完整信息'); } @@ -161,7 +163,7 @@ formRef, ...toRefs(state), rules, - miniLogo, + smallLogo, logo, formSubmit, resetForm,