You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
10 KiB
1 lines
10 KiB
{"ast":null,"code":"import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"order-create\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input_number = _resolveComponent(\"el-input-number\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_card = _resolveComponent(\"el-card\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createVNode(_component_el_card, null, {\n header: _withCtx(() => _cache[4] || (_cache[4] = [_createElementVNode(\"div\", {\n class: \"card-header\"\n }, [_createElementVNode(\"span\", null, \"创建订单\")], -1 /* HOISTED */)])),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n ref: \"formRef\",\n model: $setup.form,\n rules: $setup.rules,\n \"label-width\": \"120px\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"商品名称\",\n prop: \"goodsName\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.goodsName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.form.goodsName = $event),\n placeholder: \"请输入商品名称\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"商品数量\",\n prop: \"goodsQuantity\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input_number, {\n modelValue: $setup.form.goodsQuantity,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.form.goodsQuantity = $event),\n min: 1\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"起始地\",\n prop: \"startLocation\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.startLocation,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.form.startLocation = $event),\n placeholder: \"请输入详细地址\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"目的地\",\n prop: \"endLocation\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.endLocation,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.form.endLocation = $event),\n placeholder: \"请输入详细地址\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, null, {\n default: _withCtx(() => [_createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.handleSubmit,\n loading: $setup.loading\n }, {\n default: _withCtx(() => _cache[5] || (_cache[5] = [_createTextVNode(\" 提交订单 \")])),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"loading\"]), _createVNode(_component_el_button, {\n onClick: $setup.handleReset\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"重置\")])),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n })]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createVNode","_component_el_card","header","_withCtx","_cache","_createElementVNode","default","_component_el_form","ref","model","$setup","form","rules","_component_el_form_item","label","prop","_component_el_input","modelValue","goodsName","$event","placeholder","_","_component_el_input_number","goodsQuantity","min","startLocation","endLocation","_component_el_button","type","onClick","handleSubmit","loading","_createTextVNode","handleReset"],"sources":["D:\\language\\VScode\\Front-end logistics\\src\\views\\order\\OrderCreate.vue"],"sourcesContent":["<template>\r\n <div class=\"order-create\">\r\n <el-card>\r\n <template #header>\r\n <div class=\"card-header\">\r\n <span>创建订单</span>\r\n </div>\r\n </template>\r\n \r\n <el-form\r\n ref=\"formRef\"\r\n :model=\"form\"\r\n :rules=\"rules\"\r\n label-width=\"120px\"\r\n >\r\n <el-form-item label=\"商品名称\" prop=\"goodsName\">\r\n <el-input v-model=\"form.goodsName\" placeholder=\"请输入商品名称\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"商品数量\" prop=\"goodsQuantity\">\r\n <el-input-number v-model=\"form.goodsQuantity\" :min=\"1\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"起始地\" prop=\"startLocation\">\r\n <el-input v-model=\"form.startLocation\" placeholder=\"请输入详细地址\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"目的地\" prop=\"endLocation\">\r\n <el-input v-model=\"form.endLocation\" placeholder=\"请输入详细地址\" />\r\n </el-form-item>\r\n \r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"handleSubmit\" :loading=\"loading\">\r\n 提交订单\r\n </el-button>\r\n <el-button @click=\"handleReset\">重置</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, reactive, computed } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\nimport { useStore } from 'vuex'\r\nimport { ElMessage } from 'element-plus'\r\nimport { createOrder } from '@/api/order'\r\n\r\nconst router = useRouter()\r\nconst store = useStore()\r\nconst formRef = ref(null)\r\nconst loading = ref(false)\r\n\r\n// 从 store 中获取用户 ID\r\nconst customerId = computed(() => store.state.userInfo.id)\r\n\r\nconst form = reactive({\r\n goodsName: '',\r\n goodsQuantity: 1,\r\n startLocation: '',\r\n endLocation: ''\r\n})\r\n\r\nconst rules = {\r\n goodsName: [\r\n { required: true, message: '请输入商品名称', trigger: 'blur' }\r\n ],\r\n goodsQuantity: [\r\n { required: true, message: '请输入商品数量', trigger: 'blur' },\r\n { type: 'number', min: 1, message: '数量必须大于0', trigger: 'blur' }\r\n ],\r\n startLocation: [\r\n { required: true, message: '请输入起始地', trigger: 'blur' }\r\n ],\r\n endLocation: [\r\n { required: true, message: '请输入目的地', trigger: 'blur' }\r\n ]\r\n}\r\n\r\nconst handleSubmit = async () => {\r\n if (!formRef.value) return\r\n \r\n try {\r\n await formRef.value.validate()\r\n loading.value = true\r\n \r\n // 构造请求数据\r\n const orderData = {\r\n customerId: customerId.value,\r\n goodsName: form.goodsName,\r\n goodsQuantity: form.goodsQuantity,\r\n startLocation: form.startLocation,\r\n endLocation: form.endLocation\r\n }\r\n \r\n const res = await createOrder(orderData)\r\n if (res.code === 200) {\r\n ElMessage.success('订单创建成功')\r\n router.push('/orders/my')\r\n } else {\r\n throw new Error(res.message || '创建订单失败')\r\n }\r\n } catch (error) {\r\n console.error('创建订单失败:', error)\r\n ElMessage.error(error.message || '创建订单失败,请重试')\r\n } finally {\r\n loading.value = false\r\n }\r\n}\r\n\r\nconst handleReset = () => {\r\n if (formRef.value) {\r\n formRef.value.resetFields()\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.order-create {\r\n max-width: 800px;\r\n margin: 0 auto;\r\n}\r\n\r\n.card-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n</style> "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|