房屋详情,单元变更
This commit is contained in:
@@ -44,8 +44,8 @@
|
||||
<el-dropdown-item @click="handleMarkQrcodeZip">
|
||||
<span>批量下载条形码</span>
|
||||
</el-dropdown-item>
|
||||
<!-- <el-dropdown-item v-hasPermi="['equipment:addqrcode:electricitydevice']">
|
||||
<div @click="handleMarkqrcode">批量更新固件</div>
|
||||
<!-- <el-dropdown-item v-hasPermi="['equipment:updatehardware:waterdevice']">
|
||||
<div @click="handleMarkUpload">批量更新固件</div>
|
||||
</el-dropdown-item> -->
|
||||
</template>
|
||||
</right-toolbar>
|
||||
@@ -127,7 +127,7 @@
|
||||
<el-button link type="primary" @click="handleOpenDialog('Upload', scope.row)" v-hasPermi="['equipment:updatehardware:waterdevice']"
|
||||
>更新固件</el-button
|
||||
>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row.deviceCode)">最新抄表记录</el-button>
|
||||
<!-- <el-button link type="primary" @click="handleUpdate(scope.row.deviceCode)">最新抄表记录</el-button> -->
|
||||
|
||||
<el-button link type="primary" @click="handleOpenDialog('UpdateHouse', scope.row)" v-hasPermi="['equipment:edithouse:waterdevice']"
|
||||
>绑定房屋</el-button
|
||||
@@ -197,15 +197,23 @@
|
||||
</el-form>
|
||||
<!-- upload file -->
|
||||
<el-form v-else-if="dialogType === 'Upload'" ref="UploadFileformRef" :model="UploadFileform" :rules="UploadFileformRules" label-width="140px">
|
||||
<el-form-item label="上传 A槽更新 文件" prop="fileA">
|
||||
<el-form-item label="LEN_A" prop="lenA">
|
||||
<el-input v-model="UploadFileform.lenA"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="CRC32_HEX_A" prop="crcA">
|
||||
<el-input v-model="UploadFileform.crcA"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="上传 A槽更新 文件" prop="urlA">
|
||||
<el-upload
|
||||
ref="uploadRef"
|
||||
ref="uploadARef"
|
||||
accept=".bin"
|
||||
:action="uploadAUrl"
|
||||
name="file"
|
||||
:headers="headerToken()"
|
||||
:limit="1"
|
||||
:show-file-list="true"
|
||||
class="upload-demo"
|
||||
:on-exceed="handleExceedA"
|
||||
:on-success="handleAvatarSuccessA"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
>
|
||||
@@ -220,15 +228,24 @@
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="上传 B槽更新 文件" prop="fileB">
|
||||
|
||||
<el-form-item label="LEN_B" prop="lenB">
|
||||
<el-input v-model="UploadFileform.lenB"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="CRC32_HEX_B" prop="crcB">
|
||||
<el-input v-model="UploadFileform.crcB"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="上传 B槽更新 文件" prop="urlB">
|
||||
<el-upload
|
||||
ref="uploadRef"
|
||||
ref="uploadBRef"
|
||||
accept=".bin"
|
||||
:action="uploadBUrl"
|
||||
name="file"
|
||||
:limit="1"
|
||||
:headers="headerToken()"
|
||||
:show-file-list="true"
|
||||
class="upload-demo"
|
||||
:on-exceed="handleExceedB"
|
||||
:on-success="handleAvatarSuccessB"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
>
|
||||
@@ -301,6 +318,7 @@ import { Upload } from '@element-plus/icons-vue';
|
||||
import { CascaderValue, UploadProps, UploadRawFile } from 'element-plus';
|
||||
import { checkPermi } from '@/utils/permission';
|
||||
import { exportImagesToZip } from '@/utils/exportZip';
|
||||
import { genFileId } from 'element-plus';
|
||||
|
||||
const uploadAUrl = import.meta.env.VITE_APP_BASE_API + '/waterDevice/uploadA';
|
||||
const uploadBUrl = import.meta.env.VITE_APP_BASE_API + '/waterDevice/uploadB';
|
||||
@@ -390,14 +408,20 @@ const rules = {
|
||||
|
||||
// ? 上传固件 ==============================================================================================
|
||||
const UploadFileformRef = ref(null);
|
||||
const uploadRef = ref();
|
||||
const uploadBRef = ref();
|
||||
const uploadARef = ref();
|
||||
const UploadFileform = ref({
|
||||
deviceCodes: [],
|
||||
urlA: '',
|
||||
urlB: ''
|
||||
lenA: '',
|
||||
crcA: '',
|
||||
urlB: '',
|
||||
crcB: '',
|
||||
lenB: ''
|
||||
});
|
||||
const UploadFileformRules = {
|
||||
file: [{ required: true, message: '更新文件不能为空', trigger: 'blur' }]
|
||||
urlA: [{ required: true, message: 'A更新文件不能为空', trigger: 'blur' }],
|
||||
urlB: [{ required: true, message: 'B更新文件不能为空', trigger: 'blur' }]
|
||||
};
|
||||
function headerToken() {
|
||||
const useStore = useUserStore();
|
||||
@@ -431,16 +455,27 @@ const handleAvatarSuccessA: UploadProps['onSuccess'] = (response: any) => {
|
||||
const handleAvatarSuccessB: UploadProps['onSuccess'] = (response: any) => {
|
||||
UploadFileform.value.urlB = response.data.url;
|
||||
};
|
||||
const handleExceedB: UploadProps['onExceed'] = (files) => {
|
||||
uploadBRef.value!.clearFiles();
|
||||
const file = files[0] as UploadRawFile;
|
||||
file.uid = genFileId();
|
||||
uploadBRef.value!.handleStart(file);
|
||||
uploadBRef.value!.submit();
|
||||
};
|
||||
const handleExceedA: UploadProps['onExceed'] = (files) => {
|
||||
uploadARef.value!.clearFiles();
|
||||
const file = files[0] as UploadRawFile;
|
||||
file.uid = genFileId();
|
||||
uploadARef.value!.handleStart(file);
|
||||
uploadARef.value!.submit();
|
||||
};
|
||||
|
||||
// ? 上传固件 ==============================================================================================
|
||||
|
||||
// * 编辑房屋 ==============================================================================================
|
||||
// 编辑房屋
|
||||
const EditHouseformRef = ref(null);
|
||||
const EditHouseformRules = {
|
||||
fileA: [{ required: true, message: 'A文件不能为空', trigger: 'blur' }],
|
||||
fileB: [{ required: true, message: 'B文件不能为空', trigger: 'blur' }]
|
||||
};
|
||||
const EditHouseformRules = {};
|
||||
const EditHouseform = ref({
|
||||
id: '',
|
||||
deviceCode: '',
|
||||
@@ -483,6 +518,17 @@ function handleMarkQrcodeZip() {
|
||||
ElMessage.warning('请选择设备');
|
||||
}
|
||||
}
|
||||
function handleMarkUpload() {
|
||||
if (ids.value.length > 0) {
|
||||
reset();
|
||||
UploadFileform.value.deviceCodes = ids.value.map((item) => item.deviceCode).filter((item) => item);
|
||||
dialog.title = '固件上传';
|
||||
dialog.visible = true;
|
||||
dialogType.value = 'Upload';
|
||||
} else {
|
||||
ElMessage.warning('请选择设备');
|
||||
}
|
||||
}
|
||||
|
||||
function produceQRzip(vals: WaterDeviceVO[]) {
|
||||
const arr = vals.map((item) => {
|
||||
@@ -623,7 +669,14 @@ const submitForm = () => {
|
||||
}
|
||||
});
|
||||
} else if (dialogType.value === 'Upload') {
|
||||
WaterDeviceUpdateBin(UploadFileform.value);
|
||||
UploadFileformRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
await WaterDeviceUpdateBin(UploadFileform.value).finally(() => (buttonLoading.value = false));
|
||||
proxy?.$modal.msgSuccess('操作成功');
|
||||
unSubmit();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
const unSubmit = () => {
|
||||
@@ -653,6 +706,10 @@ const reset = () => {
|
||||
UploadFileform.value.deviceCodes = [];
|
||||
UploadFileform.value.urlA = '';
|
||||
UploadFileform.value.urlB = '';
|
||||
UploadFileform.value.lenA = '';
|
||||
UploadFileform.value.crcA = '';
|
||||
UploadFileform.value.lenB = '';
|
||||
UploadFileform.value.crcB = '';
|
||||
|
||||
// 上传 清空
|
||||
UploadFileformRef.value?.resetFields();
|
||||
|
||||
Reference in New Issue
Block a user