parent
0af551fe52
commit
b43a99e711
@ -0,0 +1,192 @@ |
|||||||
|
<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" max-height="350"> |
||||||
|
<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 { |
||||||
|
mergeOrderServiceVOPage, |
||||||
|
updateMergeOrderServiceParameter, |
||||||
|
} from "@/api/order"; |
||||||
|
import { Delete, Plus } from "@element-plus/icons-vue"; |
||||||
|
import { FormInstance } 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: 50, |
||||||
|
}); |
||||||
|
|
||||||
|
const openModify = ( |
||||||
|
orderId_?: number, |
||||||
|
service_?: string, |
||||||
|
serviceFlag_?: string |
||||||
|
) => { |
||||||
|
if (orderId_ != undefined) { |
||||||
|
orderId.value = orderId_; |
||||||
|
} |
||||||
|
if (service_ != undefined) { |
||||||
|
service.value = service_; |
||||||
|
} |
||||||
|
if (serviceFlag_ != undefined) { |
||||||
|
serviceFlag.value = serviceFlag_; |
||||||
|
} |
||||||
|
modifyServiceFlag.value = true; |
||||||
|
getOrderServicePage(); |
||||||
|
}; |
||||||
|
defineExpose({ openModify }); |
||||||
|
const getOrderServicePage = () => { |
||||||
|
loading.value = true; |
||||||
|
mergeOrderServiceVOPage(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; |
||||||
|
updateMergeOrderServiceParameter( |
||||||
|
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,495 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<div |
||||||
|
class="search-container" |
||||||
|
style="padding: 10px; display: flex; justify-content: flex-end" |
||||||
|
> |
||||||
|
<el-popconfirm |
||||||
|
title="确定修改工单状态吗?" |
||||||
|
:icon="InfoFilled" |
||||||
|
icon-color="#626AEF" |
||||||
|
width="200" |
||||||
|
@confirm="save" |
||||||
|
> |
||||||
|
<template #reference> |
||||||
|
<el-button type="primary" v-hasPerm="['order:detail:update:status']" |
||||||
|
>保存</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-popconfirm> |
||||||
|
<el-popconfirm |
||||||
|
title="确定手动执行工单吗?" |
||||||
|
:icon="InfoFilled" |
||||||
|
icon-color="#626AEF" |
||||||
|
width="200" |
||||||
|
@confirm="execute" |
||||||
|
> |
||||||
|
<template #reference> |
||||||
|
<el-button type="primary" v-hasPerm="['family:operate:order:execute']" |
||||||
|
>执行</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-popconfirm> |
||||||
|
|
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="skipModifyOrder" |
||||||
|
v-hasPerm="['order:detail:update']" |
||||||
|
>修改</el-button |
||||||
|
> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="skipOperate" |
||||||
|
v-hasPerm="['order:detail:operate:maintain']" |
||||||
|
>设备操作维护</el-button |
||||||
|
> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="openOrderLog" |
||||||
|
v-hasPerm="['order:detail:log']" |
||||||
|
>工单日志</el-button |
||||||
|
> |
||||||
|
</div> |
||||||
|
<el-card shadow="never" v-loading="loading"> |
||||||
|
<el-scrollbar height="500"> |
||||||
|
<el-descriptions :column="3" border> |
||||||
|
<template #title> |
||||||
|
<div style="display: flex; align-items: center"> |
||||||
|
<el-icon size="15"><Grid /></el-icon> <span |
||||||
|
style="font-weight: 700; font-size: 14px; line-height: 16px" |
||||||
|
>工单信息</span |
||||||
|
> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单序号" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.receivedOrderId }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单受理号" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.receivedOrderLhs }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="操作类型" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderRemark }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单业务类型" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderServiceType }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="开工单日期" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderDate }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单接收日期" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.receivedDate }} |
||||||
|
</el-descriptions-item> |
||||||
|
<!-- <el-descriptions-item--> |
||||||
|
<!-- label="工单要求完工日期"--> |
||||||
|
<!-- label-align="center"--> |
||||||
|
<!-- align="center"--> |
||||||
|
<!-- label-class-name="my-label"--> |
||||||
|
<!-- class-name="my-content"--> |
||||||
|
<!-- width="150px"--> |
||||||
|
<!-- >--> |
||||||
|
<!-- {{ orderInfo.orderDealDate }}--> |
||||||
|
<!-- </el-descriptions-item>--> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单处理日期" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderDealDate }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="AD编号" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.adNo }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="手工绑定设备标识" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<div |
||||||
|
v-if=" |
||||||
|
orderInfo.orderStatus === '1' || |
||||||
|
orderInfo.orderStatus === '3' || |
||||||
|
orderInfo.orderStatus === '5' |
||||||
|
" |
||||||
|
> |
||||||
|
<el-tag>未绑定设备</el-tag> |
||||||
|
</div> |
||||||
|
<div v-else> |
||||||
|
<el-button type="primary" link @click="openBindingDev">{{ |
||||||
|
orderInfo.devSnoOui === null |
||||||
|
? "未绑定设备" |
||||||
|
: orderInfo.devSnoOui |
||||||
|
}}</el-button> |
||||||
|
</div> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单状态" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<dictionary type-code="order_status" v-model="orderStatus" /> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="PPPoE帐号" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.pppoeAccount }} |
||||||
|
</el-descriptions-item> |
||||||
|
<!-- <el-descriptions-item--> |
||||||
|
<!-- label="BANDAccess"--> |
||||||
|
<!-- label-align="center"--> |
||||||
|
<!-- align="center"--> |
||||||
|
<!-- label-class-name="my-label"--> |
||||||
|
<!-- class-name="my-content"--> |
||||||
|
<!-- width="150px"--> |
||||||
|
<!-- >--> |
||||||
|
<!-- {{ orderInfo.bandAccess }}--> |
||||||
|
<!-- </el-descriptions-item>--> |
||||||
|
<!-- <el-descriptions-item--> |
||||||
|
<!-- label="IPTVAccess"--> |
||||||
|
<!-- label-align="center"--> |
||||||
|
<!-- align="center"--> |
||||||
|
<!-- label-class-name="my-label"--> |
||||||
|
<!-- class-name="my-content"--> |
||||||
|
<!-- width="150px"--> |
||||||
|
<!-- >--> |
||||||
|
<!-- {{ orderInfo.iptvAccess }}--> |
||||||
|
<!-- </el-descriptions-item>--> |
||||||
|
<el-descriptions-item |
||||||
|
label="逻辑ID" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.userSnNo }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="备注" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.remark }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="设备在线状态" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.devOnlineStatus }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="逻辑KEY" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.userSnKey }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="接入方式" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.devAccessType }} |
||||||
|
</el-descriptions-item> |
||||||
|
</el-descriptions> |
||||||
|
<el-descriptions :column="3" border style="margin-top: 10px"> |
||||||
|
<template #title> |
||||||
|
<div style="display: flex; align-items: center"> |
||||||
|
<el-icon size="15"><Grid /></el-icon> <span |
||||||
|
style="font-weight: 700; font-size: 14px; line-height: 16px" |
||||||
|
>客户信息</span |
||||||
|
> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<el-descriptions-item |
||||||
|
label="系统管理域" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.domain }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="政企管理域" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
/> |
||||||
|
<el-descriptions-item |
||||||
|
label="客户类型" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderCustomerKind }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="回单标志" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderDoneFlag }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="回单日期" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.orderDoneDate }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="虚拟标志" |
||||||
|
label-align="center" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ orderInfo.dummyFlag }} |
||||||
|
</el-descriptions-item> |
||||||
|
</el-descriptions> |
||||||
|
<div class="mt-2"> |
||||||
|
<div style="display: flex; justify-content: space-between"> |
||||||
|
<div style="display: flex; align-items: center"> |
||||||
|
<el-icon size="15"><Grid /></el-icon> <span |
||||||
|
style="font-weight: 700; font-size: 14px; line-height: 16px" |
||||||
|
>工单业务信息列表</span |
||||||
|
> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table :data="orderServiceList"> |
||||||
|
<el-table-column label="业务名称" prop="service" align="center"> |
||||||
|
<template #default="scope"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="openServiceList(scope.row.service)" |
||||||
|
link |
||||||
|
>{{ scope.row.service }}</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="业务变更信息" |
||||||
|
prop="serviceFlag" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="queryPage.pageNum" |
||||||
|
v-model:limit="queryPage.pageSize" |
||||||
|
@pagination="getOrderInfoServiceList" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-scrollbar> |
||||||
|
</el-card> |
||||||
|
<merge-order-service-parameter-table ref="serviceParameterRef" /> |
||||||
|
<order-log ref="orderLogRef" /> |
||||||
|
<binding-device @success="getData" ref="bindingDevRef" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { OrderInfoServiceVO, OrderInfoVO } from "@/api/order/types"; |
||||||
|
import { |
||||||
|
checkDeviceExits, executeMergeOrder, |
||||||
|
executeOrder, |
||||||
|
findMergeOrderInfoById, |
||||||
|
findMergeOrderInfoServicePage, mergeUpdateOrderStatus, |
||||||
|
updateOrderStatus |
||||||
|
} from "@/api/order"; |
||||||
|
import { Grid, InfoFilled } from "@element-plus/icons-vue"; |
||||||
|
import OrderLog from "@/views/family/operate/order/components/OrderLog.vue"; |
||||||
|
import BindingDevice from "@/views/family/operate/order/components/BindingDevice.vue"; |
||||||
|
import MergeOrderServiceParameterTable from "@/views/family/operate/merge-order-manager/components/MergeOrderServiceParameterTable.vue"; |
||||||
|
|
||||||
|
const route = useRoute(); |
||||||
|
const router = useRouter(); |
||||||
|
let orderId: number = parseInt(<string>route.params.orderId); |
||||||
|
const orderInfo = ref<OrderInfoVO>({}); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const orderStatus = ref<string>(); |
||||||
|
const queryPage = ref<PageQuery>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
const total = ref<number>(0); |
||||||
|
const orderServiceList = ref<OrderInfoServiceVO[]>([]); |
||||||
|
const serviceParameterRef = ref(); |
||||||
|
const orderLogRef = ref(); |
||||||
|
const bindingDevRef = ref(); |
||||||
|
const getData = () => { |
||||||
|
loading.value = true; |
||||||
|
findMergeOrderInfoById(orderId) |
||||||
|
.then(({ data }) => { |
||||||
|
orderInfo.value = data; |
||||||
|
orderStatus.value = data.orderStatus; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const getOrderInfoServiceList = () => { |
||||||
|
findMergeOrderInfoServicePage(orderId, queryPage.value).then(({ data }) => { |
||||||
|
orderServiceList.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const save = () => { |
||||||
|
loading.value = true; |
||||||
|
mergeUpdateOrderStatus(orderId, <string>orderStatus.value) |
||||||
|
.then() |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const execute = () => { |
||||||
|
loading.value = true; |
||||||
|
executeMergeOrder(orderId) |
||||||
|
.then(() => { |
||||||
|
ElMessage({ |
||||||
|
message: "执行成功", |
||||||
|
duration: 1000, |
||||||
|
type: "success", |
||||||
|
}); |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const skipModifyOrder = () => { |
||||||
|
router.push({ path: `/resources/modify-merge-order/${orderId}` }); |
||||||
|
}; |
||||||
|
const openServiceList = (service: string) => { |
||||||
|
serviceParameterRef.value.openParameter(orderId, service); |
||||||
|
}; |
||||||
|
const openOrderLog = () => { |
||||||
|
orderLogRef.value.open(orderId); |
||||||
|
}; |
||||||
|
const openBindingDev = () => { |
||||||
|
bindingDevRef.value.open(orderId); |
||||||
|
}; |
||||||
|
const skipOperate = () => { |
||||||
|
let adNo = orderInfo.value.adNo; |
||||||
|
if (adNo == null || adNo.length == 0) { |
||||||
|
ElMessage({ |
||||||
|
message: "设备不存在", |
||||||
|
duration: 2000, |
||||||
|
type: "error", |
||||||
|
}); |
||||||
|
return; |
||||||
|
} |
||||||
|
checkDeviceExits(adNo).then(({ data }) => { |
||||||
|
router.push({ |
||||||
|
path: `/resources/remote-info/${data.devId}/${data.typeAndVerId}`, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
getData(); |
||||||
|
getOrderInfoServiceList(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
:deep(.my-label) { |
||||||
|
width: 70px !important; |
||||||
|
background: var(--el-color-white) !important; |
||||||
|
} |
||||||
|
:deep(.el-scrollbar__thumb) { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
:deep(.el-card__body) { |
||||||
|
padding: 10px 5px; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,73 @@ |
|||||||
|
<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" max-height="550"> |
||||||
|
<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 { mergeOrderServiceVOPage, 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; |
||||||
|
mergeOrderServiceVOPage(orderId.value, service.value, queryPage.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
:deep(.el-dialog__body){ |
||||||
|
padding: 0 !important; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,238 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-card shadow="never" v-loading="loading"> |
||||||
|
<el-form :model="formData" ref="ruleFormRef" :rules="rules"> |
||||||
|
<el-descriptions :column="3" border> |
||||||
|
<template #title> |
||||||
|
<div style="display: flex; align-items: center"> |
||||||
|
<el-icon size="15"><Grid /></el-icon> <span |
||||||
|
style="font-weight: 700; font-size: 14px; line-height: 16px" |
||||||
|
>工单信息修改</span |
||||||
|
> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<template #extra> |
||||||
|
<el-popconfirm |
||||||
|
title="确定修改工单吗?" |
||||||
|
:icon="InfoFilled" |
||||||
|
icon-color="#626AEF" |
||||||
|
width="200" |
||||||
|
@confirm="submitForm(ruleFormRef)" |
||||||
|
> |
||||||
|
<template #reference> |
||||||
|
<el-button type="primary" v-hasPerm="['order:detail:update']" |
||||||
|
>保存</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-popconfirm> |
||||||
|
</template> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单序号" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="receivedOrderId" style="margin-bottom: 0"> |
||||||
|
<el-input |
||||||
|
v-model="formData.receivedOrderId" |
||||||
|
placeholder="请输入工单序号" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="开工单日期" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="orderDate" style="margin-bottom: 0"> |
||||||
|
<el-input v-model="formData.orderDate" /> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="工单业务类型" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="orderServiceType" style="margin-bottom: 0"> |
||||||
|
<dictionary |
||||||
|
v-model="formData.orderServiceType" |
||||||
|
type-code="order_service_type" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="AD编号" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="adNo" style="margin-bottom: 0"> |
||||||
|
<el-input v-model="formData.adNo" /> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="Pppoe账号" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="pppoeAccount" style="margin-bottom: 0"> |
||||||
|
<el-input v-model="formData.pppoeAccount" /> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="客户类型" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
<el-form-item prop="orderCustomerKind" style="margin-bottom: 0"> |
||||||
|
<dictionary |
||||||
|
v-model="formData.orderCustomerKind" |
||||||
|
type-code="custom_type" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
</el-descriptions-item> |
||||||
|
</el-descriptions> |
||||||
|
</el-form> |
||||||
|
<div class="mt-1"> |
||||||
|
<div style="display: flex; justify-content: space-between"> |
||||||
|
<div style="display: flex; align-items: center"> |
||||||
|
<el-icon size="15"><Grid /></el-icon> <span |
||||||
|
style="font-weight: 700; font-size: 14px; line-height: 16px" |
||||||
|
>工单业务信息列表</span |
||||||
|
> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table :data="orderServiceList"> |
||||||
|
<el-table-column label="业务名称" prop="service" align="center"> |
||||||
|
<template #default="scope"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="openServiceParameter(scope.row)" |
||||||
|
link |
||||||
|
>{{ scope.row.service }}</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="业务变更信息" |
||||||
|
prop="serviceFlag" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="queryPage.pageNum" |
||||||
|
v-model:limit="queryPage.pageSize" |
||||||
|
@pagination="getOrderInfoServiceList" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
<MergeModifyServiceParameter |
||||||
|
ref="modifyServiceRef" |
||||||
|
@success="getOrderInfoServiceList" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { ModifyOrderForm, OrderInfoServiceVO } from "@/api/order/types"; |
||||||
|
import { |
||||||
|
findMergeOrderInfoServicePage, |
||||||
|
findOrderInfoServicePage, getMergeModifyForm, |
||||||
|
getModifyForm, |
||||||
|
ModifyForm, ModifyMergeOrderForm |
||||||
|
} from "@/api/order"; |
||||||
|
import { Grid, InfoFilled } from "@element-plus/icons-vue"; |
||||||
|
import { FormInstance, FormRules } from "element-plus"; |
||||||
|
import ModifyServiceParameter from "@/views/family/operate/order/components/ModifyServiceParameter.vue"; |
||||||
|
import MergeModifyServiceParameter |
||||||
|
from "@/views/family/operate/merge-order-manager/components/MergeModifyServiceParameter.vue"; |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const route = useRoute(); |
||||||
|
const ruleFormRef = ref<FormInstance>(); |
||||||
|
const modifyServiceRef = ref(); |
||||||
|
const formData = ref<ModifyOrderForm>({}); |
||||||
|
let orderId: number = parseInt(<string>route.params.orderId); |
||||||
|
const queryPage = ref<PageQuery>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
const total = ref<number>(0); |
||||||
|
const orderServiceList = ref<OrderInfoServiceVO[]>([]); |
||||||
|
|
||||||
|
const rules = reactive<FormRules<ModifyOrderForm>>({ |
||||||
|
receivedOrderId: [ |
||||||
|
{ required: true, message: "请填写工单序号", trigger: "blur" }, |
||||||
|
], |
||||||
|
}); |
||||||
|
const loadModifyForm = () => { |
||||||
|
loading.value = true; |
||||||
|
getMergeModifyForm(orderId) |
||||||
|
.then(({ data }) => { |
||||||
|
formData.value = data; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const getOrderInfoServiceList = () => { |
||||||
|
findMergeOrderInfoServicePage(orderId, queryPage.value).then(({ data }) => { |
||||||
|
orderServiceList.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const submitForm = async (formEl: FormInstance | undefined) => { |
||||||
|
if (!formEl) return; |
||||||
|
await formEl.validate((valid, fields) => { |
||||||
|
if (valid) { |
||||||
|
loading.value = true; |
||||||
|
ModifyMergeOrderForm(formData.value) |
||||||
|
.then(() => { |
||||||
|
ElMessage({ |
||||||
|
message: "操作成功", |
||||||
|
duration: 1000, |
||||||
|
type: "success", |
||||||
|
}); |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
const openServiceParameter = (row: OrderInfoServiceVO) => { |
||||||
|
modifyServiceRef.value.openModify(row.orderId, row.service, row.serviceFlag); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
loadModifyForm(); |
||||||
|
getOrderInfoServiceList(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
:deep(.my-label) { |
||||||
|
background: var(--el-color-white) !important; |
||||||
|
} |
||||||
|
:deep(.el-card__body) { |
||||||
|
padding: 10px 5px; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,286 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<div class="search-container"> |
||||||
|
<el-form :model="queryForm" :inline="true"> |
||||||
|
<el-row> |
||||||
|
<el-col :span="6"> |
||||||
|
<el-form-item label="查询条件"> |
||||||
|
<el-select |
||||||
|
v-model="queryForm.selectName" |
||||||
|
placeholder="请选择" |
||||||
|
style="width: 240px" |
||||||
|
@change="resetSelect" |
||||||
|
clearable |
||||||
|
> |
||||||
|
<el-option |
||||||
|
v-for="item in options" |
||||||
|
:key="item.value" |
||||||
|
:label="item.label" |
||||||
|
:value="item.value" |
||||||
|
/> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
<el-col :span="6" v-if="queryForm.selectName !== undefined"> |
||||||
|
<el-input |
||||||
|
v-model="queryForm.selectValue" |
||||||
|
placeholder="请输入" |
||||||
|
style="width: 300px" |
||||||
|
/> |
||||||
|
</el-col> |
||||||
|
<el-col :span="buttonColSpan"> |
||||||
|
<el-form-item> |
||||||
|
<el-button type="primary" :icon="Search" @click="handleQuery" |
||||||
|
>搜索 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
|
||||||
|
<el-card shadow="never"> |
||||||
|
<template #header> |
||||||
|
<div style="display: flex; justify-content: flex-end"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
style="margin-right: 10px" |
||||||
|
v-hasPerm="['order:index:merge']" |
||||||
|
@click="openMergerOrder" |
||||||
|
>合并工单 |
||||||
|
</el-button> |
||||||
|
<table-bar :columns="columns" @change-columns="changeColumns" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table v-loading="loading" :data="tableData" max-height="380"> |
||||||
|
<el-table-column |
||||||
|
label="工单序号" |
||||||
|
align="center" |
||||||
|
fixed |
||||||
|
width="250" |
||||||
|
prop="receivedOrderId" |
||||||
|
v-if="columns[0].show" |
||||||
|
> |
||||||
|
<template #default="scope"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="skipOrderEdit(scope.row.orderId)" |
||||||
|
link |
||||||
|
>{{ scope.row.receivedOrderId }}</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="受理号" |
||||||
|
align="center" |
||||||
|
width="250" |
||||||
|
show-overflow-tooltip |
||||||
|
prop="receivedOrderLhs" |
||||||
|
v-if="columns[1].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="开工单日期" |
||||||
|
align="center" |
||||||
|
prop="orderDate" |
||||||
|
width="180" |
||||||
|
v-if="columns[2].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="AD编号" |
||||||
|
align="center" |
||||||
|
prop="adNo" |
||||||
|
width="180" |
||||||
|
v-if="columns[3].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="工单状态" |
||||||
|
align="center" |
||||||
|
prop="orderStatus" |
||||||
|
v-if="columns[4].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="操作类型" |
||||||
|
align="center" |
||||||
|
prop="orderRemark" |
||||||
|
v-if="columns[5].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="工单业务类型" |
||||||
|
align="center" |
||||||
|
width="180" |
||||||
|
prop="orderServiceType" |
||||||
|
v-if="columns[6].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="业务类型" |
||||||
|
align="center" |
||||||
|
width="180" |
||||||
|
prop="operRemark" |
||||||
|
v-if="columns[7].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="端口" |
||||||
|
align="center" |
||||||
|
prop="port" |
||||||
|
v-if="columns[8].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="PPPoe账号" |
||||||
|
align="center" |
||||||
|
prop="pppoeAccount" |
||||||
|
width="180" |
||||||
|
v-if="columns[9].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="电话号码" |
||||||
|
align="center" |
||||||
|
width="180" |
||||||
|
prop="telNum" |
||||||
|
v-if="columns[10].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="系统管理域" |
||||||
|
align="center" |
||||||
|
prop="domain" |
||||||
|
width="180" |
||||||
|
v-if="columns[11].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="是否定制终端" |
||||||
|
align="center" |
||||||
|
prop="remark3" |
||||||
|
width="180" |
||||||
|
v-if="columns[12].show" |
||||||
|
> |
||||||
|
<template #default="scope"> |
||||||
|
<span v-if="scope.row.remark3 === '1'">非定制终端</span> |
||||||
|
<span v-else>定制终端</span> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="工单接收日期" |
||||||
|
align="center" |
||||||
|
prop="receivedDate" |
||||||
|
width="180" |
||||||
|
v-if="columns[13].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="工单处理日期" |
||||||
|
align="center" |
||||||
|
prop="orderDealDate" |
||||||
|
width="180" |
||||||
|
v-if="columns[14].show" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="设备上线状态" |
||||||
|
align="center" |
||||||
|
width="180" |
||||||
|
prop="devOnLineStatus" |
||||||
|
v-if="columns[15].show" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
</div> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="queryForm.pageNum" |
||||||
|
v-model:limit="queryForm.pageSize" |
||||||
|
@pagination="handleQuery" |
||||||
|
/> |
||||||
|
</el-card> |
||||||
|
<merge-order ref="mergeOrderRef" @success="reloadGetData" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { Search } from "@element-plus/icons-vue"; |
||||||
|
import { oderMergeTablePage, oderTablePage } from "@/api/order"; |
||||||
|
import { OrderTableVO } from "@/api/order/types"; |
||||||
|
import MergeOrder from "@/views/family/operate/order/components/MergeOrder.vue"; |
||||||
|
|
||||||
|
defineOptions({ |
||||||
|
name: "MergeOrderManager", |
||||||
|
inheritAttrs: false, |
||||||
|
}); |
||||||
|
const mergeOrderRef = ref(); |
||||||
|
const queryForm = ref<SelectForm>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
const router = useRouter(); |
||||||
|
const total = ref<number>(0); |
||||||
|
const tableData = ref<OrderTableVO[]>([]); |
||||||
|
const options = ref<OptionType[]>([ |
||||||
|
{ label: "逻辑Id", value: "logicId" }, |
||||||
|
{ label: "工单序号", value: "receiveOrderId" }, |
||||||
|
{ label: "AD编号", value: "adNo" }, |
||||||
|
{ label: "pppoe账号", value: "pppoe" }, |
||||||
|
]); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const buttonColSpan = computed(() => { |
||||||
|
return queryForm.value.selectName === undefined ? 18 : 12; |
||||||
|
}); |
||||||
|
const columns = ref<TableColumns[]>([ |
||||||
|
{ name: "工单序号", show: true }, |
||||||
|
{ name: "受理号", show: true }, |
||||||
|
{ name: "开工单日期", show: false }, |
||||||
|
{ name: "AD编号", show: true }, |
||||||
|
{ name: "工单状态", show: true }, |
||||||
|
{ name: "操作类型", show: false }, |
||||||
|
{ name: "工单业务类型", show: false }, |
||||||
|
{ name: "业务类型", show: true }, |
||||||
|
{ name: "端口", show: false }, |
||||||
|
{ name: "PPPoe账号", show: true }, |
||||||
|
{ name: "电话号码", show: false }, |
||||||
|
{ name: "系统管理域", show: true }, |
||||||
|
{ name: "是否定制终端", show: false }, |
||||||
|
{ name: "工单接收日期", show: false }, |
||||||
|
{ name: "工单处理日期", show: false }, |
||||||
|
{ name: "设备上线状态", show: false }, |
||||||
|
]); |
||||||
|
const changeColumns = (newColumns: TableColumns[]) => { |
||||||
|
columns.value = newColumns; |
||||||
|
}; |
||||||
|
const resetSelect = () => { |
||||||
|
queryForm.value.selectValue = undefined; |
||||||
|
}; |
||||||
|
|
||||||
|
const handleQuery = () => { |
||||||
|
if ( |
||||||
|
queryForm.value.selectName === undefined || |
||||||
|
queryForm.value.selectValue === undefined |
||||||
|
) { |
||||||
|
ElMessage({ |
||||||
|
message: "查询条件不能为空", |
||||||
|
type: "error", |
||||||
|
duration: 1000, |
||||||
|
}); |
||||||
|
return; |
||||||
|
} |
||||||
|
loading.value = true; |
||||||
|
oderMergeTablePage(queryForm.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const skipOrderEdit = (orderId: number) => { |
||||||
|
router.push({ path: `/resources/merge-order-info-edit/${orderId}` }); |
||||||
|
}; |
||||||
|
const openMergerOrder = () => mergeOrderRef.value.open(); |
||||||
|
const reloadGetData = (logicId?: string) => { |
||||||
|
queryForm.value.selectName = "logicId"; |
||||||
|
queryForm.value.selectValue = logicId; |
||||||
|
handleQuery(); |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
:deep(.el-card__body) { |
||||||
|
padding: 10px 0 0 0; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue