141 lines
3.6 KiB
Vue
141 lines
3.6 KiB
Vue
<!-- 搜索表单 -->
|
|
<template>
|
|
<a-space>
|
|
<a-button
|
|
type="primary"
|
|
class="ele-btn-icon"
|
|
v-permission="'apps:equipment:save'"
|
|
@click="add"
|
|
>
|
|
<template #icon>
|
|
<PlusOutlined />
|
|
</template>
|
|
<span>新建</span>
|
|
</a-button>
|
|
<a-button
|
|
danger
|
|
type="primary"
|
|
class="ele-btn-icon"
|
|
:v-role="`dev`"
|
|
@click="removeBatch"
|
|
v-if="props.selection.length > 0"
|
|
>
|
|
<template #icon>
|
|
<DeleteOutlined />
|
|
</template>
|
|
<span>批量删除</span>
|
|
</a-button>
|
|
<!-- <a-radio-group v-model:value="listType" @change="handleTabs">-->
|
|
<!-- <a-radio-button value="all">全部</a-radio-button>-->
|
|
<!-- <a-radio-button value="onSale">出售中</a-radio-button>-->
|
|
<!-- <a-radio-button value="offSale">已下架</a-radio-button>-->
|
|
<!-- <a-radio-button value="soldOut">已售罄</a-radio-button>-->
|
|
<!-- </a-radio-group>-->
|
|
<a-input-search
|
|
allow-clear
|
|
v-model:value="searchText"
|
|
placeholder="请输入搜索关键词"
|
|
@search="search"
|
|
@pressEnter="search"
|
|
>
|
|
<template #addonBefore>
|
|
<a-select v-model:value="type" style="width: 120px; margin: -5px -12px">
|
|
<a-select-option value="equipmentCode">设备编号</a-select-option>
|
|
<a-select-option value="equipmentName">设备名称</a-select-option>
|
|
</a-select>
|
|
</template>
|
|
</a-input-search>
|
|
<!-- <CustomerSelect-->
|
|
<!-- v-model:value="where.equipmentId"-->
|
|
<!-- :placeholder="`按设备筛选`"-->
|
|
<!-- @select="onSelect"-->
|
|
<!-- @clear="onClear"-->
|
|
<!-- />-->
|
|
</a-space>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';
|
|
import useSearch from '@/utils/use-search';
|
|
import type { EquipmentParam } from '@/api/apps/equipment/model';
|
|
// import CustomerSelect from '@/components/CustomerSelect/index.vue';
|
|
import { ref, watch } from 'vue';
|
|
|
|
const emit = defineEmits<{
|
|
(e: 'search', where?: EquipmentParam): void;
|
|
(e: 'add'): void;
|
|
(e: 'remove'): void;
|
|
}>();
|
|
|
|
const props = defineProps<{
|
|
// 勾选的项目
|
|
selection?: [];
|
|
}>();
|
|
|
|
// 表单数据
|
|
const { where, resetFields } = useSearch<EquipmentParam>({
|
|
equipmentId: undefined,
|
|
equipmentName: '',
|
|
equipmentCode: ''
|
|
});
|
|
|
|
// 下来选项
|
|
const type = ref('equipmentCode');
|
|
// tabType
|
|
const listType = ref('all');
|
|
// 搜索内容
|
|
const searchText = ref('');
|
|
|
|
/* 搜索 */
|
|
const search = () => {
|
|
if (type.value == 'equipmentName') {
|
|
where.equipmentName = searchText.value;
|
|
where.equipmentCode = undefined;
|
|
}
|
|
if (type.value == 'equipmentCode') {
|
|
where.equipmentCode = searchText.value;
|
|
where.equipmentName = undefined;
|
|
}
|
|
emit('search', where);
|
|
};
|
|
|
|
// const handleTabs = (e) => {
|
|
// listType.value = e.target.value;
|
|
// if (listType.value == 'all') {
|
|
// resetFields();
|
|
// }
|
|
// if (listType.value == 'onSale') {
|
|
// where.status = 0;
|
|
// }
|
|
// if (listType.value == 'offSale') {
|
|
// where.status = 1;
|
|
// }
|
|
// if (listType.value == 'soldOut') {
|
|
// where.stockTotal = 0;
|
|
// }
|
|
// emit('search', where);
|
|
// };
|
|
|
|
// 新增
|
|
const add = () => {
|
|
emit('add');
|
|
};
|
|
|
|
// 批量删除
|
|
const removeBatch = () => {
|
|
emit('remove');
|
|
};
|
|
|
|
/* 重置 */
|
|
// const reset = () => {
|
|
// resetFields();
|
|
// search();
|
|
// };
|
|
|
|
// 监听字典id变化
|
|
watch(
|
|
() => props.selection,
|
|
() => {}
|
|
);
|
|
</script>
|