parent
9c92441f47
commit
e5df40569f
@ -0,0 +1,183 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-dialog |
||||||
|
class="com-dialog" |
||||||
|
v-model="modifyServiceFlag" |
||||||
|
title="业务参数列表" |
||||||
|
width="1000" |
||||||
|
> |
||||||
|
<div style="margin-bottom: 10px"> |
||||||
|
<el-button type="primary" :icon="Plus" @click="addRow">新增</el-button> |
||||||
|
</div> |
||||||
|
<div class="any-table"> |
||||||
|
<el-form :model="tableData" ref="ruleFormRef" v-loading="loading"> |
||||||
|
<el-table :data="tableData"> |
||||||
|
<el-table-column |
||||||
|
label="业务参数名称" |
||||||
|
prop="argsName" |
||||||
|
align="center" |
||||||
|
> |
||||||
|
<template #default="scope"> |
||||||
|
<el-form-item |
||||||
|
:prop="scope.row.argsName" |
||||||
|
style="margin-bottom: 0" |
||||||
|
> |
||||||
|
<el-input v-model="scope.row.argsName" /> |
||||||
|
</el-form-item> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="业务参数新值" |
||||||
|
prop="argsValueNew" |
||||||
|
align="center" |
||||||
|
> |
||||||
|
<template #default="scope"> |
||||||
|
<el-form-item |
||||||
|
:prop="scope.row.argsValueNew" |
||||||
|
style="margin-bottom: 0" |
||||||
|
> |
||||||
|
<el-input v-model="scope.row.argsValueNew" /> |
||||||
|
</el-form-item> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="业务参数旧值" |
||||||
|
prop="argsValueOld" |
||||||
|
align="center" |
||||||
|
> |
||||||
|
<template #default="scope"> |
||||||
|
<el-form-item |
||||||
|
:prop="scope.row.argsValueOld" |
||||||
|
style="margin-bottom: 0" |
||||||
|
> |
||||||
|
<el-input v-model="scope.row.argsValueOld" /> |
||||||
|
</el-form-item> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column label="操作" align="center" width="100"> |
||||||
|
<template #default="scope"> |
||||||
|
<el-form-item style="margin-bottom: 0"> |
||||||
|
<el-button |
||||||
|
type="danger" |
||||||
|
:icon="Delete" |
||||||
|
link |
||||||
|
@click="deleteRow(scope.$index)" |
||||||
|
>删除 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
</el-table> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
<template #footer> |
||||||
|
<el-button type="primary" @click="submitForm">确定 </el-button> |
||||||
|
</template> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { OrderServiceVO } from "@/api/order/types"; |
||||||
|
import { orderServiceVOPage, updateOrderServiceParameter } from "@/api/order"; |
||||||
|
import { Delete, Plus } from "@element-plus/icons-vue"; |
||||||
|
import { FormInstance, FormRules } from "element-plus"; |
||||||
|
|
||||||
|
const ruleFormRef = ref<FormInstance>(); |
||||||
|
const modifyServiceFlag = ref<boolean>(false); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const tableData = ref<OrderServiceVO[]>([]); |
||||||
|
const total = ref<number>(0); |
||||||
|
const orderId = ref<number>(0); |
||||||
|
const service = ref<string>(""); |
||||||
|
const serviceFlag = ref<string>(""); |
||||||
|
const queryPage = ref<PageQuery>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
|
||||||
|
const openModify = ( |
||||||
|
orderId_?: number, |
||||||
|
service_?: string, |
||||||
|
serviceFlag_?: string |
||||||
|
) => { |
||||||
|
orderId.value = orderId_; |
||||||
|
service.value = service_; |
||||||
|
serviceFlag.value = serviceFlag_; |
||||||
|
modifyServiceFlag.value = true; |
||||||
|
getOrderServicePage(); |
||||||
|
}; |
||||||
|
defineExpose({ openModify }); |
||||||
|
const getOrderServicePage = () => { |
||||||
|
loading.value = true; |
||||||
|
orderServiceVOPage(orderId.value, service.value, queryPage.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const addRow = () => { |
||||||
|
tableData.value.push({ orderId: orderId.value, service: service.value }); |
||||||
|
}; |
||||||
|
const deleteRow = (index: number) => { |
||||||
|
if (tableData.value.length === 1) { |
||||||
|
ElMessage({ |
||||||
|
message: "不能删除所有数据", |
||||||
|
duration: 1000, |
||||||
|
type: "error", |
||||||
|
}); |
||||||
|
return; |
||||||
|
} |
||||||
|
tableData.value.splice(index, 1); |
||||||
|
}; |
||||||
|
const emit = defineEmits(["success"]); |
||||||
|
const submitForm = () => { |
||||||
|
let flag = true; |
||||||
|
for (let i = 0; i < tableData.value.length; i++) { |
||||||
|
let obj = tableData.value[i]; |
||||||
|
if (obj.argsName === undefined) { |
||||||
|
ElMessage({ |
||||||
|
message: "请填写参数名称", |
||||||
|
duration: 1500, |
||||||
|
type: "error", |
||||||
|
}); |
||||||
|
flag = false; |
||||||
|
break; |
||||||
|
} else if (obj.argsValueNew === undefined) { |
||||||
|
ElMessage({ |
||||||
|
message: "请填写参数值(新)", |
||||||
|
duration: 1500, |
||||||
|
type: "error", |
||||||
|
}); |
||||||
|
flag = false; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
if (flag) { |
||||||
|
loading.value = true; |
||||||
|
updateOrderServiceParameter( |
||||||
|
orderId.value, |
||||||
|
service.value, |
||||||
|
serviceFlag.value, |
||||||
|
tableData.value |
||||||
|
) |
||||||
|
.then(() => { |
||||||
|
ElMessage({ |
||||||
|
message: "操作成功", |
||||||
|
duration: 1000, |
||||||
|
type: "success", |
||||||
|
}); |
||||||
|
emit("success"); |
||||||
|
modifyServiceFlag.value = false; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped></style> |
@ -0,0 +1,69 @@ |
|||||||
|
<template> |
||||||
|
<el-dialog |
||||||
|
class="com-dialog" |
||||||
|
v-model="parameterFlag" |
||||||
|
title="业务参数列表" |
||||||
|
align-center |
||||||
|
width="900" |
||||||
|
> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table :data="tableData" v-loading="loading"> |
||||||
|
<el-table-column label="业务参数名称" prop="argsName" align="center" /> |
||||||
|
<el-table-column |
||||||
|
label="业务参数新值" |
||||||
|
prop="argsValueNew" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="业务参数旧值" |
||||||
|
prop="argsValueOld" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
</div> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="queryPage.pageNum" |
||||||
|
v-model:limit="queryPage.pageSize" |
||||||
|
@pagination="getOrderServicePage" |
||||||
|
/> |
||||||
|
</el-dialog> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { OrderServiceVO } from "@/api/order/types"; |
||||||
|
import { orderServiceVOPage } from "@/api/order"; |
||||||
|
|
||||||
|
const parameterFlag = ref<boolean>(false); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const tableData = ref<OrderServiceVO[]>([]); |
||||||
|
const total = ref<number>(0); |
||||||
|
const orderId = ref<number>(0); |
||||||
|
const service = ref<string>(""); |
||||||
|
const queryPage = ref<PageQuery>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
const openParameter = (orderId_: number, service_: string) => { |
||||||
|
orderId.value = orderId_; |
||||||
|
service.value = service_; |
||||||
|
parameterFlag.value = true; |
||||||
|
getOrderServicePage(); |
||||||
|
}; |
||||||
|
defineExpose({ openParameter }); |
||||||
|
|
||||||
|
const getOrderServicePage = () => { |
||||||
|
loading.value = true; |
||||||
|
orderServiceVOPage(orderId.value, service.value, queryPage.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped></style> |
Loading…
Reference in new issue