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