zhengyiming
2 天以前 baa76cb2bf0496ea34b4eee1a04a13cc1ca680cb
src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -6,13 +6,7 @@
    </ProDialogTableWrapper>
    <template #footer>
      <span class="dialog-footer">
        <el-button v-if="form.type === 'detail'" @click="emit('onCancel')" type="primary"
          >确定</el-button
        >
        <template v-if="form.type === 'check'">
          <el-button @click="emit('check', false)">验收未通过</el-button>
          <el-button type="primary" @click="emit('check', true)">验收通过</el-button>
        </template>
        <el-button @click="emit('onCancel')" type="primary">确定</el-button>
      </span>
    </template>
  </ProDialog>
@@ -27,6 +21,10 @@
  defineOperationBtns,
  useTable,
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import { setOSSLink } from '@/utils';
import { downloadWithZip, Message } from '@bole-core/core';
import { useGlobalEventContext } from '@/hooks';
defineOptions({
  name: 'EnterpriseConsumptionDetailDialog',
@@ -34,31 +32,74 @@
type Form = {
  id: string;
  type: string;
  isDetail: boolean;
};
const visible = defineModel({ type: Boolean });
const form = defineModel<Form>('form');
const title = computed(() => (form.value.type === 'check' ? '验收' : '详情'));
const title = computed(() => (form.value.isDetail ? '详情' : '验收'));
const emit = defineEmits<{
  (e: 'onCancel'): void;
  (e: 'check', value: boolean): void;
}>();
const eventContext = useGlobalEventContext();
const columns = defineColumns([
  {
    id: '1',
    enCode: 'creationTime',
    enCode: 'createdTime',
    name: '提交时间',
  },
  {
    id: '2',
    enCode: 'type',
    enCode: 'files',
    name: '验收照片',
  },
  {
    id: '3',
    enCode: 'checkReceiveStatus',
    name: '验收状态',
  },
  {
    id: '4',
    enCode: 'checkReceiveTime',
    name: '验收时间',
  },
]);
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'checkReceiveBtn',
      name: '验收通过',
    },
    emits: {
      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Success),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
        !(
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
        ) || form.value.isDetail,
    },
  },
  {
    data: {
      enCode: 'checkReceiveBtn',
      name: '验收未通过',
    },
    emits: {
      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Fail),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
        !(
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
        ) || form.value.isDetail,
    },
  },
  {
    data: {
      enCode: 'downloadBtn',
@@ -71,10 +112,12 @@
]);
watch(
  () => visible.value,
  visible,
  (val) => {
    if (val) {
      getList();
      if (form.value.id) {
        getList();
      }
    }
  },
  {
@@ -91,14 +134,15 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetFlexEnterpriseInput = {
      let params: API.GetCheckReceiveTaskUserSubmitsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        id: form.value.id,
      };
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params);
      let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params);
      return res;
    } catch (error) {
      console.log('error: ', error);
@@ -108,14 +152,48 @@
    defaultExtraParams: {
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {},
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'],
    columnsRenderProps: {
      createdTime: { type: 'date' },
      checkReceiveTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText },
      files: {
        type: 'url',
        //@ts-ignore
        formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
          (row.files ?? []).map((x) => setOSSLink(x)),
        showDownloadBtn: false,
      },
    },
  }
);
function handleDownload(row) {}
</script>
function handleDownload(row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) {
  if (row.files?.length > 0) {
    downloadWithZip(
      row.files.map((x) => ({
        data: setOSSLink(x),
      })),
      '验收照片'
    );
  }
}
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
</style>
async function checkReceiveTask(
  row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem,
  checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus
) {
  try {
    let params: API.CheckReceiveTaskCommand = {
      id: row.id,
      checkReceiveStatus: checkReceiveStatus,
    };
    let res = await taskCheckReceiveServices.checkReceiveTask(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      eventContext.emit('checkReceiveTask');
    }
  } catch (error) {}
}
</script>