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
15 KiB
1 lines
15 KiB
{"ast":null,"code":"import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, resolveDirective as _resolveDirective, openBlock as _openBlock, createBlock as _createBlock, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"location-management\"\n};\nconst _hoisted_2 = {\n class: \"card-header\"\n};\nconst _hoisted_3 = {\n class: \"dialog-footer\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_table_column = _resolveComponent(\"el-table-column\");\n const _component_el_tag = _resolveComponent(\"el-tag\");\n const _component_el_table = _resolveComponent(\"el-table\");\n const _component_el_card = _resolveComponent(\"el-card\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n const _directive_loading = _resolveDirective(\"loading\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createVNode(_component_el_card, null, {\n header: _withCtx(() => [_createElementVNode(\"div\", _hoisted_2, [_cache[7] || (_cache[7] = _createElementVNode(\"span\", {\n class: \"title\"\n }, \"中转点管理\", -1 /* HOISTED */)), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.handleAdd\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"新增中转点\")])),\n _: 1 /* STABLE */\n })])]),\n default: _withCtx(() => [_withDirectives((_openBlock(), _createBlock(_component_el_table, {\n data: $setup.locationList,\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_table_column, {\n prop: \"id\",\n label: \"ID\",\n width: \"80\"\n }), _createVNode(_component_el_table_column, {\n prop: \"fullAddress\",\n label: \"完整地址\"\n }), _createVNode(_component_el_table_column, {\n prop: \"contactPhone\",\n label: \"联系电话\",\n width: \"150\"\n }), _createVNode(_component_el_table_column, {\n prop: \"status\",\n label: \"状态\",\n width: \"100\"\n }, {\n default: _withCtx(({\n row\n }) => [_createVNode(_component_el_tag, {\n type: row.status === 1 ? 'success' : 'danger'\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(row.status === 1 ? '正常' : '停用'), 1 /* TEXT */)]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"type\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"data\"])), [[_directive_loading, $setup.loading]])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 新增中转点对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.dialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.dialogVisible = $event),\n title: \"新增中转点\",\n width: \"500px\"\n }, {\n footer: _withCtx(() => [_createElementVNode(\"span\", _hoisted_3, [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.dialogVisible = false)\n }, {\n default: _withCtx(() => _cache[8] || (_cache[8] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.submitForm,\n loading: $setup.submitting\n }, {\n default: _withCtx(() => _cache[9] || (_cache[9] = [_createTextVNode(\" 确认 \")])),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"loading\"])])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n ref: \"formRef\",\n model: $setup.form,\n rules: $setup.rules,\n \"label-width\": \"100px\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"省份\",\n prop: \"province\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.province,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.form.province = $event),\n placeholder: \"请输入省份\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"城市\",\n prop: \"city\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.city,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.form.city = $event),\n placeholder: \"请输入城市\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"详细地址\",\n prop: \"address\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.address,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.form.address = $event),\n placeholder: \"请输入详细地址\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"联系电话\",\n prop: \"contactPhone\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.form.contactPhone,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.form.contactPhone = $event),\n placeholder: \"请输入11位手机号\"\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createVNode","_component_el_card","header","_withCtx","_createElementVNode","_hoisted_2","_component_el_button","type","onClick","$setup","handleAdd","default","_cache","_createTextVNode","_","_createBlock","_component_el_table","data","locationList","style","_component_el_table_column","prop","label","width","row","_component_el_tag","status","_toDisplayString","loading","_createCommentVNode","_component_el_dialog","modelValue","dialogVisible","$event","title","footer","_hoisted_3","submitForm","submitting","_component_el_form","ref","model","form","rules","_component_el_form_item","_component_el_input","province","placeholder","city","address","contactPhone"],"sources":["D:\\vueEX\\Front-end logistics\\src\\views\\admin\\LocationManagement.vue"],"sourcesContent":["<template>\r\n <div class=\"location-management\">\r\n <el-card>\r\n <template #header>\r\n <div class=\"card-header\">\r\n <span class=\"title\">中转点管理</span>\r\n <el-button type=\"primary\" @click=\"handleAdd\">新增中转点</el-button>\r\n </div>\r\n </template>\r\n \r\n <el-table\r\n v-loading=\"loading\"\r\n :data=\"locationList\"\r\n style=\"width: 100%\"\r\n >\r\n <el-table-column prop=\"id\" label=\"ID\" width=\"80\" />\r\n <el-table-column prop=\"fullAddress\" label=\"完整地址\" />\r\n <el-table-column prop=\"contactPhone\" label=\"联系电话\" width=\"150\" />\r\n <el-table-column prop=\"status\" label=\"状态\" width=\"100\">\r\n <template #default=\"{ row }\">\r\n <el-tag :type=\"row.status === 1 ? 'success' : 'danger'\">\r\n {{ row.status === 1 ? '正常' : '停用' }}\r\n </el-tag>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-card>\r\n\r\n <!-- 新增中转点对话框 -->\r\n <el-dialog\r\n v-model=\"dialogVisible\"\r\n title=\"新增中转点\"\r\n width=\"500px\"\r\n >\r\n <el-form\r\n ref=\"formRef\"\r\n :model=\"form\"\r\n :rules=\"rules\"\r\n label-width=\"100px\"\r\n >\r\n <el-form-item label=\"省份\" prop=\"province\">\r\n <el-input v-model=\"form.province\" placeholder=\"请输入省份\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"城市\" prop=\"city\">\r\n <el-input v-model=\"form.city\" placeholder=\"请输入城市\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"详细地址\" prop=\"address\">\r\n <el-input v-model=\"form.address\" placeholder=\"请输入详细地址\" />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"联系电话\" prop=\"contactPhone\">\r\n <el-input v-model=\"form.contactPhone\" placeholder=\"请输入11位手机号\" />\r\n </el-form-item>\r\n </el-form>\r\n \r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"dialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"submitForm\" :loading=\"submitting\">\r\n 确认\r\n </el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, reactive } from 'vue'\r\nimport { ElMessage } from 'element-plus'\r\nimport { getLocations, createLocation } from '@/api/order'\r\n\r\nconst loading = ref(false)\r\nconst submitting = ref(false)\r\nconst dialogVisible = ref(false)\r\nconst locationList = ref([])\r\nconst formRef = ref(null)\r\n\r\n// 表单数据\r\nconst form = reactive({\r\n province: '',\r\n city: '',\r\n address: '',\r\n contactPhone: ''\r\n})\r\n\r\n// 表单验证规则\r\nconst rules = {\r\n province: [\r\n { required: true, message: '请输入省份', trigger: 'blur' }\r\n ],\r\n city: [\r\n { required: true, message: '请输入城市', trigger: 'blur' }\r\n ],\r\n address: [\r\n { required: true, message: '请输入详细地址', trigger: 'blur' }\r\n ],\r\n contactPhone: [\r\n { required: true, message: '请输入联系电话', trigger: 'blur' },\r\n { pattern: /^1[3-9]\\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }\r\n ]\r\n}\r\n\r\n// 加载中转点列表\r\nconst loadLocations = async () => {\r\n loading.value = true\r\n try {\r\n const res = await getLocations()\r\n if (res.code === 200) {\r\n locationList.value = res.data\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\n// 处理新增\r\nconst handleAdd = () => {\r\n form.province = ''\r\n form.city = ''\r\n form.address = ''\r\n form.contactPhone = ''\r\n dialogVisible.value = true\r\n}\r\n\r\n// 提交表单\r\nconst submitForm = async () => {\r\n if (!formRef.value) return\r\n \r\n try {\r\n await formRef.value.validate()\r\n submitting.value = true\r\n \r\n const res = await createLocation(form)\r\n if (res.code === 200) {\r\n ElMessage.success('中转点创建成功')\r\n dialogVisible.value = false\r\n loadLocations() // 重新加载列表\r\n }\r\n } catch (error) {\r\n console.error('创建中转点失败:', error)\r\n ElMessage.error(error.message || '创建中转点失败')\r\n } finally {\r\n submitting.value = false\r\n }\r\n}\r\n\r\n// 初始加载\r\nloadLocations()\r\n</script>\r\n\r\n<style scoped>\r\n.location-management {\r\n min-height: 100%;\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\r\n.title {\r\n font-size: 18px;\r\n font-weight: bold;\r\n}\r\n\r\n.dialog-footer {\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: 10px;\r\n}\r\n</style> "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|