parent
d625cd0434
commit
31b5532801
@ -1,31 +1,31 @@ |
||||
import request from "@/utils/request"; |
||||
import { AxiosPromise } from "axios"; |
||||
import { AddBroadbandForm, OrderBasicInfo } from "@/api/broadband/types"; |
||||
import { AddBroadbandForm, OrderBasicInfo } from "@/api/craft-order/types"; |
||||
|
||||
export function getBasicInfo(): AxiosPromise<OrderBasicInfo> { |
||||
return request({ |
||||
url: "/api/broadband/v1/basic-info", |
||||
url: "/api/craft-order/v1/basic-info", |
||||
method: "GET", |
||||
}); |
||||
} |
||||
|
||||
export function addBroadband(data: AddBroadbandForm) { |
||||
export function addCraftOrder(data: AddBroadbandForm) { |
||||
return request({ |
||||
url: "/api/broadband/v1/add-broadband", |
||||
url: "/api/craft-order/v1/add", |
||||
method: "POST", |
||||
data, |
||||
}); |
||||
} |
||||
export function updateBroadbandMode(data: AddBroadbandForm) { |
||||
return request({ |
||||
url: "/api/broadband/v1/update-broadband-mode", |
||||
url: "/api/craft-order/v1/update-broadband-mode", |
||||
method: "POST", |
||||
data, |
||||
}); |
||||
} |
||||
export function addTYSLZW(data: AddBroadbandForm) { |
||||
return request({ |
||||
url: "/api/broadband/v1/add-tyslzw", |
||||
url: "/api/craft-order/v1/add-tyslzw", |
||||
method: "POST", |
||||
data, |
||||
}); |
@ -0,0 +1,440 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-scrollbar height="600"> |
||||
<el-card shadow="never"> |
||||
<el-form |
||||
:model="formData" |
||||
ref="ruleFormRef" |
||||
:rules="rules" |
||||
v-loading="loading" |
||||
> |
||||
<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" |
||||
>设备IPTV业务删除工单</span |
||||
> |
||||
</div> |
||||
</template> |
||||
<template #extra> |
||||
<el-button |
||||
type="primary" |
||||
:icon="Position" |
||||
style="margin-right: 8px" |
||||
@click="submitForm(ruleFormRef)" |
||||
>保存</el-button |
||||
> |
||||
</template> |
||||
<el-descriptions-item |
||||
label="工单序号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderId"> |
||||
<el-input |
||||
v-model="formData.receiveOrderId" |
||||
placeholder="请输入工单序号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单受理号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderLhs"> |
||||
<el-input |
||||
v-model="formData.receiveOrderLhs" |
||||
placeholder="请输入工单受理号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="操作类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="operateRemark"> |
||||
<dictionary |
||||
type-code="order_operate" |
||||
v-model="formData.operateRemark" |
||||
placeholder="请选择操作类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单业务类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderServiceType"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="order_service_type" |
||||
v-model="formData.orderServiceType" |
||||
placeholder="请选择工单业务类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备接入类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark3"> |
||||
<dictionary |
||||
type-code="device_access_type" |
||||
v-model="formData.remark3" |
||||
placeholder="请选择设备接入类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="系统管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="systemDomain"> |
||||
<el-tree-select |
||||
v-model="formData.systemDomain" |
||||
placeholder="请选择所属管理域" |
||||
:data="domainOptions" |
||||
filterable |
||||
clearable |
||||
check-strictly |
||||
:render-after-expand="false" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="AD编号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="adNo"> |
||||
<el-input v-model="formData.adNo" placeholder="请输入AD编号" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备标识" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="devSnoOui"> |
||||
<el-input |
||||
v-model="formData.devSnoOui" |
||||
placeholder="请输入设备标识" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="光口逻辑号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="userSnNo"> |
||||
<el-input |
||||
v-model="formData.userSnNo" |
||||
placeholder="请输入光口逻辑号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="PPPOE账号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="pppoeAccount"> |
||||
<el-input |
||||
v-model="formData.pppoeAccount" |
||||
placeholder="请输入PPPOE账号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="虚拟标志" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="dummyFlag"> |
||||
<dictionary |
||||
type-code="dummy_flag" |
||||
v-model="formData.dummyFlag" |
||||
placeholder="请选择虚拟标志" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="企业管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="corporation"> |
||||
<el-input |
||||
v-model="formData.corporation" |
||||
placeholder="请输入企业管理域" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="3" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="customerNameNew"> |
||||
<el-input |
||||
v-model="formData.customerNameNew" |
||||
placeholder="请输入客户名称" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户地址" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="customerAddrNew"> |
||||
<el-input |
||||
v-model="formData.customerAddrNew" |
||||
placeholder="请输入客户地址" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人信息" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="contactPersonNew"> |
||||
<el-input |
||||
v-model="formData.contactPersonNew" |
||||
placeholder="请输入联系人信息" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人电话" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="phone"> |
||||
<el-input |
||||
v-model="formData.phone" |
||||
placeholder="请输入联系人电话" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderCustomerKind"> |
||||
<dictionary |
||||
type-code="order_custom_type" |
||||
v-model="formData.orderCustomerKind" |
||||
placeholder="请选择客户类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="备注" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark"> |
||||
<el-input v-model="formData.remark" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="2" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="serviceName"> |
||||
<el-input readonly v-model="formData.serviceName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="业务名称" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="serviceFlag"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="service_flag" |
||||
v-model="formData.serviceFlag" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-form> |
||||
</el-card> |
||||
</el-scrollbar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { Grid, Position } from "@element-plus/icons-vue"; |
||||
import { AddBroadbandForm } from "@/api/craft-order/types"; |
||||
import { getDomainOptions } from "@/api/domain"; |
||||
import { addTYSLZW, getBasicInfo } from "@/api/craft-order"; |
||||
import { FormInstance, FormRules } from "element-plus"; |
||||
import { confirm } from "@/utils/confirm"; |
||||
|
||||
defineOptions({ |
||||
name: "DeleteCloud", |
||||
inheritAttrs: false, |
||||
}); |
||||
const ruleFormRef = ref<FormInstance>(); |
||||
const loading = ref<boolean>(false); |
||||
const formData = ref<AddBroadbandForm>({ |
||||
operateRemark: "0", |
||||
remark3: "4", |
||||
dummyFlag: "1", |
||||
orderServiceType: "1", |
||||
serviceName: "YHITV", |
||||
serviceFlag: "D", |
||||
list: [], |
||||
}); |
||||
|
||||
const rules = reactive<FormRules<AddBroadbandForm>>({ |
||||
userSnNo: [{ required: true, message: "请填写光口逻辑号", trigger: "blur" }], |
||||
systemDomain: [ |
||||
{ required: true, message: "请选择系统管理域", trigger: "blur" }, |
||||
], |
||||
orderCustomerKind: [ |
||||
{ required: true, message: "请选择客户类型", trigger: "blur" }, |
||||
], |
||||
}); |
||||
const domainOptions = ref<OptionType[]>([]); |
||||
|
||||
function loadDomainOptions() { |
||||
getDomainOptions().then(({ data }) => { |
||||
domainOptions.value = data; |
||||
}); |
||||
} |
||||
const loadBasicInfo = () => { |
||||
getBasicInfo().then(({ data }) => { |
||||
formData.value.receiveOrderId = data.receiveOrderId; |
||||
formData.value.receiveOrderLhs = data.receiveOrderLhs; |
||||
formData.value.systemDomain = data.systemDomain; |
||||
}); |
||||
}; |
||||
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
if (valid) { |
||||
confirm("确认手动提交删除TYSLZW工单吗", () => { |
||||
loading.value = true; |
||||
addTYSLZW(formData.value) |
||||
.then(() => {}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
onMounted(() => { |
||||
loadDomainOptions(); |
||||
loadBasicInfo(); |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped> |
||||
:deep(.my-label) { |
||||
width: 60px !important; |
||||
background: var(--el-color-white) !important; |
||||
} |
||||
|
||||
:deep(.el-card__body) { |
||||
padding: 10px 5px; |
||||
} |
||||
:deep(.el-form-item--default) { |
||||
margin-bottom: 0; |
||||
} |
||||
</style> |
@ -0,0 +1,476 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-scrollbar height="600"> |
||||
<el-card shadow="never"> |
||||
<el-form |
||||
:model="formData" |
||||
ref="ruleFormRef" |
||||
:rules="rules" |
||||
v-loading="loading" |
||||
> |
||||
<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" |
||||
>YHITV开通工单</span |
||||
> |
||||
</div> |
||||
</template> |
||||
<template #extra> |
||||
<el-button |
||||
type="primary" |
||||
:icon="Position" |
||||
style="margin-right: 8px" |
||||
@click="submitForm(ruleFormRef)" |
||||
>保存</el-button |
||||
> |
||||
</template> |
||||
<el-descriptions-item |
||||
label="工单序号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderId"> |
||||
<el-input |
||||
v-model="formData.receiveOrderId" |
||||
placeholder="请输入工单序号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单受理号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderLhs"> |
||||
<el-input |
||||
v-model="formData.receiveOrderLhs" |
||||
placeholder="请输入工单受理号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="操作类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="operateRemark"> |
||||
<dictionary |
||||
type-code="order_operate" |
||||
v-model="formData.operateRemark" |
||||
placeholder="请选择操作类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单业务类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderServiceType"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="order_service_type" |
||||
v-model="formData.orderServiceType" |
||||
placeholder="请选择工单业务类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备接入类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark3"> |
||||
<dictionary |
||||
type-code="device_access_type" |
||||
v-model="formData.remark3" |
||||
placeholder="请选择设备接入类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="系统管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="systemDomain"> |
||||
<el-tree-select |
||||
v-model="formData.systemDomain" |
||||
placeholder="请选择所属管理域" |
||||
:data="domainOptions" |
||||
filterable |
||||
clearable |
||||
check-strictly |
||||
:render-after-expand="false" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="AD编号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="adNo"> |
||||
<el-input v-model="formData.adNo" placeholder="请输入AD编号" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备标识" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="devSnoOui"> |
||||
<el-input |
||||
v-model="formData.devSnoOui" |
||||
placeholder="请输入设备标识" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="光口逻辑号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="userSnNo"> |
||||
<el-input |
||||
v-model="formData.userSnNo" |
||||
placeholder="请输入光口逻辑号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="PPPOE账号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="pppoeAccount"> |
||||
<el-input |
||||
v-model="formData.pppoeAccount" |
||||
placeholder="请输入PPPOE账号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="虚拟标志" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="dummyFlag"> |
||||
<dictionary |
||||
type-code="dummy_flag" |
||||
v-model="formData.dummyFlag" |
||||
placeholder="请选择虚拟标志" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="企业管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="corporation"> |
||||
<el-input |
||||
v-model="formData.corporation" |
||||
placeholder="请输入企业管理域" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="3" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="customerNameNew"> |
||||
<el-input |
||||
v-model="formData.customerNameNew" |
||||
placeholder="请输入客户名称" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户地址" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="customerAddrNew"> |
||||
<el-input |
||||
v-model="formData.customerAddrNew" |
||||
placeholder="请输入客户地址" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人信息" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="contactPersonNew"> |
||||
<el-input |
||||
v-model="formData.contactPersonNew" |
||||
placeholder="请输入联系人信息" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人电话" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="phone"> |
||||
<el-input |
||||
v-model="formData.phone" |
||||
placeholder="请输入联系人电话" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderCustomerKind"> |
||||
<dictionary |
||||
type-code="order_custom_type" |
||||
v-model="formData.orderCustomerKind" |
||||
placeholder="请选择客户类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="备注" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark"> |
||||
<el-input v-model="formData.remark" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="2" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="serviceName"> |
||||
<el-input readonly v-model="formData.serviceName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="业务名称" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="serviceFlag"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="service_flag" |
||||
v-model="formData.serviceFlag" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="VLAN" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[0].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-input v-model="formData.list[0].argsValue" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-form> |
||||
</el-card> |
||||
</el-scrollbar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { Grid, Position } from "@element-plus/icons-vue"; |
||||
import { AddBroadbandForm } from "@/api/craft-order/types"; |
||||
import { getDomainOptions } from "@/api/domain"; |
||||
import { addTYSLZW, getBasicInfo } from "@/api/craft-order"; |
||||
import { FormInstance, FormRules } from "element-plus"; |
||||
import { confirm } from "@/utils/confirm"; |
||||
|
||||
defineOptions({ |
||||
name: "EnableCloudBox", |
||||
inheritAttrs: false, |
||||
}); |
||||
const ruleFormRef = ref<FormInstance>(); |
||||
const loading = ref<boolean>(false); |
||||
const formData = ref<AddBroadbandForm>({ |
||||
operateRemark: "0", |
||||
remark3: "4", |
||||
dummyFlag: "1", |
||||
orderServiceType: "0", |
||||
serviceName: "YHITV", |
||||
serviceFlag: "A", |
||||
list: [{ argsName: "lan_vlan" }], |
||||
}); |
||||
|
||||
const rules = reactive<FormRules<AddBroadbandForm>>({ |
||||
userSnNo: [{ required: true, message: "请填写光口逻辑号", trigger: "blur" }], |
||||
systemDomain: [ |
||||
{ required: true, message: "请选择系统管理域", trigger: "blur" }, |
||||
], |
||||
orderCustomerKind: [ |
||||
{ required: true, message: "请选择客户类型", trigger: "blur" }, |
||||
], |
||||
}); |
||||
const domainOptions = ref<OptionType[]>([]); |
||||
const rulesParams = (): boolean => { |
||||
let ipAddressArgsValue = formData.value.list[0].argsValue; |
||||
if (ipAddressArgsValue === undefined || ipAddressArgsValue === "") { |
||||
ElMessage({ |
||||
message: "请输入VLAN的参数值", |
||||
duration: 1000, |
||||
type: "error", |
||||
}); |
||||
return false; |
||||
} |
||||
return true; |
||||
}; |
||||
function loadDomainOptions() { |
||||
getDomainOptions().then(({ data }) => { |
||||
domainOptions.value = data; |
||||
}); |
||||
} |
||||
const loadBasicInfo = () => { |
||||
getBasicInfo().then(({ data }) => { |
||||
formData.value.receiveOrderId = data.receiveOrderId; |
||||
formData.value.receiveOrderLhs = data.receiveOrderLhs; |
||||
formData.value.systemDomain = data.systemDomain; |
||||
}); |
||||
}; |
||||
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
let flag = rulesParams(); |
||||
if (valid && flag) { |
||||
confirm("确认手动提交开通TYSLZW工单吗", () => { |
||||
loading.value = true; |
||||
addTYSLZW(formData.value) |
||||
.then(() => {}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
onMounted(() => { |
||||
loadDomainOptions(); |
||||
loadBasicInfo(); |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped> |
||||
:deep(.my-label) { |
||||
width: 60px !important; |
||||
background: var(--el-color-white) !important; |
||||
} |
||||
|
||||
:deep(.el-card__body) { |
||||
padding: 10px 5px; |
||||
} |
||||
:deep(.el-form-item--default) { |
||||
margin-bottom: 0; |
||||
} |
||||
</style> |
@ -0,0 +1,23 @@ |
||||
<template> |
||||
<router-view> |
||||
<template #default="{ Component, route }"> |
||||
<transition |
||||
enter-active-class="animate__animated animate__fadeIn" |
||||
mode="out-in" |
||||
> |
||||
<keep-alive :include="cachedViews"> |
||||
<component :is="Component" :key="route.path" /> |
||||
</keep-alive> |
||||
</transition> |
||||
</template> |
||||
</router-view> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { useTagsViewStore } from "@/store"; |
||||
defineOptions({ |
||||
name: "CloudBox", |
||||
inheritAttrs: false, |
||||
}); |
||||
const cachedViews = computed(() => useTagsViewStore().cachedViews); // 缓存页面集; |
||||
</script> |
@ -0,0 +1,508 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-scrollbar height="600"> |
||||
<el-card shadow="never"> |
||||
<el-form |
||||
:model="formData" |
||||
ref="ruleFormRef" |
||||
:rules="rules" |
||||
v-loading="loading" |
||||
> |
||||
<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" |
||||
>设备VOIP业务删除工单</span |
||||
> |
||||
</div> |
||||
</template> |
||||
<template #extra> |
||||
<el-button |
||||
type="primary" |
||||
:icon="Position" |
||||
style="margin-right: 8px" |
||||
@click="submitForm(ruleFormRef)" |
||||
>保存</el-button |
||||
> |
||||
</template> |
||||
<el-descriptions-item |
||||
label="工单序号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderId"> |
||||
<el-input |
||||
v-model="formData.receiveOrderId" |
||||
placeholder="请输入工单序号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单受理号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderLhs"> |
||||
<el-input |
||||
v-model="formData.receiveOrderLhs" |
||||
placeholder="请输入工单受理号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="操作类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="operateRemark"> |
||||
<dictionary |
||||
type-code="order_operate" |
||||
v-model="formData.operateRemark" |
||||
placeholder="请选择操作类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单业务类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderServiceType"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="order_service_type" |
||||
v-model="formData.orderServiceType" |
||||
placeholder="请选择工单业务类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备接入类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark3"> |
||||
<dictionary |
||||
type-code="device_access_type" |
||||
v-model="formData.remark3" |
||||
placeholder="请选择设备接入类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="系统管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="systemDomain"> |
||||
<el-tree-select |
||||
v-model="formData.systemDomain" |
||||
placeholder="请选择所属管理域" |
||||
:data="domainOptions" |
||||
filterable |
||||
clearable |
||||
check-strictly |
||||
:render-after-expand="false" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="AD编号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="adNo"> |
||||
<el-input v-model="formData.adNo" placeholder="请输入AD编号" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备标识" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="devSnoOui"> |
||||
<el-input |
||||
v-model="formData.devSnoOui" |
||||
placeholder="请输入设备标识" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="光口逻辑号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="userSnNo"> |
||||
<el-input |
||||
v-model="formData.userSnNo" |
||||
placeholder="请输入光口逻辑号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="PPPOE账号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="pppoeAccount"> |
||||
<el-input |
||||
v-model="formData.pppoeAccount" |
||||
placeholder="请输入PPPOE账号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="虚拟标志" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="dummyFlag"> |
||||
<dictionary |
||||
type-code="dummy_flag" |
||||
v-model="formData.dummyFlag" |
||||
placeholder="请选择虚拟标志" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="企业管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="corporation"> |
||||
<el-input |
||||
v-model="formData.corporation" |
||||
placeholder="请输入企业管理域" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="3" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="customerNameNew"> |
||||
<el-input |
||||
v-model="formData.customerNameNew" |
||||
placeholder="请输入客户名称" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户地址" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="customerAddrNew"> |
||||
<el-input |
||||
v-model="formData.customerAddrNew" |
||||
placeholder="请输入客户地址" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人信息" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="contactPersonNew"> |
||||
<el-input |
||||
v-model="formData.contactPersonNew" |
||||
placeholder="请输入联系人信息" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人电话" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="phone"> |
||||
<el-input |
||||
v-model="formData.phone" |
||||
placeholder="请输入联系人电话" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderCustomerKind"> |
||||
<dictionary |
||||
type-code="order_custom_type" |
||||
v-model="formData.orderCustomerKind" |
||||
placeholder="请选择客户类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="备注" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark"> |
||||
<el-input v-model="formData.remark" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="2" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="serviceName"> |
||||
<el-input readonly v-model="formData.serviceName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="业务名称" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="serviceFlag"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="service_flag" |
||||
v-model="formData.serviceFlag" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="终端语音端口号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[0].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-select |
||||
v-model="formData.list[0].argsValue" |
||||
placeholder="请选择终端语音端口号" |
||||
> |
||||
<el-option |
||||
v-for="item in voipOption" |
||||
:label="item.label" |
||||
:value="item.value" |
||||
:key="item.value" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-form> |
||||
</el-card> |
||||
</el-scrollbar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { Grid, Position } from "@element-plus/icons-vue"; |
||||
import { AddBroadbandForm } from "@/api/craft-order/types"; |
||||
import { getDomainOptions } from "@/api/domain"; |
||||
import { addCraftOrder, getBasicInfo } from "@/api/craft-order"; |
||||
import { FormInstance, FormRules } from "element-plus"; |
||||
import { confirm } from "@/utils/confirm"; |
||||
|
||||
defineOptions({ |
||||
name: "UpdateVoipPassword", |
||||
inheritAttrs: false, |
||||
}); |
||||
const ruleFormRef = ref<FormInstance>(); |
||||
const loading = ref<boolean>(false); |
||||
const formData = ref<AddBroadbandForm>({ |
||||
operateRemark: "0", |
||||
remark3: "4", |
||||
dummyFlag: "1", |
||||
orderServiceType: "1", |
||||
serviceName: "voip", |
||||
serviceFlag: "D", |
||||
list: [{ argsName: "user_tid" }], |
||||
}); |
||||
|
||||
const rules = reactive<FormRules<AddBroadbandForm>>({ |
||||
userSnNo: [{ required: true, message: "请填写光口逻辑号", trigger: "blur" }], |
||||
systemDomain: [ |
||||
{ required: true, message: "请选择系统管理域", trigger: "blur" }, |
||||
], |
||||
orderCustomerKind: [ |
||||
{ required: true, message: "请选择客户类型", trigger: "blur" }, |
||||
], |
||||
}); |
||||
const domainOptions = ref<OptionType[]>([]); |
||||
const voipOption: OptionType[] = [ |
||||
{ label: "语音1", value: "1" }, |
||||
{ label: "语音2", value: "2" }, |
||||
{ label: "语音3", value: "3" }, |
||||
{ label: "语音4", value: "4" }, |
||||
{ label: "语音5", value: "5" }, |
||||
{ label: "语音6", value: "6" }, |
||||
{ label: "语音7", value: "7" }, |
||||
{ label: "语音8", value: "8" }, |
||||
{ label: "语音9", value: "9" }, |
||||
{ label: "语音10", value: "10" }, |
||||
{ label: "语音11", value: "11" }, |
||||
{ label: "语音12", value: "12" }, |
||||
{ label: "语音13", value: "13" }, |
||||
{ label: "语音14", value: "14" }, |
||||
{ label: "语音15", value: "15" }, |
||||
{ label: "语音16", value: "16" }, |
||||
{ label: "语音17", value: "17" }, |
||||
{ label: "语音18", value: "18" }, |
||||
{ label: "语音19", value: "19" }, |
||||
{ label: "语音20", value: "20" }, |
||||
]; |
||||
const rulesParams = (): boolean => { |
||||
let argsValue0 = formData.value.list[0].argsValue; |
||||
if (argsValue0 === undefined || argsValue0 === "") { |
||||
ElMessage({ |
||||
message: "请选择终端语音端口号的参数值", |
||||
duration: 2000, |
||||
type: "error", |
||||
}); |
||||
return false; |
||||
} |
||||
return true; |
||||
}; |
||||
function loadDomainOptions() { |
||||
getDomainOptions().then(({ data }) => { |
||||
domainOptions.value = data; |
||||
}); |
||||
} |
||||
const loadBasicInfo = () => { |
||||
getBasicInfo().then(({ data }) => { |
||||
formData.value.receiveOrderId = data.receiveOrderId; |
||||
formData.value.receiveOrderLhs = data.receiveOrderLhs; |
||||
formData.value.systemDomain = data.systemDomain; |
||||
}); |
||||
}; |
||||
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
let flag = rulesParams(); |
||||
if (valid && flag) { |
||||
confirm("确认手动提交删除VOIP工单吗", () => { |
||||
loading.value = true; |
||||
addCraftOrder(formData.value) |
||||
.then(() => {}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
onMounted(() => { |
||||
loadDomainOptions(); |
||||
loadBasicInfo(); |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped> |
||||
:deep(.my-label) { |
||||
width: 75px !important; |
||||
background: var(--el-color-white) !important; |
||||
} |
||||
|
||||
:deep(.el-card__body) { |
||||
padding: 10px 5px; |
||||
} |
||||
:deep(.el-form-item--default) { |
||||
margin-bottom: 0; |
||||
} |
||||
</style> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@ |
||||
<template> |
||||
<router-view> |
||||
<template #default="{ Component, route }"> |
||||
<transition |
||||
enter-active-class="animate__animated animate__fadeIn" |
||||
mode="out-in" |
||||
> |
||||
<keep-alive :include="cachedViews"> |
||||
<component :is="Component" :key="route.path" /> |
||||
</keep-alive> |
||||
</transition> |
||||
</template> |
||||
</router-view> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { useTagsViewStore } from "@/store"; |
||||
defineOptions({ |
||||
name: "Voip", |
||||
inheritAttrs: false, |
||||
}); |
||||
const cachedViews = computed(() => useTagsViewStore().cachedViews); // 缓存页面集; |
||||
</script> |
@ -0,0 +1,479 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-scrollbar height="600"> |
||||
<el-card shadow="never"> |
||||
<el-form |
||||
:model="formData" |
||||
ref="ruleFormRef" |
||||
:rules="rules" |
||||
v-loading="loading" |
||||
> |
||||
<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" |
||||
>设备VOIP业务删除工单</span |
||||
> |
||||
</div> |
||||
</template> |
||||
<template #extra> |
||||
<el-button |
||||
type="primary" |
||||
:icon="Position" |
||||
style="margin-right: 8px" |
||||
@click="submitForm(ruleFormRef)" |
||||
>保存</el-button |
||||
> |
||||
</template> |
||||
<el-descriptions-item |
||||
label="工单序号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderId"> |
||||
<el-input |
||||
v-model="formData.receiveOrderId" |
||||
placeholder="请输入工单序号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单受理号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderLhs"> |
||||
<el-input |
||||
v-model="formData.receiveOrderLhs" |
||||
placeholder="请输入工单受理号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="操作类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="operateRemark"> |
||||
<dictionary |
||||
type-code="order_operate" |
||||
v-model="formData.operateRemark" |
||||
placeholder="请选择操作类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单业务类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderServiceType"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="order_service_type" |
||||
v-model="formData.orderServiceType" |
||||
placeholder="请选择工单业务类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备接入类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark3"> |
||||
<dictionary |
||||
type-code="device_access_type" |
||||
v-model="formData.remark3" |
||||
placeholder="请选择设备接入类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="系统管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="systemDomain"> |
||||
<el-tree-select |
||||
v-model="formData.systemDomain" |
||||
placeholder="请选择所属管理域" |
||||
:data="domainOptions" |
||||
filterable |
||||
clearable |
||||
check-strictly |
||||
:render-after-expand="false" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="AD编号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="adNo"> |
||||
<el-input v-model="formData.adNo" placeholder="请输入AD编号" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备标识" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="devSnoOui"> |
||||
<el-input |
||||
v-model="formData.devSnoOui" |
||||
placeholder="请输入设备标识" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="光口逻辑号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="userSnNo"> |
||||
<el-input |
||||
v-model="formData.userSnNo" |
||||
placeholder="请输入光口逻辑号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="PPPOE账号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="pppoeAccount"> |
||||
<el-input |
||||
v-model="formData.pppoeAccount" |
||||
placeholder="请输入PPPOE账号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="虚拟标志" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="dummyFlag"> |
||||
<dictionary |
||||
type-code="dummy_flag" |
||||
v-model="formData.dummyFlag" |
||||
placeholder="请选择虚拟标志" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="企业管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="corporation"> |
||||
<el-input |
||||
v-model="formData.corporation" |
||||
placeholder="请输入企业管理域" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="3" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="customerNameNew"> |
||||
<el-input |
||||
v-model="formData.customerNameNew" |
||||
placeholder="请输入客户名称" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户地址" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="customerAddrNew"> |
||||
<el-input |
||||
v-model="formData.customerAddrNew" |
||||
placeholder="请输入客户地址" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人信息" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="contactPersonNew"> |
||||
<el-input |
||||
v-model="formData.contactPersonNew" |
||||
placeholder="请输入联系人信息" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人电话" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="phone"> |
||||
<el-input |
||||
v-model="formData.phone" |
||||
placeholder="请输入联系人电话" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderCustomerKind"> |
||||
<dictionary |
||||
type-code="order_custom_type" |
||||
v-model="formData.orderCustomerKind" |
||||
placeholder="请选择客户类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="备注" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark"> |
||||
<el-input v-model="formData.remark" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="2" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="serviceName"> |
||||
<el-input readonly v-model="formData.serviceName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="业务名称" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="serviceFlag"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="service_flag" |
||||
v-model="formData.serviceFlag" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="终端语音端口号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[0].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-input |
||||
v-model="formData.list[0].argsValue" |
||||
placeholder="请输入数图参数" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-form> |
||||
</el-card> |
||||
</el-scrollbar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { Grid, Position } from "@element-plus/icons-vue"; |
||||
import { AddBroadbandForm } from "@/api/craft-order/types"; |
||||
import { getDomainOptions } from "@/api/domain"; |
||||
import { addCraftOrder, getBasicInfo } from "@/api/craft-order"; |
||||
import { FormInstance, FormRules } from "element-plus"; |
||||
import { confirm } from "@/utils/confirm"; |
||||
|
||||
defineOptions({ |
||||
name: "TreeDiagram", |
||||
inheritAttrs: false, |
||||
}); |
||||
const ruleFormRef = ref<FormInstance>(); |
||||
const loading = ref<boolean>(false); |
||||
const formData = ref<AddBroadbandForm>({ |
||||
operateRemark: "0", |
||||
remark3: "4", |
||||
dummyFlag: "1", |
||||
orderServiceType: "3", |
||||
serviceName: "voip", |
||||
serviceFlag: "M", |
||||
list: [{ argsName: "voip_digitmap" }], |
||||
}); |
||||
|
||||
const rules = reactive<FormRules<AddBroadbandForm>>({ |
||||
userSnNo: [{ required: true, message: "请填写光口逻辑号", trigger: "blur" }], |
||||
systemDomain: [ |
||||
{ required: true, message: "请选择系统管理域", trigger: "blur" }, |
||||
], |
||||
orderCustomerKind: [ |
||||
{ required: true, message: "请选择客户类型", trigger: "blur" }, |
||||
], |
||||
}); |
||||
const domainOptions = ref<OptionType[]>([]); |
||||
const rulesParams = (): boolean => { |
||||
let argsValue0 = formData.value.list[0].argsValue; |
||||
if (argsValue0 === undefined || argsValue0 === "") { |
||||
ElMessage({ |
||||
message: "请输入数图参数的参数值", |
||||
duration: 2000, |
||||
type: "error", |
||||
}); |
||||
return false; |
||||
} |
||||
return true; |
||||
}; |
||||
function loadDomainOptions() { |
||||
getDomainOptions().then(({ data }) => { |
||||
domainOptions.value = data; |
||||
}); |
||||
} |
||||
const loadBasicInfo = () => { |
||||
getBasicInfo().then(({ data }) => { |
||||
formData.value.receiveOrderId = data.receiveOrderId; |
||||
formData.value.receiveOrderLhs = data.receiveOrderLhs; |
||||
formData.value.systemDomain = data.systemDomain; |
||||
}); |
||||
}; |
||||
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
let flag = rulesParams(); |
||||
if (valid && flag) { |
||||
confirm("确认手动提交数图修改工单吗", () => { |
||||
loading.value = true; |
||||
addCraftOrder(formData.value) |
||||
.then(() => {}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
onMounted(() => { |
||||
loadDomainOptions(); |
||||
loadBasicInfo(); |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped> |
||||
:deep(.my-label) { |
||||
width: 75px !important; |
||||
background: var(--el-color-white) !important; |
||||
} |
||||
|
||||
:deep(.el-card__body) { |
||||
padding: 10px 5px; |
||||
} |
||||
:deep(.el-form-item--default) { |
||||
margin-bottom: 0; |
||||
} |
||||
</style> |
@ -0,0 +1,603 @@ |
||||
<template> |
||||
<div class="app-container"> |
||||
<el-scrollbar height="600"> |
||||
<el-card shadow="never"> |
||||
<el-form |
||||
:model="formData" |
||||
ref="ruleFormRef" |
||||
:rules="rules" |
||||
v-loading="loading" |
||||
> |
||||
<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" |
||||
>设备VOIP业务修改密码工单</span |
||||
> |
||||
</div> |
||||
</template> |
||||
<template #extra> |
||||
<el-button |
||||
type="primary" |
||||
:icon="Position" |
||||
style="margin-right: 8px" |
||||
@click="submitForm(ruleFormRef)" |
||||
>保存</el-button |
||||
> |
||||
</template> |
||||
<el-descriptions-item |
||||
label="工单序号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderId"> |
||||
<el-input |
||||
v-model="formData.receiveOrderId" |
||||
placeholder="请输入工单序号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单受理号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="receiveOrderLhs"> |
||||
<el-input |
||||
v-model="formData.receiveOrderLhs" |
||||
placeholder="请输入工单受理号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="操作类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="operateRemark"> |
||||
<dictionary |
||||
type-code="order_operate" |
||||
v-model="formData.operateRemark" |
||||
placeholder="请选择操作类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="工单业务类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderServiceType"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="order_service_type" |
||||
v-model="formData.orderServiceType" |
||||
placeholder="请选择工单业务类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备接入类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark3"> |
||||
<dictionary |
||||
type-code="device_access_type" |
||||
v-model="formData.remark3" |
||||
placeholder="请选择设备接入类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="系统管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="systemDomain"> |
||||
<el-tree-select |
||||
v-model="formData.systemDomain" |
||||
placeholder="请选择所属管理域" |
||||
:data="domainOptions" |
||||
filterable |
||||
clearable |
||||
check-strictly |
||||
:render-after-expand="false" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="AD编号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="adNo"> |
||||
<el-input v-model="formData.adNo" placeholder="请输入AD编号" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="设备标识" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="devSnoOui"> |
||||
<el-input |
||||
v-model="formData.devSnoOui" |
||||
placeholder="请输入设备标识" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="光口逻辑号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="userSnNo"> |
||||
<el-input |
||||
v-model="formData.userSnNo" |
||||
placeholder="请输入光口逻辑号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="PPPOE账号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="pppoeAccount"> |
||||
<el-input |
||||
v-model="formData.pppoeAccount" |
||||
placeholder="请输入PPPOE账号" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="虚拟标志" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="dummyFlag"> |
||||
<dictionary |
||||
type-code="dummy_flag" |
||||
v-model="formData.dummyFlag" |
||||
placeholder="请选择虚拟标志" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="企业管理域" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="corporation"> |
||||
<el-input |
||||
v-model="formData.corporation" |
||||
placeholder="请输入企业管理域" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="3" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="customerNameNew"> |
||||
<el-input |
||||
v-model="formData.customerNameNew" |
||||
placeholder="请输入客户名称" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户地址" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="customerAddrNew"> |
||||
<el-input |
||||
v-model="formData.customerAddrNew" |
||||
placeholder="请输入客户地址" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人信息" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="contactPersonNew"> |
||||
<el-input |
||||
v-model="formData.contactPersonNew" |
||||
placeholder="请输入联系人信息" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="联系人电话" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="phone"> |
||||
<el-input |
||||
v-model="formData.phone" |
||||
placeholder="请输入联系人电话" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="客户类型" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="orderCustomerKind"> |
||||
<dictionary |
||||
type-code="order_custom_type" |
||||
v-model="formData.orderCustomerKind" |
||||
placeholder="请选择客户类型" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="备注" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="remark"> |
||||
<el-input v-model="formData.remark" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
<el-descriptions :column="2" border style="margin-top: 5px"> |
||||
<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" |
||||
> |
||||
<el-form-item prop="serviceName"> |
||||
<el-input readonly v-model="formData.serviceName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="业务名称" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="serviceFlag"> |
||||
<dictionary |
||||
:disabled="true" |
||||
type-code="service_flag" |
||||
v-model="formData.serviceFlag" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="终端语音端口号" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[0].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-select |
||||
v-model="formData.list[0].argsValue" |
||||
placeholder="请选择终端语音端口号" |
||||
> |
||||
<el-option |
||||
v-for="item in voipOption" |
||||
:label="item.label" |
||||
:value="item.value" |
||||
:key="item.value" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="用户电话号码" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[1].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-input |
||||
v-model="formData.list[1].argsValue" |
||||
placeholder="请输入用户电话号码" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="软交换用户名" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[2].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-input |
||||
v-model="formData.list[2].argsValue" |
||||
placeholder="请输入软交换用户名" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="软交换密码" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsName"> |
||||
<el-input readonly v-model="formData.list[3].argsName" /> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item |
||||
label="参数值" |
||||
label-align="center" |
||||
align="center" |
||||
label-class-name="my-label" |
||||
class-name="my-content" |
||||
width="150px" |
||||
> |
||||
<el-form-item prop="argsValue"> |
||||
<el-input |
||||
v-model="formData.list[3].argsValue" |
||||
placeholder="请输入软交换密码" |
||||
/> |
||||
</el-form-item> |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-form> |
||||
</el-card> |
||||
</el-scrollbar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { Grid, Position } from "@element-plus/icons-vue"; |
||||
import { AddBroadbandForm } from "@/api/craft-order/types"; |
||||
import { getDomainOptions } from "@/api/domain"; |
||||
import { addCraftOrder, getBasicInfo } from "@/api/craft-order"; |
||||
import { FormInstance, FormRules } from "element-plus"; |
||||
import { confirm } from "@/utils/confirm"; |
||||
|
||||
defineOptions({ |
||||
name: "UpdateVoipPassword", |
||||
inheritAttrs: false, |
||||
}); |
||||
const ruleFormRef = ref<FormInstance>(); |
||||
const loading = ref<boolean>(false); |
||||
const formData = ref<AddBroadbandForm>({ |
||||
operateRemark: "0", |
||||
remark3: "4", |
||||
dummyFlag: "1", |
||||
orderServiceType: "3", |
||||
serviceName: "voip", |
||||
serviceFlag: "M", |
||||
list: [ |
||||
{ argsName: "user_tid" }, |
||||
{ argsName: "sip_uri" }, |
||||
{ argsName: "auth_username" }, |
||||
{ argsName: "auth_password" }, |
||||
], |
||||
}); |
||||
|
||||
const rules = reactive<FormRules<AddBroadbandForm>>({ |
||||
userSnNo: [{ required: true, message: "请填写光口逻辑号", trigger: "blur" }], |
||||
systemDomain: [ |
||||
{ required: true, message: "请选择系统管理域", trigger: "blur" }, |
||||
], |
||||
orderCustomerKind: [ |
||||
{ required: true, message: "请选择客户类型", trigger: "blur" }, |
||||
], |
||||
}); |
||||
const domainOptions = ref<OptionType[]>([]); |
||||
const voipOption: OptionType[] = [ |
||||
{ label: "语音1", value: "1" }, |
||||
{ label: "语音2", value: "2" }, |
||||
{ label: "语音3", value: "3" }, |
||||
{ label: "语音4", value: "4" }, |
||||
{ label: "语音5", value: "5" }, |
||||
{ label: "语音6", value: "6" }, |
||||
{ label: "语音7", value: "7" }, |
||||
{ label: "语音8", value: "8" }, |
||||
{ label: "语音9", value: "9" }, |
||||
{ label: "语音10", value: "10" }, |
||||
{ label: "语音11", value: "11" }, |
||||
{ label: "语音12", value: "12" }, |
||||
{ label: "语音13", value: "13" }, |
||||
{ label: "语音14", value: "14" }, |
||||
{ label: "语音15", value: "15" }, |
||||
{ label: "语音16", value: "16" }, |
||||
{ label: "语音17", value: "17" }, |
||||
{ label: "语音18", value: "18" }, |
||||
{ label: "语音19", value: "19" }, |
||||
{ label: "语音20", value: "20" }, |
||||
]; |
||||
const rulesParams = (): boolean => { |
||||
let argsValue0 = formData.value.list[0].argsValue; |
||||
if (argsValue0 === undefined || argsValue0 === "") { |
||||
ElMessage({ |
||||
message: "请选择终端语音端口号的参数值", |
||||
duration: 2000, |
||||
type: "error", |
||||
}); |
||||
return false; |
||||
} |
||||
let argsValue3 = formData.value.list[3].argsValue; |
||||
if (argsValue3 === undefined || argsValue3 === "") { |
||||
ElMessage({ |
||||
message: "请输入软交换密码的参数值", |
||||
duration: 2000, |
||||
type: "error", |
||||
}); |
||||
return false; |
||||
} |
||||
return true; |
||||
}; |
||||
function loadDomainOptions() { |
||||
getDomainOptions().then(({ data }) => { |
||||
domainOptions.value = data; |
||||
}); |
||||
} |
||||
const loadBasicInfo = () => { |
||||
getBasicInfo().then(({ data }) => { |
||||
formData.value.receiveOrderId = data.receiveOrderId; |
||||
formData.value.receiveOrderLhs = data.receiveOrderLhs; |
||||
formData.value.systemDomain = data.systemDomain; |
||||
}); |
||||
}; |
||||
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
let flag = rulesParams(); |
||||
if (valid && flag) { |
||||
confirm("确认手动提交修改VOIP密码工单吗", () => { |
||||
loading.value = true; |
||||
addCraftOrder(formData.value) |
||||
.then(() => {}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
onMounted(() => { |
||||
loadDomainOptions(); |
||||
loadBasicInfo(); |
||||
}); |
||||
</script> |
||||
|
||||
<style scoped> |
||||
:deep(.my-label) { |
||||
width: 75px !important; |
||||
background: var(--el-color-white) !important; |
||||
} |
||||
|
||||
:deep(.el-card__body) { |
||||
padding: 10px 5px; |
||||
} |
||||
:deep(.el-form-item--default) { |
||||
margin-bottom: 0; |
||||
} |
||||
</style> |
Loading…
Reference in new issue