creat:硬件列表

This commit is contained in:
dzc committed 2025-01-05 15:49:36 +08:00
1 parent a0c7e31564
commit c07351caea
6 files changed
+74 -35

No files matched your search

+8
View File
@@ -1,5 +1,13 @@
import request from "/@/utils/request"
export function pageJoin(query?: Object) {
return request({
url: '/hard/hard-invoice/page-join',
method: 'get',
params: query
})
}
export function fetchList(query?: Object) {
return request({
url: '/hard/hard-invoice/page',
+8
View File
@@ -1,5 +1,13 @@
import request from "/@/utils/request"
export function pageJoin(query?: Object) {
return request({
url: '/hard/hard-manager/page-join',
method: 'get',
params: query
})
}
export function fetchList(query?: Object) {
return request({
url: '/hard/hard-manager/page',
Whitespace-only changes.
+13 -15
View File
@@ -1,28 +1,23 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible" :close-on-click-modal="false" draggable>
<el-dialog :title="form.id ? '编辑' : '新增'" width="30%" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="12" class="mb20">
<el-form-item label="商户id" prop="merchantId">
<el-input v-model="form.merchantId" placeholder="请输入商户id" />
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="商家部门id" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入商家部门id" />
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="设备名" prop="name">
<el-input v-model="form.name" placeholder="请输入设备名" />
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="商户" prop="merchantId">
<select-mch v-model="form.merchantId" placeholder="请选择商户" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="设备类型" prop="type">
<el-input v-model="form.type" placeholder="请输入设备类型" />
<dict-select v-model="form.type" dict-code="hard_type" clearable />
</el-form-item>
</el-col>
@@ -61,6 +56,9 @@ const form = reactive({
// 定义校验规则
const dataRules = ref({
name: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
merchantId: [{ required: true, message: '商户不能为空', trigger: 'change' }],
type: [{ required: true, message: '设备类型不能为空', trigger: 'change' }],
})
// 打开弹窗
+45 -20
View File
@@ -20,24 +20,38 @@
@sort-change="sortChangeHandle">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="40" />
<el-table-column prop="merchantId" label="商户id" show-overflow-tooltip />
<el-table-column prop="deptId" label="商家部门id" show-overflow-tooltip />
<el-table-column prop="name" label="设备名" show-overflow-tooltip />
<el-table-column prop="type" label="设备类型" show-overflow-tooltip />
<el-table-column prop="mqClientId" label="mq连接id" show-overflow-tooltip />
<el-table-column prop="uniqueCode" label="设备唯一编号" show-overflow-tooltip />
<el-table-column prop="mainTopic" label="当前设备的topic" show-overflow-tooltip />
<el-table-column prop="mqSocketAddress" label="mq地址" show-overflow-tooltip />
<el-table-column prop="mqSocketPort" label="mq端口" show-overflow-tooltip />
<el-table-column prop="mqUsername" label="mq用户名" show-overflow-tooltip />
<el-table-column prop="mqPassword" label="mq密码" show-overflow-tooltip />
<el-table-column prop="isTakeFood" label="是否为当前商户的取餐机器" show-overflow-tooltip />
<el-table-column label="操作" width="150">
<template #default="scope">
<el-table-column prop="name" label="设备名" />
<el-table-column prop="type" label="设备类型">
<template #default="{ row }">
<dict-tag :options="hard_type" :value="row.type" />
</template>
</el-table-column>
<el-table-column prop="merchantName" label="商户" />
<el-table-column prop="deptName" label="部门" />
<el-table-column prop="uniqueCode" label="设备唯一编号" />
<el-table-column prop="mainTopic" width="200" label="topic" />
<el-table-column prop="isTakeFood" width="200" label="是否为当前商户的取餐机器">
<template #default="{ row }">
<el-switch v-if="row.type == 1" :loading="switchTakeFoodLoading" active-text="是" inactive-text="否"
active-value="1" inactive-value="0" v-model="row.isTakeFood" @change="changeTakeFood($event, row)" />
<div v-else>只有食堂需要设置</div>
</template>
</el-table-column>
<el-table-column prop="createTime" width="200" label="创建时间" />
<el-table-column label="操作" fixed="right" width="400">
<template #default="{ row }">
<el-button icon="edit-pen" text type="primary" v-auth="'hard_hardManager_edit'"
@click="formDialogRef.openDialog(scope.row.id)">编辑</el-button>
@click="formDialogRef.openDialog(row.id)">编辑</el-button>
<el-button link type="primary" @click="formDialogRef.openDialog(row.id)"
v-hasPermi="['hardware:manager:update']">
mq设置
</el-button>
<el-button link type="primary" @click="formDialogRef.openDialog(row.id)"
v-hasPermi="['hardware:manager:update']">
人脸sdk设置
</el-button>
<el-button icon="delete" text type="primary" v-auth="'hard_hardManager_del'"
@click="handleDelete([scope.row.id])">删除</el-button>
@click="handleDelete([row.id])">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -52,16 +66,17 @@
<script setup lang="ts" name="systemHardManager">
import { BasicTableProps, useTable } from "/@/hooks/table";
import { fetchList, delObjs } from '/@/api/hard/hard-manager'
import * as hardManageApi from '/@/api/hard/hard-manager'
import { useMessage, useMessageBox } from "/@/hooks/message";
import { useDict } from '/@/hooks/dict';
// 引入组件
const FormDialog = defineAsyncComponent(() => import('./form.vue'));
// 定义查询字典
const { hard_type } = useDict('hard_type')
// 定义变量内容
const formDialogRef = ref()
const switchTakeFoodLoading = ref(false)
// 搜索变量
const queryRef = ref()
const showSearch = ref(true)
@@ -71,7 +86,7 @@ const multiple = ref(true)
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: {},
pageList: fetchList
pageList: hardManageApi.pageJoin
})
// table hook
@@ -93,6 +108,16 @@ const resetQuery = () => {
getDataList()
}
const changeTakeFood = async (e: any, row: any) => {
switchTakeFoodLoading.value = true
try {
await hardManageApi.putObj({ id: row.id, isTakeFood: e })
getDataList()
} finally {
switchTakeFoodLoading.value = false
}
}
// 导出excel
const exportExcel = () => {
downBlobFile('/hard/hardManager/export', Object.assign(state.queryForm, { ids: selectObjs }), 'hardManager.xlsx')
@@ -113,7 +138,7 @@ const handleDelete = async (ids: string[]) => {
}
try {
await delObjs(ids);
await hardManageApi.delObjs(ids);
getDataList();
useMessage().success('删除成功');
} catch (err: any) {
Whitespace-only changes.