|
|
|
|
@ -15,23 +15,29 @@
|
|
|
|
|
<el-form-item label="设备IMEI" prop="deviceImei">
|
|
|
|
|
<el-input v-model="queryParams.deviceImei" placeholder="请输入设备IMEI" clearable />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="设备类型" prop="deviceType">
|
|
|
|
|
<el-select v-model="queryParams.deviceType" placeholder="设备类型">
|
|
|
|
|
<el-form-item label="设备类型" prop="deviceType" >
|
|
|
|
|
<el-select v-model="queryParams.deviceType" placeholder="设备类型" clearable>
|
|
|
|
|
<el-option v-for="item in deviceTypeOptions" :key="item.value" :label="item.typeName"
|
|
|
|
|
:value="item.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="设备状态" prop="deviceStatus" v-hasPermi="['equipment:devices:allocate']">
|
|
|
|
|
<el-select v-model="queryParams.deviceStatus" placeholder="设备状态" style="margin-left: 10px">
|
|
|
|
|
<el-select v-model="queryParams.deviceStatus" placeholder="设备状态" clearable>
|
|
|
|
|
<el-option label="正常" value="1" />
|
|
|
|
|
<el-option label="失效" value="0" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="在线状态" prop="onlineStatus">
|
|
|
|
|
<el-select v-model="queryParams.onlineStatus" placeholder="在线状态" style="margin-left: 10px">
|
|
|
|
|
<el-select v-model="queryParams.onlineStatus" placeholder="在线状态" clearable>
|
|
|
|
|
<el-option label="在线" value="1" />
|
|
|
|
|
<el-option label="离线" value="0" />
|
|
|
|
|
<el-option label="故障" value="2" />
|
|
|
|
|
<el-option label="故障" value="2" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="绑定状态" prop="bindingStatus">
|
|
|
|
|
<el-select v-model="queryParams.bindingStatus" placeholder="绑定状态" clearable>
|
|
|
|
|
<el-option label="已绑定" value="1" />
|
|
|
|
|
<el-option label="未绑定" value="0" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="创建时间">
|
|
|
|
|
@ -112,7 +118,7 @@
|
|
|
|
|
<el-tag :type="scope.row.bindingStatus === 1 ? 'success' : 'info'">
|
|
|
|
|
{{ scope.row.bindingStatus === 1 ? '已绑定' : '未绑定' }}
|
|
|
|
|
</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="onlineStatus" label="设备状态">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
@ -314,9 +320,9 @@
|
|
|
|
|
<span style="color: red">{{ importResult.errorSun }}</span> 条。</span>
|
|
|
|
|
</div>
|
|
|
|
|
</el-upload>
|
|
|
|
|
<p v-if="importResult.errorSun > 0" style="padding: 10px">
|
|
|
|
|
<a :href="importResult.link">>>> 上传失败明细下载 <i class="el-icon-download" /></a>
|
|
|
|
|
</p>
|
|
|
|
|
<p v-if="importResult.errorSun > 0" style="padding: 10px">
|
|
|
|
|
<a :href="importResult.link">>>> 上传失败明细下载 <i class="el-icon-download" /></a>
|
|
|
|
|
</p>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
<el-button @click="importDialogVisible = false">取 消</el-button>
|
|
|
|
|
@ -459,7 +465,8 @@ const initData: PageData<deviceForm, deviceQuery> = {
|
|
|
|
|
deviceImei: '',
|
|
|
|
|
deviceType: '',
|
|
|
|
|
deviceStatus: '',
|
|
|
|
|
onlineStatus:''
|
|
|
|
|
onlineStatus: '',
|
|
|
|
|
bindingStatus:''
|
|
|
|
|
},
|
|
|
|
|
rules: {
|
|
|
|
|
deviceName: [{ required: true, message: '请输入设备名称', trigger: 'blur' }],
|
|
|
|
|
@ -909,7 +916,7 @@ const handleBatchImport = () => {
|
|
|
|
|
const downloadTemplate = () => {
|
|
|
|
|
// 这里可用 window.open 或 a 标签下载模板
|
|
|
|
|
const link = document.createElement('a');
|
|
|
|
|
link.href = 'https://fuyuanshen.com/fys/Equipmentimporttemplate/EquipmentImportTemplate.xlsx';
|
|
|
|
|
link.href = 'https://www.cnxhyc.com/jquan/Equipmentimporttemplate/EquipmentImportTemplate.xlsx';
|
|
|
|
|
link.download = '设备数据导入模板.xlsx'; // 可选:指定下载文件名
|
|
|
|
|
link.style.display = 'none'; // 隐藏标签
|
|
|
|
|
document.body.appendChild(link);
|
|
|
|
|
@ -917,11 +924,11 @@ const downloadTemplate = () => {
|
|
|
|
|
document.body.removeChild(link); // 移除标签
|
|
|
|
|
};
|
|
|
|
|
const beforeImportUpload = (file: any) => {
|
|
|
|
|
const isLt5M = file.size / 1024 / 1024 < 5;
|
|
|
|
|
if (!isLt5M) {
|
|
|
|
|
proxy?.$modal.msgError('上传文件大小不能超过 5MB!');
|
|
|
|
|
}
|
|
|
|
|
return isLt5M;
|
|
|
|
|
// const isLt5M = file.size / 1024 / 1024 < 5;
|
|
|
|
|
// if (!isLt5M) {
|
|
|
|
|
// proxy?.$modal.msgError('上传文件大小不能超过 5MB!');
|
|
|
|
|
// }
|
|
|
|
|
// return isLt5M;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//添加tokenf方法head_upload 直接返回 getBearerToken()
|
|
|
|
|
@ -930,10 +937,8 @@ const handleImportSuccess = (response: any) => {
|
|
|
|
|
if (response.code == 200) {
|
|
|
|
|
console.log('导入成功了么');
|
|
|
|
|
importResult.value.isShow = true;
|
|
|
|
|
|
|
|
|
|
if (response.data) {
|
|
|
|
|
console.log(response.data, 'response.data');
|
|
|
|
|
|
|
|
|
|
importResult.value.succeed = response.data.successCount;
|
|
|
|
|
importResult.value.errorSun = response.data.failureCount;
|
|
|
|
|
importResult.value.total = importResult.value.succeed + importResult.value.errorSun;
|
|
|
|
|
@ -944,6 +949,9 @@ const handleImportSuccess = (response: any) => {
|
|
|
|
|
}
|
|
|
|
|
getList(); // 初始化列表数据
|
|
|
|
|
} else {
|
|
|
|
|
if (importUpload.value) {
|
|
|
|
|
importUpload.value.clearFiles();
|
|
|
|
|
}
|
|
|
|
|
proxy?.$modal.msgError(response.msg);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
@ -967,15 +975,13 @@ const handleBatchAssignConfirm = () => {
|
|
|
|
|
customerId: batchAssignCustomerId.value, // 目标客户ID
|
|
|
|
|
deviceIds: selectedIds // 选中的设备ID数组
|
|
|
|
|
};
|
|
|
|
|
api
|
|
|
|
|
.deviceAssignCustomer(data)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
batchAssignDialogVisible.value = false;
|
|
|
|
|
getList();
|
|
|
|
|
return proxy?.$modal.msgSuccess(`分配成功`);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
api.deviceAssignCustomer(data).then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
batchAssignDialogVisible.value = false;
|
|
|
|
|
getList();
|
|
|
|
|
return proxy?.$modal.msgSuccess(`分配成功`);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => { });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|