CheckDetail.vue 4.29 KB
<template>
  <div class="container">
    <BasicDrawer
      @register="register"
      v-bind="$attrs"
      showFooter
      title="字段编辑权限申请"
      width="60%"
      :destroyOnClose="true"
      :isDetail="true"
      @ok="handleSubmit"
      :showDetailBack="false"
      okText="申请"
      ><input />
      <div>
        <template v-if="role === ROLE.ADMIN || role === ROLE.FINANCE">
          <BasicForm @register="registerForm" />
        </template>
      </div>
      <!-- <template #titleToolbar> <a-button type="primary"> 申请编辑权限 </a-button></template> -->

      <!-- <template #appendFooter>
      <a-button type="primary" @click="onGoFormDetail"> 返回编辑</a-button>
    </template> -->
    </BasicDrawer>
    <ApproveReason @register="approveReasonRegister" @success="handleCloseModal" />
  </div>
</template>
<script lang="ts">
  import { computed, defineComponent, reactive, ref } from 'vue';
  import { BasicForm, useForm } from '/@/components/Form/index';
  import { getPackageApplyEdit } from '/@/api/project/invoice';
  import { ROLE } from '../../../financeList/type.d';
  import { useModal } from '/@/components/Modal';
  import ApproveReason from './ApproveReason.vue';
  import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
  import { FIELDS_BASE_INFO } from './tableData';
  import { useUserStoreWithOut } from '/@/store/modules/user';

  const userStore = useUserStoreWithOut();
  const getSchema = (fields) =>
    fields
      .map((item) => ({
        field: `${item.field}`,
        dataIndex: `${item.field}`,
        label: item.label,
        component: 'Switch',
        componentProps: {
          checkedValue: 'UN_LOCKED',
          unCheckedValue: 'LOCKED',
        },
        colProps: {
          span: 6,
        },
      }))
      .filter(
        (item) =>
          // item.field !== 'packetPrice' &&
          item.field !== 'exchangeRate' && item.field !== 'profitRate',
      );

  export default defineComponent({
    components: { BasicDrawer, BasicForm, ApproveReason },
    props: {
      onGoFormDetail: {
        type: Function,
      },
    },
    setup() {
      const id = ref('');
      const schemas = getSchema(FIELDS_BASE_INFO);
      const [registerForm, { getFieldsValue }] = useForm({
        labelWidth: 180,
        schemas,
        showActionButtonGroup: false,
        actionColOptions: {
          span: 24,
        },
      });
      const [approveReasonRegister, { openModal: openApproveReasonDrawer }] = useModal();

      const lockFields = reactive({});
      const [register, { closeDrawer }] = useDrawerInner((data) => {
        console.log(data, '5656datach');
        Object.assign(lockFields, data.lockFields);
        id.value = data.orderId;
      });
      function handleCloseModal() {
        closeDrawer();
      }

      const role = computed(() => {
        return userStore.getUserInfo?.roleSmallVO?.code;
      });

      const handleSubmit = async () => {
        const baseFieldValues = getFieldsValue();
        console.log(baseFieldValues, '5656baseFieldValues');
        openApproveReasonDrawer(true, {
          data: baseFieldValues,
          id: id.value,
        });
        // await getPackageApplyEdit({
        //   orderId: id.value,
        //   packetActualRmbTotalPrice: baseFieldValues.packetActualRmbTotalPrice,
        // });
        // if (baseFieldValues) {
        //   FIELDS_BASE_INFO.map(
        //     ({ field }) =>
        //       (baseFieldValues[field] =
        //         baseFieldValues[field] === 'UN_LOCKED' ? 'UN_LOCKED' : 'LOCKED'),
        //   );
        // }
        // const values = Object.assign({ orderId: id.value }, { baseFields: baseFieldValues });

        // if (values.baseFields && values.baseFields.packetActualRmbTotalPrice === 'UN_LOCKED') {
        //   console.log(values, '5656values1');
        // } else {
        //   // await orderAuth(values);
        //   console.log(values, '5656values2');

        //   closeDrawer();
        // }
      };

      return {
        register,
        schemas,
        registerForm,
        handleSubmit,
        handleCloseModal,
        approveReasonRegister,
        openApproveReasonDrawer,
        ROLE,
        role,
      };
    },
  });
</script>
<style>
  .container {
    position: fixed; /* 或 absolute, fixed */
    z-index: 10;
  }
</style>