|
|
@@ -15,35 +15,24 @@
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<a-button type="link" @click="editRowEvent(row)">编辑</a-button>
|
|
|
+ <a-button type="link" danger @click="removeRowEvent(row)">删除</a-button>
|
|
|
</template>
|
|
|
</template>
|
|
|
</bs-table>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="jsx">
|
|
|
-import { ref, nextTick, onMounted } from 'vue';
|
|
|
+import { ref, nextTick, watch } from 'vue';
|
|
|
import dayjs from 'dayjs';
|
|
|
-import { message } from 'ant-design-vue';
|
|
|
+import { message, Modal } from 'ant-design-vue';
|
|
|
import BsTable, { useBsTable } from '/@/components/BsUi/Table/index.js';
|
|
|
import { DISPLAY_STATE } from '/@/components/BsUi/constant.js';
|
|
|
-import { getProjectDetail } from '/@/api/personnel-entry';
|
|
|
import { isEmpty } from 'lodash';
|
|
|
const formData = defineModel('value')
|
|
|
-const props = defineProps(['employeeCode', 'parentFormRef'])
|
|
|
+const props = defineProps(['parentFormRef'])
|
|
|
const emit = defineEmits(['change'])
|
|
|
-onMounted(async () => {
|
|
|
- /* 编辑 */
|
|
|
- if (!isEmpty(props.employeeCode)) {
|
|
|
- const params = {
|
|
|
- pageSize: 100,
|
|
|
- pageNum: 1,
|
|
|
- employeeCode: props.employeeCode
|
|
|
- }
|
|
|
- const res = await getProjectDetail(params)
|
|
|
- emit('change',res.data.list)
|
|
|
- formData.value = res.data.list
|
|
|
- setValue('gridOptions.data', res.data.list)
|
|
|
- }
|
|
|
+watch(() => formData.value, (val) => {
|
|
|
+ setValue('gridOptions.data', val)
|
|
|
})
|
|
|
|
|
|
const {
|
|
|
@@ -122,7 +111,7 @@ const {
|
|
|
editRender: { name: 'VxeDatePicker', props: { type: 'date' } }
|
|
|
},
|
|
|
{
|
|
|
- field: 'createTime',
|
|
|
+ field: 'projectCreateTime',
|
|
|
title: '创建时间',
|
|
|
// editRender: { name: 'VxeDatePicker', props: { type: 'date' } }
|
|
|
},
|
|
|
@@ -158,11 +147,12 @@ const {
|
|
|
disabled: false,
|
|
|
onClick(event) {
|
|
|
const newRow = {
|
|
|
+ index: Date.now(),
|
|
|
projectName: '',
|
|
|
- position: '',
|
|
|
- startDate: '',
|
|
|
- endDate: '',
|
|
|
- createTime: dayjs(new Date()).format('YYYY-MM-DD HH:mm'),
|
|
|
+ projectAppointment: '',
|
|
|
+ projectStartTime: '',
|
|
|
+ projectEndTime: '',
|
|
|
+ projectCreateTime: dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
};
|
|
|
|
|
|
nextTick(() => {
|
|
|
@@ -196,12 +186,15 @@ async function saveRowEvent(row) {
|
|
|
// console.log(await $grid.getEditRecord(row));
|
|
|
|
|
|
const { row: newRow, rowIndex, isEdit } = await $grid.getEditRecord(row);
|
|
|
+
|
|
|
if (!isEdit) {
|
|
|
+ /* 新增 */
|
|
|
formData.value[rowIndex] = newRow
|
|
|
} else {
|
|
|
+ /* 编辑 */
|
|
|
formData.value[rowIndex] = Object.assign(formData.value[rowIndex], newRow)
|
|
|
}
|
|
|
-
|
|
|
+ $grid.reloadData(formData.value);
|
|
|
if (props.parentFormRef) {
|
|
|
props.parentFormRef.ValidatorSingalField('chargeProjectDTOList')
|
|
|
}
|
|
|
@@ -218,6 +211,31 @@ const editRowEvent = (row) => {
|
|
|
$grid.setEditRow(row)
|
|
|
}
|
|
|
}
|
|
|
+async function removeRowEvent(row) {
|
|
|
+ const $grid = getGridRef()
|
|
|
+ if ($grid) {
|
|
|
+ // console.log(row.id);
|
|
|
+
|
|
|
+ const removeList = await formData.value.filter(item => {
|
|
|
+ if (row.id) {
|
|
|
+ return item.id !== row.id
|
|
|
+ } else if (row.index) {
|
|
|
+ return item.index !== row.index
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // console.log(removeList);
|
|
|
+
|
|
|
+ Modal.confirm({
|
|
|
+ title: '提示',
|
|
|
+ content: '确定要删除这条数据吗?',
|
|
|
+ onOk: () => {
|
|
|
+ formData.value = removeList
|
|
|
+ $grid.reloadData(removeList);
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
const cancelRowEvent = () => {
|
|
|
const $grid = getGridRef()
|
|
|
if ($grid) {
|