gaoluyang
2 天以前 787ccc59ba89bacc075562a161ecf02bc76ebadc
src/views/crm/business/status/modules/form.vue
@@ -11,7 +11,6 @@
import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
  createBusinessStatus,
  DEFAULT_STATUSES,
  getBusinessStatus,
  updateBusinessStatus,
} from '#/api/crm/business/status';
@@ -53,7 +52,6 @@
    try {
      if (formData.value?.statuses && formData.value.statuses.length > 0) {
        data.statuses = formData.value.statuses;
        data.statuses.splice(-3, 3);
      }
      await (formData.value?.id
        ? updateBusinessStatus(data)
@@ -94,8 +92,7 @@
      // 设置到 values
      await formApi.setValues(formData.value as any);
      await gridApi.grid.reloadData(
        (formData.value!.statuses =
          formData.value?.statuses?.concat(DEFAULT_STATUSES)) as any,
        (formData.value!.statuses) as any,
      );
    } finally {
      modalApi.unlock();
@@ -105,7 +102,7 @@
/** 添加状态 */
async function handleAddStatus() {
  formData.value!.statuses!.splice(-3, 0, {
  formData.value!.statuses!.push({
    name: '',
    percent: undefined,
  });
@@ -128,7 +125,7 @@
      mode: 'cell',
    },
    columns: useFormColumns(),
    data: formData.value?.statuses?.concat(DEFAULT_STATUSES),
    data: formData.value?.statuses,
    border: true,
    showOverflow: true,
    autoResize: true,
@@ -152,29 +149,20 @@
    <Form class="mx-4">
      <template #statuses>
        <Grid class="w-full">
          <template #endStatus="{ row, rowIndex }">
            <span>
              {{ row.endStatus ? '结束' : `阶段${rowIndex + 1}` }}
            </span>
          </template>
          <template #name="{ row }">
            <Input
              v-if="!row.endStatus"
              v-model:value="row.name"
              placeholder="请输入状态名"
            />
            <span v-else>{{ row.name }}</span>
          </template>
          <template #percent="{ row }">
            <InputNumber
              v-if="!row.endStatus"
              v-model:value="row.percent"
              :min="0"
              :max="100"
              :precision="2"
              placeholder="请输入赢单率"
            />
            <span v-else>{{ row.percent }}</span>
          </template>
          <template #actions="{ row, rowIndex }">
            <TableAction
@@ -182,14 +170,12 @@
                {
                  label: $t('ui.actionTitle.create'),
                  type: 'link',
                  ifShow: () => !row.endStatus,
                  onClick: handleAddStatus,
                },
                {
                  label: $t('common.delete'),
                  type: 'link',
                  danger: true,
                  ifShow: () => !row.endStatus,
                  popConfirm: {
                    title: $t('ui.actionMessage.deleteConfirm', [row.name]),
                    confirm: deleteStatusArea.bind(null, row, rowIndex),