zjk
2026-03-23 4d3785cfcc09c5dead5a61dea5b2f65551f209b7
feat: 修改全局弹窗
27个文件已修改
162 ■■■■■ 已修改文件
src/views/businessOperations/cruise/parade-plan/add.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/cruise/parade-plan/detail.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/cruise/parade-plan/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/geofenceManagement/detail.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/geofenceManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/openCity/components/TableModal.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/openCity/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/pointManagement/list.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/address/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/plan/copy.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/plan/edit.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/shift/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/personnel/personnelManagement/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/taskOrder/taskOrderCenter/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/accountManagement/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/roleManagement/components/RoleModal.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/navigationAndRoutePlanning/index.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/order/orderManagement/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/pricingManagement/components/TableModal.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/pricingManagement/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/active/coupon/add.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/active/coupon/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/banner/components/BannerFormModal.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/banner/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/invitationCode/components/GenerateModal.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/invitationCode/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/whitelist/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/cruise/parade-plan/add.vue
@@ -125,6 +125,8 @@
    content: '当前已填写/选择内容,离开后将丢失,确定离开吗?',
    positiveText: '确定离开',
    negativeText: '继续编辑',
    maskClosable: false,
    autoFocus: false,
    onPositiveClick: () => {
      router.back()
    },
src/views/businessOperations/cruise/parade-plan/detail.vue
@@ -370,7 +370,8 @@
    content: '删除后数据不可恢复,请谨慎操作',
    positiveText: '确认',
    negativeText: '取消',
    draggable: true,
    maskClosable: false,
    autoFocus: false,
    onPositiveClick: async () => {
      const res = await deleteCruiseOrder(record.id)
      if (res.code === 200) {
src/views/businessOperations/cruise/parade-plan/index.vue
@@ -90,7 +90,8 @@
    content: '',
    positiveText: '确定',
    negativeText: '取消',
    draggable: true,
    maskClosable: false,
    autoFocus: false,
    onPositiveClick: async () => {
      const res = await deleteCruisePlanById(row.id)
      if (res.code === 200) {
src/views/businessOperations/geofenceManagement/detail.vue
@@ -1617,7 +1617,8 @@
          content: '',
          positiveText: '确定',
          negativeText: '取消',
          draggable: true,
          maskClosable: false,
          autoFocus: false,
          onPositiveClick: () => {
            editFence({ ...params, id: routeId.value, addPointIdList, delPointIdList, disablePointIdList }).then((res) => {
              if (res.code === 200) {
@@ -1792,7 +1793,8 @@
    content: '',
    positiveText: '确定',
    negativeText: '取消',
    draggable: true,
    maskClosable: false,
    autoFocus: false,
    onPositiveClick: () => {
      tabStore.closeTab(route.fullPath)
      router.back()
src/views/businessOperations/geofenceManagement/index.vue
@@ -211,7 +211,7 @@
                content: `复制位【副本_${row.electronicName}】`,
                positiveText: '确定',
                negativeText: '取消',
                draggable: true,
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  copyFence(row.id).then((res) => {
src/views/businessOperations/openCity/components/TableModal.vue
@@ -81,7 +81,8 @@
      content: '',
      positiveText: '确定',
      negativeText: '取消',
      draggable: true,
      maskClosable: false,
      autoFocus: false,
      onPositiveClick: () => {
        hiddenModal()
        endLoading()
@@ -197,35 +198,22 @@
</script>
<template>
  <n-modal
    v-model:show="modalVisible"
    :segmented="{
      content: true,
      action: true,
    }"
    :content-style="{
  <n-modal v-model:show="modalVisible" :segmented="{
    content: true,
    action: true,
  }" :content-style="{
      padding: '16px 24px 0px 24px',
    }"
    :mask-closable="false" preset="card" title="开通城市" class="w-400px table-modal"
  >
    <n-form
      ref="formRef" :rules="rules" :model="formModel" :disabled="modalType === 'view'"
      require-mark-placement="left"
    >
    }" :mask-closable="false" preset="card" title="开通城市" class="w-400px table-modal">
    <n-form ref="formRef" :rules="rules" :model="formModel" :disabled="modalType === 'view'"
      require-mark-placement="left">
      <n-form-item label="开通城市" path="pca">
        <n-cascader
          v-model:value="formModel.pca" :options="pcaOptions" value-field="code" label-field="name"
          check-strategy="all" @update:value="handlePcaChange"
          @update:show="isRoleSelectOpen = $event"
        >
        <n-cascader v-model:value="formModel.pca" :options="pcaOptions" value-field="code" label-field="name"
          check-strategy="all" @update:value="handlePcaChange" @update:show="isRoleSelectOpen = $event">
          <template #arrow>
            <img
              src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png"
              class="arrow-icon"
              :class="{ 'arrow-icon--open': isRoleSelectOpen }"
              style="width: 16px;height: 16px;"
              alt="arrow"
            >
              class="arrow-icon" :class="{ 'arrow-icon--open': isRoleSelectOpen }" style="width: 16px;height: 16px;"
              alt="arrow">
          </template>
        </n-cascader>
      </n-form-item>
src/views/businessOperations/openCity/index.vue
@@ -116,7 +116,8 @@
                content: `确认删除【${name || ''}】城市的开通记录吗?`,
                positiveText: '确认',
                negativeText: '取消',
                draggable: true,
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  deleteOpenCity(row.id!).then((res) => {
                    if (res.code === 200) {
src/views/businessOperations/pointManagement/list.vue
@@ -408,6 +408,8 @@
      content: '该点位置投入运营,删除后将隐藏所有关联历史位置记录,建议仅保持‘已停用’。是否确认删除?',
      positiveText: '确定',
      negativeText: '取消',
      maskClosable: false,
                autoFocus: false,
      onPositiveClick: async () => {
        try {
          const res = await deletePoint(row.id)
@@ -441,6 +443,8 @@
    content: '删除后该点位及其历史位置记录将永久下线,确认删除吗?',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const res = await deletePoint(row.id)
@@ -466,6 +470,8 @@
    content: `确认${actionText}该点位吗?`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const res = await enableDisablePoint({
src/views/operations/attendance/address/index.vue
@@ -113,7 +113,8 @@
                content: '',
                positiveText: '确定',
                negativeText: '取消',
                draggable: true,
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  updateCheckLocationStatus({ id: row.id, status: isEnabled ? 0 : 1 }).then((res) => {
                    if (res.code === 200) {
@@ -137,7 +138,8 @@
                content: '确认删除该打卡地址?删除后不可恢复。',
                positiveText: '确认',
                negativeText: '取消',
                draggable: true,
               maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  deleteCheckLocation(row.id!).then((res) => {
                    if (res.code === 200) {
@@ -260,24 +262,10 @@
        </n-flex>
      </template>
      <div class="flex-1 flex flex-col h-full">
        <n-data-table
          class="flex-1"
          :columns="columns"
          :data="listData"
          :loading="loading"
          :bordered="false"
          flex-height
          :scroll-x="tableScrollX"
          :header-height="18"
          :row-height="18"
        />
        <Pagination
          :count="count"
          :page="pageParams.pageNum"
          :page-size="pageParams.pageSize"
          class="robotaxi-pagination mt-12px"
          @change="changePage"
        />
        <n-data-table class="flex-1" :columns="columns" :data="listData" :loading="loading" :bordered="false"
          flex-height :scroll-x="tableScrollX" :header-height="18" :row-height="18" />
        <Pagination :count="count" :page="pageParams.pageNum" :page-size="pageParams.pageSize"
          class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
      <AddressFormModal ref="modalRef" v-model:show="showFormModal" :mode="formMode" @confirm="handleConfirmForm" />
src/views/operations/attendance/plan/copy.vue
@@ -278,6 +278,8 @@
    content: '确定要删除该排班吗?',
    positiveText: '确认',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      handleDeleteSchedule(teamIndex, dateIndex)
    },
src/views/operations/attendance/plan/edit.vue
@@ -264,6 +264,8 @@
    content: '确定要删除该排班吗?',
    positiveText: '确认',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      handleDeleteSchedule(teamIndex, dateIndex)
    },
src/views/operations/attendance/shift/index.vue
@@ -162,7 +162,8 @@
              content: '确认删除该班次?删除后不可恢复。',
              positiveText: '确认',
              negativeText: '取消',
              draggable: true,
              maskClosable: false,
                autoFocus: false,
              onPositiveClick: () => {
                deleteShift(row.id!).then((res) => {
                  if (res.code === 200) {
src/views/operations/personnel/personnelManagement/index.vue
@@ -134,7 +134,8 @@
    content: `确认删除该人员?此操作不可恢复。`,
    positiveText: '确认',
    negativeText: '取消',
    draggable: true,
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      deleteOperationsUser(row.id).then(res => {
        if (res.code === 200) {
@@ -155,6 +156,8 @@
    content: `是否确认${actionType}该人员?`,
    positiveText: '确认',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const res = await updateOperationsUserStatus({
        id: row.id,
src/views/operations/taskOrder/taskOrderCenter/index.vue
@@ -493,7 +493,8 @@
                content: `确认删除该任务?此操作不可恢复。`,
                positiveText: '确认',
                negativeText: '取消',
                draggable: true,
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  deleteTaskOrder(row.id).then((res) => {
                    if (res.code === 200) {
src/views/system/accountPermission/accountManagement/index.vue
@@ -67,6 +67,8 @@
    content: t('accountManagement.messages.deleteConfirmContent'),
    positiveText: t('common.confirm'),
    negativeText: t('common.cancel'),
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const ids = selectedRowKeys.value.join(',')
      const res = await deleteAccounts(ids)
@@ -93,6 +95,8 @@
    content: newStatus === '0' ? t('accountManagement.messages.enableConfirmContent') : t('accountManagement.messages.disableConfirmContent'),
    positiveText: t('common.confirm'),
    negativeText: t('common.cancel'),
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const res = await switchStatus(row.id)
      if (res.code === 200) {
@@ -360,6 +364,8 @@
    content: t('accountManagement.messages.deleteConfirmContent'),
    positiveText: t('common.confirm'),
    negativeText: t('common.cancel'),
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const res = await deleteAccounts(row.id)
      if (res.code === 200) {
src/views/system/accountPermission/roleManagement/components/RoleModal.vue
@@ -104,6 +104,8 @@
    content: t('roleManagement.modal.closeConfirm.content'),
    positiveText: t('roleManagement.modal.closeConfirm.confirm'),
    negativeText: t('roleManagement.modal.closeConfirm.continue'),
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      closeModal()
    },
src/views/transaction/navigationAndRoutePlanning/index.vue
@@ -114,6 +114,7 @@
                content: '确认删除吗该路线规划配置?删除后不可恢复。',
                positiveText: '确定',
                negativeText: '取消',
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  deleteRoutePlan(row.id).then(res => {
src/views/transaction/order/orderManagement/index.vue
@@ -179,7 +179,8 @@
                  content: '',
                  positiveText: '确定',
                  negativeText: '取消',
                  draggable: true,
                  maskClosable: false,
                autoFocus: false,
                  onPositiveClick: () => {
                    cancelAndCloseOrder({ orderId: row.id!, type: 1 }).then((res) => {
                      if (res.code === 200) {
@@ -205,7 +206,8 @@
                  content: '',
                  positiveText: '确定',
                  negativeText: '取消',
                  draggable: true,
                  maskClosable: false,
                autoFocus: false,
                  onPositiveClick: () => {
                    cancelAndCloseOrder({ orderId: row.id!, type: 2 }).then((res) => {
                      if (res.code === 200) {
@@ -266,8 +268,8 @@
                  content: '',
                  positiveText: '确定',
                  negativeText: '取消',
                  draggable: true,
                  autoFocus: false,
                  maskClosable: false,
                autoFocus: false,
                  onPositiveClick: () => {
                    deleteOrder(row.id!).then((res) => {
                      if (res.code === 200) {
src/views/transaction/pricingManagement/components/TableModal.vue
@@ -134,7 +134,8 @@
        positiveButtonProps: {
          type: 'primary',
        },
        draggable: true,
        maskClosable: false,
                autoFocus: false,
        onPositiveClick: () => {
          router.push({ name: 'setPrice', query: { id: id.value, type: 'add', category: formModel.value.pricingType } })
        },
@@ -153,7 +154,8 @@
          positiveButtonProps: {
            type: 'primary',
          },
          draggable: true,
          maskClosable: false,
                autoFocus: false,
          onPositiveClick: () => {
            router.push({ name: 'setPrice', query: { id: data.id, type: 'add', category: formModel.value.pricingType } })
          },
src/views/transaction/pricingManagement/index.vue
@@ -134,7 +134,8 @@
                content: '确认删除该定价配置?删除后不可恢复。',
                positiveText: '确定',
                negativeText: '取消',
                draggable: true,
                maskClosable: false,
                autoFocus: false,
                onPositiveClick: () => {
                  delteteUser(row.id!)
                },
src/views/userContent/active/coupon/add.vue
@@ -260,6 +260,8 @@
    content: '当前优惠券未保存,确认取消创建吗?',
    positiveText: '确定取消',
    negativeText: '继续编辑',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      router.back()
    },
src/views/userContent/active/coupon/index.vue
@@ -77,6 +77,8 @@
    content: '删除后不可恢复,确定要删除该优惠券吗?',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const res = await deleteCouponById(row.id)
      if (res.code === 200) {
@@ -99,6 +101,8 @@
    content: `确定向当前筛选条件下所有用户发放优惠券么?共${payload.userCount}个用户。`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const { code } = await sendCoupon({
@@ -128,6 +132,8 @@
    content: `确定要给选中的 ${rows.length} 位用户发放该优惠券吗?`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const { code } = await sendCoupon({
src/views/userContent/banner/components/BannerFormModal.vue
@@ -302,6 +302,8 @@
    content: '当前广告配置未保存,确定取消吗?',
    positiveText: '确定关闭',
    negativeText: '继续编辑',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: () => {
      closeModal()
    },
src/views/userContent/banner/index.vue
@@ -272,6 +272,8 @@
    content: `确认删除广告 "${row.bannerTitle}" 吗?`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const { error, code } = await deleteBanner(row.id) as any
      if (!error && code === 200) {
@@ -291,6 +293,8 @@
    content: `确认删除选中的 ${selectedRowKeys.value.length} 条广告吗?`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      // 并发删除
      try {
src/views/userContent/whitelistManagement/invitationCode/components/GenerateModal.vue
@@ -150,6 +150,8 @@
      content: '输入框内有内容,确认取消吗?',
      positiveText: '确定',
      negativeText: '取消',
      maskClosable: false,
                autoFocus: false,
      onPositiveClick: () => {
        doClose()
      },
src/views/userContent/whitelistManagement/invitationCode/index.vue
@@ -198,6 +198,8 @@
    content: '删除后数据不可恢复,请谨慎操作',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const ids = selectedRowKeys.value.join(',')
@@ -294,6 +296,8 @@
    content: '删除后数据不可恢复,请谨慎操作',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      try {
        const { code } = await deleteInvitationCodes(id.toString())
src/views/userContent/whitelistManagement/whitelist/index.vue
@@ -332,6 +332,8 @@
    content: '冻结后该用户手机号不可登录本系统',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const { code } = await freezeWhitelistByIds(selectedRowKeys.value.join(','))
      if (code === 200) {
@@ -366,6 +368,8 @@
    content: '冻结后该用户手机号不可登录本系统',
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const { code } = await freezeWhitelistByIds(row.id.toString())
      if (code === 200) {
@@ -383,6 +387,8 @@
    content: `确定要解冻用户 ${row.nickName || row.account} 吗?`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const { code } = await unfreezeWhitelist(row.id)
      if (code === 200) {
@@ -405,6 +411,8 @@
    content: `确定要删除用户 ${row.nickName || row.account} 吗?删除后数据不可恢复。`,
    positiveText: '确定',
    negativeText: '取消',
    maskClosable: false,
                autoFocus: false,
    onPositiveClick: async () => {
      const { code } = await deleteWhitelistByIds(row.id.toString())
      if (code === 200) {