|
|
@@ -62,6 +62,9 @@
|
|
|
<el-button type="warning" plain icon="Download" @click="handleExport"
|
|
|
v-hasPermi="['hnyz:equipment:export']">导出</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
|
|
|
+ </el-col>
|
|
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
<!-- 表单列表 -->
|
|
|
@@ -168,10 +171,34 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <!-- 设备导入对话框 -->
|
|
|
+ <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
|
|
|
+ <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
|
|
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
|
+ <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
|
+ <template #tip>
|
|
|
+ <div class="el-upload__tip text-center">
|
|
|
+ <div class="el-upload__tip">
|
|
|
+ <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的设备数据
|
|
|
+ </div>
|
|
|
+ <span>仅允许导入xls、xlsx格式文件。</span>
|
|
|
+ <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-upload>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitFileForm">确 定</el-button>
|
|
|
+ <el-button @click="upload.open = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup name="Equipment">
|
|
|
+import { getToken } from "@/utils/auth";
|
|
|
import { changeStatus, listEquipment, getEquipment, delEquipment, addEquipment, updateEquipment } from "@/api/hnyz/equipment";
|
|
|
import { getFlowList } from "@/api/hnyz/flow";
|
|
|
import { getPlcList } from "@/api/hnyz/plcInfo";
|
|
|
@@ -180,6 +207,53 @@ import { getPageList } from '@/api/hnyz/pageControl'
|
|
|
import { onMounted } from "vue";
|
|
|
import { useRouter } from 'vue-router'
|
|
|
|
|
|
+/*** 设备导入参数 */
|
|
|
+const upload = reactive({
|
|
|
+ // 是否显示弹出层(设备导入)
|
|
|
+ open: false,
|
|
|
+ // 弹出层标题(设备导入)
|
|
|
+ title: "",
|
|
|
+ // 是否禁用上传
|
|
|
+ isUploading: false,
|
|
|
+ // 是否更新已经存在的用户数据
|
|
|
+ updateSupport: 0,
|
|
|
+ // 设置上传的请求头部
|
|
|
+ headers: { Authorization: "Bearer " + getToken() },
|
|
|
+ // 上传的地址
|
|
|
+ url: import.meta.env.VITE_APP_BASE_API + "/hnyz/equipment/importData"
|
|
|
+});
|
|
|
+
|
|
|
+/** 导入按钮操作 */
|
|
|
+function handleImport() {
|
|
|
+ upload.title = "设备导入";
|
|
|
+ upload.open = true;
|
|
|
+};
|
|
|
+
|
|
|
+/** 下载模板操作 */
|
|
|
+function importTemplate() {
|
|
|
+ proxy.download("/hnyz/equipment/importTemplate", {
|
|
|
+ }, `equipment_template_${new Date().getTime()}.xlsx`);
|
|
|
+};
|
|
|
+
|
|
|
+/**文件上传中处理 */
|
|
|
+const handleFileUploadProgress = (event, file, fileList) => {
|
|
|
+ upload.isUploading = true;
|
|
|
+};
|
|
|
+
|
|
|
+/** 文件上传成功处理 */
|
|
|
+const handleFileSuccess = (response, file, fileList) => {
|
|
|
+ upload.open = false;
|
|
|
+ upload.isUploading = false;
|
|
|
+ proxy.$refs["uploadRef"].handleRemove(file);
|
|
|
+ proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
|
|
+ getList();
|
|
|
+};
|
|
|
+
|
|
|
+/** 提交上传文件 */
|
|
|
+function submitFileForm() {
|
|
|
+ proxy.$refs["uploadRef"].submit();
|
|
|
+};
|
|
|
+
|
|
|
const router = useRouter()
|
|
|
onMounted(() => {
|
|
|
getOptions();
|