<template>
|
<BasicModal width="1200px" :height=600 v-bind="$attrs" ok-text="保存" @register="register" :title="t('新增调拨单')" @ok="handleSubmit">
|
<a-card :title="t('盘点信息')" :bordered="false">
|
<BasicForm @register="registerT">
|
<template #add="{ field }">
|
<!-- <a-button v-if="field" class="h-8" @click="handleSelectItem">...</a-button>
|
<ItemModal @register="registerItemAdd" @success="handleSuccess" /> -->
|
</template>
|
</BasicForm>
|
</a-card>
|
<a-card :title="t('盘点明细')" :bordered="false" class="!mt-5">
|
<div>
|
<!-- :columns="dtlColumns"
|
:dataSource="data" -->
|
<PageWrapper dense contentFullHeight contentClass="flex">
|
<BasicTable @register="registerTable" @edit-change="onEditChange" @row-click="onRowClick" :dataSource="data">
|
<template #toolbar>
|
<a-button type="primary" @click="handleCreate"> 新增物料 </a-button>
|
<ItemModal @register="registerItemAdd" @success="handleSuccess" />
|
</template>
|
<template #bodyCell="{ column, record }">
|
<template v-if="column.key === 'action'">
|
<TableAction :actions="createActions(record, column)" />
|
</template>
|
</template>
|
</BasicTable>
|
</PageWrapper>
|
</div>
|
</a-card>
|
</BasicModal>
|
</template>
|
<script lang="ts">
|
import { defineComponent, ref, unref,onMounted } from 'vue';
|
import ItemModal from '@/views/tigerprojects/bas/BasItemInfo/ItemModal.vue';
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
//import { getTreeList } from '/@/api/tigerapi/dept';
|
import {
|
BasicTable, TableAction, TableActionType, useTable,
|
BasicColumn,
|
ActionItem,
|
EditRecordRow,
|
} from '/@/components/Table';
|
//import { SumColumns } from './inventory.data';
|
import {
|
AddTransfer,AddTransferDtl,CreateBillCode
|
} from '/@/api/tigerapi/wms/transfer';
|
import { formSchema } from './transfer.data';
|
import { columns_ADD } from './transfer.data';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useLocale } from '/@/locales/useLocale';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
import { buildUUID } from '/@/utils/uuid';
|
import { useUserStore } from '/@/store/modules/user';
|
import { formatToDateTime } from '/@/utils/dateUtil';
|
import { isEmpty } from '/@/utils/is';
|
import { useModal } from '/@/components/Modal';
|
|
const { createMessage } = useMessage();
|
const { getLocale } = useLocale();
|
const { t } = useI18n();
|
export default defineComponent({
|
components: { BasicModal, BasicForm, BasicTable, TableAction, ItemModal },
|
props: {
|
userData: { type: Object },
|
},
|
emit: ['success', 'register'],
|
setup(_, { emit }) {
|
const [registerItemAdd, { openModal: openItemModal }] = useModal();
|
const modelRef = ref({});
|
const tableRef = ref<Nullable<TableActionType>>(null);
|
const canResize = ref(false);
|
const loading = ref(true);
|
const striped = ref(true);
|
const border = ref(true);
|
const [registerT, { resetFields, setFieldsValue, validateFields, getFieldsValue, validate }] =
|
useForm({
|
labelWidth: 120,
|
baseColProps: {
|
span: 24,
|
},
|
schemas: formSchema,
|
showActionButtonGroup: false,
|
});
|
const checkedKeys = ref<Array<string | number>>([]);
|
const [registerTable, { getDataSource,reload }] = useTable({
|
title: t('调拨单明细列表'),
|
//api: getTransferDetailListByPage,
|
columns: columns_ADD,
|
// formConfig: {
|
// labelWidth: 120,
|
// schemas: schemas,
|
// },
|
// useSearchForm: true,
|
canResize:false,
|
showIndexColumn: false,
|
showTableSetting: true,
|
tableSetting: { fullScreen: true },
|
actionColumn: {
|
width: 80,
|
title: '操作',
|
dataIndex: 'action',
|
// slots: { customRender: 'action' },
|
},
|
})
|
const data = ref([] as any[]);
|
|
const [register, { setModalProps, closeModal }] = useModalInner((data) => {
|
setModalProps({ confirmLoading: false });
|
data && onDataReceive(data);
|
});
|
async function onDataReceive(data) {
|
//pagination.value = { pageSize: 50 };
|
console.log('Data Received', data);
|
//COUNT_NO.value = data.data.COUNT_NO;
|
//方式1;
|
setFieldsValue({
|
BILLCODE: await CreateBillCode(),
|
});
|
//Sum_Data.value = await getSumListByPage(data.data.COUNT_NO)
|
// if (Sum_Data.value != null) {
|
// loading.value = false
|
// }
|
// // 方式2
|
//modelRef.value = { field2: data.data, field1: data.info };
|
// const treeData = await getTreeList();
|
// updateSchema([
|
// {
|
// field: 'USER_PWD',
|
// show: !unref(false),
|
// },
|
// {
|
// field: 'ORG_CODE',
|
// componentProps: { treeData },
|
// },
|
// ]);
|
// setProps({
|
// model:{ field2: data.data, field1: data.info }
|
// })
|
}
|
//let ItemCode=ref('')
|
//新增物料
|
function handleCreate(d,u) {
|
var dataSource = getDataSource()
|
dataSource.forEach(element => {
|
element.editable=false;
|
element.onEdit?.(false, true);
|
});
|
|
d.ID = buildUUID();
|
d.CREATE_USER = useUserStore().getUserInfo.userId as string;
|
d.UPDATE_TIME = formatToDateTime(new Date());
|
d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
|
d.AUTH_ORG = useUserStore().getUserInfo.orgCode as string;
|
d.PRQTY=0
|
// d.OUTQTY=0
|
// d.INQTY=0
|
d.ITEM_CODE=''
|
d.editable=true;
|
var _data2: any[] = dataSource;
|
if (!isEmpty(data.value)) {
|
_data2 = data.value.map((item) => {
|
return item;
|
});
|
d.BILLLINE =
|
data.value.reduce((maxLength, item) => {
|
return Math.max(maxLength, item.BILLLINE);
|
}, 0) + 1;
|
} else {
|
d.BILLLINE = 1;
|
}
|
openItemModal(true, {
|
data: 'content',
|
info: 'Info',
|
});
|
//d.ITEM_CODE=ItemCode.value
|
_data2.push(d);
|
data.value = _data2;
|
}
|
//提交保存
|
async function handleSubmit() {
|
try {
|
//保存调拨单
|
var dataSource = getDataSource()
|
var formData=getFieldsValue();
|
var res=await AddTransfer(formData);
|
if(res.IsSuccessed){
|
var resDtl= await AddTransferDtl(dataSource,formData)
|
if(resDtl.IsSuccessed){
|
createMessage.info('保存成功')
|
//重置表单
|
resetFields();
|
data.value=[];
|
closeModal();
|
emit('success', {
|
isUpdate: unref(false),
|
//values: { values, id: 0 },
|
});
|
}else{
|
createMessage.error('调拨单明细保存失败:'+resDtl.Message)
|
}
|
}else{
|
createMessage.error('保存失败:'+res.Message);
|
}
|
|
} finally {
|
setModalProps({ confirmLoading: false });
|
}
|
}
|
//let currentEditKeyRef = ref('');
|
function onEditChange({ column, value, record }) {
|
// 本例
|
if (column.dataIndex === 'id') {
|
record.editValueRefs.name4.value = `${value}`;
|
}
|
console.log(column, value, record);
|
}
|
//点击选择编辑行
|
function onRowClick(record, index, event) {
|
var _data2: any[] = [];
|
// var dataSource = getDataSource()
|
// dataSource.forEach(element => {
|
// element.editable=false;
|
// element.onEdit?.(false, true);
|
// });
|
var dataSource = getDataSource();
|
dataSource.forEach(element => {
|
if(element.ID==record.ID){
|
element.editable=true;
|
element.onEdit?.(true);
|
}else{
|
element.editable=false;
|
element.onEdit?.(false, true);
|
}
|
_data2.push(element)
|
});
|
|
//var _data2: any[] = dataSource;
|
data.value=_data2;
|
}
|
//删除
|
function createActions(record: EditRecordRow, column: BasicColumn): ActionItem[] {
|
// if (!record.editable) {
|
// return [
|
// {
|
// label: '编辑',
|
// //disabled: currentEditKeyRef.value ? currentEditKeyRef.value !== record.key : false,
|
// onClick: handleEdit.bind(null, record),
|
// },
|
// ];
|
// }
|
//handleEdit(record);
|
return [
|
{
|
label: '删除',
|
popConfirm: {
|
title: '是否删除',
|
confirm: handleCancel.bind(null, record, column),
|
},
|
},
|
];
|
}
|
function handleEdit(record: EditRecordRow) {
|
record.onEdit?.(true);
|
}
|
//删除
|
function handleCancel(key: any) {
|
let n =1;
|
//data.value = data.value.filter(item => item.key !== key.key);
|
var _data2: any[] = [];
|
var dataSource = getDataSource();
|
dataSource.forEach(element => {
|
if(element.ID!=key.ID){
|
element.editable=false;
|
element.onEdit?.(false, true);
|
element.BILLLINE=n++;
|
_data2.push(element)
|
}
|
});
|
|
//var _data2: any[] = dataSource;
|
data.value=_data2;
|
}
|
//选择物料
|
function handleSuccess(d, u) {
|
var dataSource = getDataSource()
|
var _data2: any[] = dataSource;
|
_data2[_data2.length-1].ITEM_CODE=d.values.code.trim();
|
_data2[_data2.length-1].ITEM_NAME=d.values.name.trim();
|
data.value=_data2;
|
// setFieldsValue({
|
// ITEM_CODE_LIST: d.values.values,
|
// });
|
}
|
return {
|
register,
|
registerT,
|
//schemas,
|
//registerForm,
|
model: modelRef,
|
handleSubmit,
|
onRowClick,
|
registerTable,
|
//setFieldsValue,
|
createActions,
|
//validateFields,
|
tableRef,
|
//pagination,
|
canResize,
|
loading,
|
striped,
|
border,
|
t,
|
data,
|
onEditChange,
|
handleCreate,
|
registerItemAdd,
|
handleSuccess
|
};
|
},
|
});
|
</script>
|