订单
This commit is contained in:
@@ -576,6 +576,66 @@
|
||||
<el-option label="汤剂" value="汤剂" />
|
||||
</el-select>
|
||||
</el-form-item> </el-col>
|
||||
|
||||
<!-- 用量字段 -->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="用量" prop="dosage_amount">
|
||||
<!-- 浓缩水丸:1-10g 下拉选择 -->
|
||||
<el-select
|
||||
v-if="editForm.prescription_type === '浓缩水丸'"
|
||||
v-model="editForm.dosage_amount"
|
||||
placeholder="请选择用量"
|
||||
class="w-full"
|
||||
>
|
||||
<el-option :label="1 + 'g'" :value="1" />
|
||||
<el-option :label="2 + 'g'" :value="2" />
|
||||
<el-option :label="3 + 'g'" :value="3" />
|
||||
<el-option :label="4 + 'g'" :value="4" />
|
||||
<el-option :label="5 + 'g'" :value="5" />
|
||||
<el-option :label="6 + 'g'" :value="6" />
|
||||
<el-option :label="7 + 'g'" :value="7" />
|
||||
<el-option :label="8 + 'g'" :value="8" />
|
||||
<el-option :label="9 + 'g'" :value="9" />
|
||||
<el-option :label="10 + 'g'" :value="10" />
|
||||
</el-select>
|
||||
<!-- 饮片:50-250ml 下拉选择,步进50 -->
|
||||
<el-select
|
||||
v-else-if="editForm.prescription_type === '饮片'"
|
||||
v-model="editForm.dosage_amount"
|
||||
placeholder="请选择用量"
|
||||
class="w-full"
|
||||
>
|
||||
<el-option label="50ml" :value="50" />
|
||||
<el-option label="100ml" :value="100" />
|
||||
<el-option label="150ml" :value="150" />
|
||||
<el-option label="200ml" :value="200" />
|
||||
<el-option label="250ml" :value="250" />
|
||||
</el-select>
|
||||
<!-- 其他类型:自由输入 -->
|
||||
<el-input-number
|
||||
v-else
|
||||
v-model="editForm.dosage_amount"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
class="w-full"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- 饮片代煎选项 -->
|
||||
<el-col v-if="editForm.prescription_type === '饮片'" :span="8">
|
||||
<el-form-item label="是否代煎" prop="need_decoction">
|
||||
<el-radio-group v-model="editForm.need_decoction">
|
||||
<el-radio :label="true">代煎</el-radio>
|
||||
<el-radio :label="false">不代煎</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="每天几次" prop="times_per_day">
|
||||
<el-input-number v-model="editForm.times_per_day" :min="1" :max="10" class="!w-full" placeholder="每天服用次数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="服用天数" prop="usage_days">
|
||||
<el-input-number
|
||||
@@ -795,12 +855,26 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="收货地址" prop="shipping_address">
|
||||
<el-form-item label="省市区" prop="region">
|
||||
<el-cascader
|
||||
v-model="createOrderForm.region"
|
||||
:options="regionOptions"
|
||||
:props="{ value: 'name', label: 'name', children: 'children', emitPath: false, checkStrictly: false }"
|
||||
placeholder="请选择省/市/区"
|
||||
clearable
|
||||
filterable
|
||||
class="w-full"
|
||||
@change="handleRegionChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="详细地址" prop="shipping_address">
|
||||
<el-input
|
||||
v-model="createOrderForm.shipping_address"
|
||||
type="textarea"
|
||||
:rows="2"
|
||||
placeholder="完整收货地址"
|
||||
placeholder="请输入街道、门牌号等详细地址"
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
/>
|
||||
@@ -1176,6 +1250,7 @@ const createOrderForm = reactive({
|
||||
patient_id: '' as number | string,
|
||||
recipient_name: '',
|
||||
recipient_phone: '',
|
||||
region: [] as string[],
|
||||
shipping_address: '',
|
||||
is_follow_up: 0,
|
||||
medication_days: undefined as number | undefined,
|
||||
@@ -1191,6 +1266,146 @@ const createOrderForm = reactive({
|
||||
pay_order_ids: [] as number[]
|
||||
})
|
||||
|
||||
// 省市区数据(简化版,实际项目中应该从 API 获取或使用完整的省市区数据)
|
||||
const regionOptions = ref([
|
||||
{
|
||||
name: '四川省',
|
||||
children: [
|
||||
{
|
||||
name: '成都市',
|
||||
children: [
|
||||
{ name: '锦江区' },
|
||||
{ name: '青羊区' },
|
||||
{ name: '金牛区' },
|
||||
{ name: '武侯区' },
|
||||
{ name: '成华区' },
|
||||
{ name: '龙泉驿区' },
|
||||
{ name: '青白江区' },
|
||||
{ name: '新都区' },
|
||||
{ name: '温江区' },
|
||||
{ name: '双流区' },
|
||||
{ name: '郫都区' },
|
||||
{ name: '新津区' },
|
||||
{ name: '都江堰市' },
|
||||
{ name: '彭州市' },
|
||||
{ name: '邛崃市' },
|
||||
{ name: '崇州市' },
|
||||
{ name: '简阳市' },
|
||||
{ name: '金堂县' },
|
||||
{ name: '大邑县' },
|
||||
{ name: '蒲江县' }
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '绵阳市',
|
||||
children: [
|
||||
{ name: '涪城区' },
|
||||
{ name: '游仙区' },
|
||||
{ name: '安州区' },
|
||||
{ name: '江油市' },
|
||||
{ name: '三台县' },
|
||||
{ name: '盐亭县' },
|
||||
{ name: '梓潼县' },
|
||||
{ name: '北川羌族自治县' },
|
||||
{ name: '平武县' }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '北京市',
|
||||
children: [
|
||||
{
|
||||
name: '北京市',
|
||||
children: [
|
||||
{ name: '东城区' },
|
||||
{ name: '西城区' },
|
||||
{ name: '朝阳区' },
|
||||
{ name: '丰台区' },
|
||||
{ name: '石景山区' },
|
||||
{ name: '海淀区' },
|
||||
{ name: '门头沟区' },
|
||||
{ name: '房山区' },
|
||||
{ name: '通州区' },
|
||||
{ name: '顺义区' },
|
||||
{ name: '昌平区' },
|
||||
{ name: '大兴区' },
|
||||
{ name: '怀柔区' },
|
||||
{ name: '平谷区' },
|
||||
{ name: '密云区' },
|
||||
{ name: '延庆区' }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '上海市',
|
||||
children: [
|
||||
{
|
||||
name: '上海市',
|
||||
children: [
|
||||
{ name: '黄浦区' },
|
||||
{ name: '徐汇区' },
|
||||
{ name: '长宁区' },
|
||||
{ name: '静安区' },
|
||||
{ name: '普陀区' },
|
||||
{ name: '虹口区' },
|
||||
{ name: '杨浦区' },
|
||||
{ name: '闵行区' },
|
||||
{ name: '宝山区' },
|
||||
{ name: '嘉定区' },
|
||||
{ name: '浦东新区' },
|
||||
{ name: '金山区' },
|
||||
{ name: '松江区' },
|
||||
{ name: '青浦区' },
|
||||
{ name: '奉贤区' },
|
||||
{ name: '崇明区' }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '广东省',
|
||||
children: [
|
||||
{
|
||||
name: '广州市',
|
||||
children: [
|
||||
{ name: '荔湾区' },
|
||||
{ name: '越秀区' },
|
||||
{ name: '海珠区' },
|
||||
{ name: '天河区' },
|
||||
{ name: '白云区' },
|
||||
{ name: '黄埔区' },
|
||||
{ name: '番禺区' },
|
||||
{ name: '花都区' },
|
||||
{ name: '南沙区' },
|
||||
{ name: '从化区' },
|
||||
{ name: '增城区' }
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '深圳市',
|
||||
children: [
|
||||
{ name: '罗湖区' },
|
||||
{ name: '福田区' },
|
||||
{ name: '南山区' },
|
||||
{ name: '宝安区' },
|
||||
{ name: '龙岗区' },
|
||||
{ name: '盐田区' },
|
||||
{ name: '龙华区' },
|
||||
{ name: '坪山区' },
|
||||
{ name: '光明区' }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
])
|
||||
|
||||
// 处理省市区选择变化
|
||||
const handleRegionChange = (value: string[]) => {
|
||||
console.log('选择的省市区:', value)
|
||||
}
|
||||
|
||||
const createOrderLinkedPaidTotal = computed(() => {
|
||||
const ids = new Set(createOrderForm.pay_order_ids.map((x) => Number(x)))
|
||||
let s = 0
|
||||
@@ -1454,6 +1669,9 @@ const slipDietaryText = computed(() => {
|
||||
const editForm = reactive({
|
||||
id: 0,
|
||||
prescription_type: '浓缩水丸',
|
||||
dosage_amount: 1 as number | undefined,
|
||||
dosage_unit: 'g',
|
||||
need_decoction: false,
|
||||
patient_name: '',
|
||||
gender: 1,
|
||||
age: 0,
|
||||
@@ -1483,7 +1701,25 @@ const editForm = reactive({
|
||||
diagnosis_id: 0,
|
||||
/** 列表带入:业务订单「处方审核」驳回(消费者处方本身可能仍为已通过) */
|
||||
business_prescription_audit_rejected: 0,
|
||||
business_prescription_audit_remark: ''
|
||||
business_prescription_audit_remark: '',
|
||||
times_per_day: 2
|
||||
})
|
||||
|
||||
// 监听处方类型变化,自动调整用量单位和默认值
|
||||
watch(() => editForm.prescription_type, (newType) => {
|
||||
if (newType === '浓缩水丸') {
|
||||
editForm.dosage_unit = 'g'
|
||||
editForm.dosage_amount = 1
|
||||
editForm.need_decoction = false
|
||||
} else if (newType === '饮片') {
|
||||
editForm.dosage_unit = 'ml'
|
||||
editForm.dosage_amount = 50
|
||||
// need_decoction 保持用户选择
|
||||
} else {
|
||||
editForm.dosage_unit = 'g'
|
||||
editForm.dosage_amount = undefined
|
||||
editForm.need_decoction = false
|
||||
}
|
||||
})
|
||||
|
||||
// 表单验证规则
|
||||
@@ -1863,6 +2099,9 @@ const handleEdit = (row: any) => {
|
||||
// 深拷贝数据到表单
|
||||
editForm.id = row.id
|
||||
editForm.prescription_type = row.prescription_type || '浓缩水丸'
|
||||
editForm.dosage_amount = row.dosage_amount ?? undefined
|
||||
editForm.dosage_unit = row.dosage_unit || ''
|
||||
editForm.need_decoction = row.need_decoction === 1 || row.need_decoction === true
|
||||
editForm.patient_name = row.patient_name || ''
|
||||
editForm.gender = row.gender ?? 1
|
||||
editForm.age = row.age ?? 0
|
||||
@@ -1877,6 +2116,7 @@ const handleEdit = (row: any) => {
|
||||
editForm.dose_count = row.dose_count ?? 7
|
||||
editForm.dose_unit = row.dose_unit || '剂'
|
||||
editForm.usage_days = row.usage_days ?? 7
|
||||
editForm.times_per_day = row.times_per_day ?? 2
|
||||
editForm.usage_instruction = row.usage_instruction || '水煎服,一日二次'
|
||||
editForm.usage_time = row.usage_time || '饭前'
|
||||
editForm.usage_way = row.usage_way || '温水送服'
|
||||
|
||||
Reference in New Issue
Block a user