Commit 44978a3b91a3e3a4eb40311e2f072f12ffa1d8d8

Authored by gesilong
1 parent 1cfc0eb0

commit: 备件管理代码提交

  1 +export default {
  2 + listText: '备件台账列表',
  3 + nameText: '备件名称',
  4 + nameCode: '备件编号',
  5 + specifications: '规格型号',
  6 + typeText: '备件类型',
  7 + unitText: '单位',
  8 + factoryText: '生产厂商',
  9 + operatorText: '操作人',
  10 + operaDate: '操作时间',
  11 + createCategoryText: '创建备件台账',
  12 + editOrderText: '编辑备件台账',
  13 +}
... ...
  1 +export default {
  2 + listText: '备件类型列表',
  3 + nameText: '备件名称',
  4 + nameCode: '备件编号',
  5 + specifications: '规格型号',
  6 + typeText: '备件类型',
  7 + unitText: '单位',
  8 + factoryText: '生产厂商',
  9 + operatorText: '操作人',
  10 + operaDate: '操作时间',
  11 + createCategoryText: '创建备件台账',
  12 + editOrderText: '编辑备件台账',
  13 +}
... ...
  1 +<template>
  2 + <div>
  3 + <BasicModal
  4 + v-bind="$attrs"
  5 + width="30rem"
  6 + :title="getTitle"
  7 + @register="register"
  8 + @cancel="handleCancel"
  9 + @ok="handleOk"
  10 + destroyOnClose
  11 + >
  12 +
  13 + </BasicModal>
  14 + </div>
  15 +</template>
  16 +<script setup lang="ts">
  17 +import {BasicModal} from "/@/components/Modal";
  18 +import {computed, ref, unref} from "vue";
  19 +import {useI18n} from "/@/hooks/web/useI18n";
  20 +const { t } = useI18n();
  21 +const isUpdate = ref<Boolean>(false);
  22 +
  23 +
  24 +const getTitle = computed(() =>
  25 + !unref(isUpdate) ? t('spare.equip.createCategoryText') : t('spare.equip.editOrderText')
  26 +);
  27 +
  28 +const emit = defineEmits(['handleReload', 'register']);
  29 +
  30 +
  31 +
  32 +</script>
... ...
  1 +import EquipModal from './EquipModal.vue';
  2 +
  3 +export { EquipModal };
... ...
  1 +import {FormSchema} from "/@/components/Form";
  2 +import {useI18n} from "/@/hooks/web/useI18n";
  3 +import {BasicColumn} from "/@/components/Table";
  4 +const { t } = useI18n();
  5 +
  6 +export const columns: BasicColumn[] = [
  7 + {
  8 + title: t('spare.equip.nameCode'),
  9 + dataIndex: 'code',
  10 + },
  11 + {
  12 + title: t('spare.equip.nameText'),
  13 + dataIndex: 'name',
  14 + },
  15 + {
  16 + title: t('spare.equip.specifications'),
  17 + dataIndex: 'name',
  18 + },
  19 + {
  20 + title: t('spare.equip.typeText'),
  21 + dataIndex: 'type',
  22 + slots: { customRender: 'type' },
  23 + },
  24 + {
  25 + title: t('spare.equip.unitText'),
  26 + dataIndex: 'unit',
  27 + slots: { customRender: 'unit' },
  28 + },
  29 + {
  30 + title: t('spare.equip.factoryText'),
  31 + dataIndex: 'factory',
  32 + },
  33 + {
  34 + title: t('spare.equip.operatorText'),
  35 + dataIndex: 'operator',
  36 + },
  37 + {
  38 + title: t('spare.equip.operaDate'),
  39 + dataIndex: 'operaDate',
  40 + },
  41 +];
  42 +
  43 +export const searchFormSchema: FormSchema[] = [
  44 + {
  45 + field: 'name',
  46 + label: t('spare.equip.nameText'),
  47 + component: 'Input',
  48 + colProps: { span: 6 },
  49 + },
  50 + {
  51 + field: 'code',
  52 + label: t('spare.equip.nameCode'),
  53 + component: 'Input',
  54 + colProps: { span: 6 },
  55 + },
  56 + {
  57 + field: 'type',
  58 + label: t('spare.equip.typeText'),
  59 + component: 'Select',
  60 + colProps: { span: 6 },
  61 + },
  62 + {
  63 + field: 'specifications',
  64 + label: t('spare.equip.specifications'),
  65 + component: 'Input',
  66 + colProps: { span: 6 },
  67 + },
  68 + {
  69 + field: 'factory',
  70 + label: t('spare.equip.factoryText'),
  71 + component: 'Input',
  72 + colProps: { span: 6 },
  73 + }
  74 +];
... ...
  1 +<template>
  2 + <div >
  3 + <BasicTable style="flex: auto" @register="registerTable">
  4 + <template #toolbar>
  5 + <Authority value="api:yt:equip:post">
  6 + <Button type="primary" @click="handleCreate">
  7 + {{ t('spare.equip.createCategoryText') }}
  8 + </Button>
  9 + </Authority>
  10 + </template>
  11 + <template #action="{ record }">
  12 + <TableAction
  13 + :actions="[
  14 + {
  15 + label: t('common.detailText'),
  16 + icon: 'ant-design:eye-outlined',
  17 + auth: 'api:yt:equip:get',
  18 + onClick: handleDetail.bind(null, record),
  19 + },
  20 + {
  21 + label: t('common.editText'),
  22 + auth: 'api:yt:equip:update',
  23 + icon: 'clarity:note-edit-line',
  24 + onClick: handleEdit.bind(null, record),
  25 + },
  26 + {
  27 + label: t('common.delText'),
  28 + auth: 'api:yt:equip:delete',
  29 + icon: 'ant-design:delete-outlined',
  30 + color: 'error',
  31 + popConfirm: {
  32 + title: t('common.deleteConfirmText'),
  33 + confirm: handleDelete.bind(null, record),
  34 + },
  35 + },
  36 + ]"
  37 + />
  38 + </template>
  39 + </BasicTable>
  40 + <EquipModal @register="registerModal" />
  41 + </div>
  42 +</template>
  43 +<script setup lang="ts">
  44 +import {BasicTable, TableAction, useTable} from "/@/components/Table";
  45 +import {getPlanList} from "/@/api/equipment/chenkPlan";
  46 +import {columns, searchFormSchema} from "/@/views/spare/equip/index";
  47 +import {useI18n} from "/@/hooks/web/useI18n";
  48 +import {Button} from "ant-design-vue";
  49 +import {Authority} from "/@/components/Authority";
  50 +import {useModal} from "/@/components/Modal";
  51 +import { EquipModal } from './components/index'
  52 +const [registerModal, { openModal }] = useModal();
  53 +
  54 +const { t } = useI18n();
  55 +const [
  56 + registerTable,
  57 + { reload, setLoading, setSelectedRowKeys },
  58 +] = useTable({
  59 + title: t('spare.equip.listText'),
  60 + api: getPlanList,
  61 + columns,
  62 + formConfig: {
  63 + labelWidth: 100,
  64 + schemas: searchFormSchema,
  65 + },
  66 + immediate: true,
  67 + useSearchForm: true,
  68 + showTableSetting: true,
  69 + bordered: true,
  70 + showIndexColumn: false,
  71 + clickToRowSelect: false,
  72 + rowKey: 'id',
  73 + actionColumn: {
  74 + width: 230,
  75 + title: t('common.actionText'),
  76 + slots: { customRender: 'action' },
  77 + fixed: 'right',
  78 + },
  79 +});
  80 +
  81 +// 新增
  82 +const handleCreate = () => {
  83 + openModal(true, {
  84 + isUpdate: false,
  85 + });
  86 +};
  87 +
  88 +</script>
... ...
  1 +import {FormSchema} from "/@/components/Form";
  2 +import {useI18n} from "/@/hooks/web/useI18n";
  3 +import {BasicColumn} from "/@/components/Table";
  4 +const { t } = useI18n();
  5 +
  6 +export const columns: BasicColumn[] = [
  7 + {
  8 + title: t('spare.types.nameCode'),
  9 + dataIndex: 'code',
  10 + },
  11 + {
  12 + title: t('spare.types.nameText'),
  13 + dataIndex: 'name',
  14 + },
  15 + {
  16 + title: t('spare.types.specifications'),
  17 + dataIndex: 'name',
  18 + },
  19 + {
  20 + title: t('spare.types.typeText'),
  21 + dataIndex: 'type',
  22 + slots: { customRender: 'type' },
  23 + },
  24 + {
  25 + title: t('spare.types.unitText'),
  26 + dataIndex: 'unit',
  27 + slots: { customRender: 'unit' },
  28 + },
  29 + {
  30 + title: t('spare.types.factoryText'),
  31 + dataIndex: 'factory',
  32 + },
  33 + {
  34 + title: t('spare.types.operatorText'),
  35 + dataIndex: 'operator',
  36 + },
  37 + {
  38 + title: t('spare.types.operaDate'),
  39 + dataIndex: 'operaDate',
  40 + },
  41 +];
  42 +
  43 +export const searchFormSchema: FormSchema[] = [
  44 + {
  45 + field: 'name',
  46 + label: t('spare.types.nameText'),
  47 + component: 'Input',
  48 + colProps: { span: 6 },
  49 + },
  50 + {
  51 + field: 'code',
  52 + label: t('spare.types.nameCode'),
  53 + component: 'Input',
  54 + colProps: { span: 6 },
  55 + },
  56 + {
  57 + field: 'type',
  58 + label: t('spare.types.typeText'),
  59 + component: 'Select',
  60 + colProps: { span: 6 },
  61 + },
  62 + {
  63 + field: 'specifications',
  64 + label: t('spare.types.specifications'),
  65 + component: 'Input',
  66 + colProps: { span: 6 },
  67 + },
  68 + {
  69 + field: 'factory',
  70 + label: t('spare.types.factoryText'),
  71 + component: 'Input',
  72 + colProps: { span: 6 },
  73 + }
  74 +];
... ...
  1 +<template>
  2 + <div>
  3 + <BasicTable style="flex: auto" @register="registerTable">
  4 + <template #toolbar>
  5 + <Authority value="api:yt:types:post">
  6 + <Button type="primary" @click="handleCreate">
  7 + {{ t('spare.types.createCategoryText') }}
  8 + </Button>
  9 + </Authority>
  10 + </template>
  11 + <template #action="{ record }">
  12 + <TableAction
  13 + :actions="[
  14 + {
  15 + label: t('common.detailText'),
  16 + icon: 'ant-design:eye-outlined',
  17 + auth: 'api:yt:types:get',
  18 + onClick: handleDetail.bind(null, record),
  19 + },
  20 + {
  21 + label: t('common.editText'),
  22 + auth: 'api:yt:types:update',
  23 + icon: 'clarity:note-edit-line',
  24 + onClick: handleEdit.bind(null, record),
  25 + },
  26 + {
  27 + label: t('common.delText'),
  28 + auth: 'api:yt:types:delete',
  29 + icon: 'ant-design:delete-outlined',
  30 + color: 'error',
  31 + popConfirm: {
  32 + title: t('common.deleteConfirmText'),
  33 + confirm: handleDelete.bind(null, record),
  34 + },
  35 + },
  36 + ]"
  37 + />
  38 + </template>
  39 + </BasicTable>
  40 + </div>
  41 +</template>
  42 +<script setup lang="ts">
  43 +import {BasicTable, TableAction, useTable} from "/@/components/Table";
  44 +import {getPlanList} from "/@/api/equipment/chenkPlan";
  45 +import {columns, searchFormSchema} from "./index";
  46 +import {useI18n} from "/@/hooks/web/useI18n";
  47 +import {Button} from "ant-design-vue";
  48 +import {Authority} from "/@/components/Authority";
  49 +const { t } = useI18n();
  50 +
  51 +const [
  52 + registerTable,
  53 + { reload, setLoading, setSelectedRowKeys },
  54 +] = useTable({
  55 + title: t('spare.types.listText'),
  56 + api: getPlanList,
  57 + columns,
  58 + formConfig: {
  59 + labelWidth: 100,
  60 + schemas: searchFormSchema,
  61 + },
  62 + immediate: true,
  63 + useSearchForm: true,
  64 + showTableSetting: true,
  65 + bordered: true,
  66 + showIndexColumn: false,
  67 + clickToRowSelect: false,
  68 + rowKey: 'id',
  69 + actionColumn: {
  70 + width: 230,
  71 + title: t('common.actionText'),
  72 + slots: { customRender: 'action' },
  73 + fixed: 'right',
  74 + },
  75 +});
  76 +</script>
... ...