瀏覽代碼

fix(bugs): 修改员工列表

tangning 3 年之前
父節點
當前提交
248917281c
共有 3 個文件被更改,包括 26 次插入244 次删除
  1. 16 6
      src/views/staff/delListModal.vue
  2. 10 8
      src/views/staff/detailsModal.vue
  3. 0 230
      src/views/staff/list.vue

+ 16 - 6
src/views/staff/delListModal.vue

@@ -3,11 +3,15 @@
     v-bind="$attrs"
     @cancel="resetFields"
     @register="register"
-    title="新 增"
+    title="删除员工"
     @ok="handleOk"
   >
     <div class="pt-3px pr-3px">
-      <BasicForm @register="registerForm" />
+      <BasicForm @register="registerForm">
+        <template #tips>
+          <div>请将当前员工的直播间进行迁移后,在删除员工</div>
+        </template>
+      </BasicForm>
     </div>
   </BasicModal>
 </template>
@@ -25,7 +29,7 @@
     props: {
       userData: { type: Object },
     },
-    emits: ['ok'],
+    emits: ['reload'],
     setup(_, context) {
       const modelRef = ref({
         toUserId: 0,
@@ -37,7 +41,7 @@
         {
           field: 'toUserPhone',
           component: 'Select',
-          label: '角色',
+          label: '员工名称',
           required: true,
           itemProps: {
             validateTrigger: 'blur',
@@ -49,6 +53,12 @@
             options: options.value,
           },
         },
+        {
+          field: 'tips',
+          component: 'Select',
+          slot: 'tips',
+          label: ' ',
+        },
       ];
       const [registerForm, { validate, resetFields, updateSchema }] = useForm({
         labelWidth: 120,
@@ -76,7 +86,7 @@
           updateSchema({
             field: 'toUserPhone',
             component: 'Select',
-            label: '角色',
+            label: '员工名称',
             required: true,
             itemProps: {
               validateTrigger: 'blur',
@@ -102,7 +112,7 @@
           userId: modelRef.value.userId,
           toUserId: modelRef.value.toUserId,
         });
-        context && context.emit('ok', res);
+        context && context.emit('reload', res);
         createMessage.success(t('common.optSuccess'));
         closeModal();
         resetFields();

+ 10 - 8
src/views/staff/detailsModal.vue

@@ -3,7 +3,7 @@
     v-bind="$attrs"
     @cancel="resetFields"
     @register="register"
-    title="新 增"
+    :title="title"
     @ok="handleOk"
   >
     <div class="pt-3px pr-3px">
@@ -12,12 +12,11 @@
   </BasicModal>
 </template>
 <script lang="ts">
-  import { defineComponent, ref, computed } from 'vue';
+  import { defineComponent, ref } from 'vue';
   import { roleLIstApi, checkUserApi, saveApi, updateApi } from '/@/api/staff/list';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useI18n } from '/@/hooks/web/useI18n';
-  import { useUserStore } from '/@/store/modules/user';
   import { useMessage } from '/@/hooks/web/useMessage';
   const { t } = useI18n();
   const schemas: FormSchema[] = [
@@ -115,10 +114,10 @@
     props: {
       userData: { type: Object },
     },
+    emits: ['ok'],
     setup(_, context) {
       const modelRef = ref({});
-      const userStore = useUserStore();
-      const userinfo = computed(() => userStore.getUserInfo);
+      const title = ref('新 增');
       const { createMessage } = useMessage();
       const [registerForm, { setFieldsValue, validate, resetFields }] = useForm({
         labelWidth: 120,
@@ -133,22 +132,25 @@
         data && onDataReceive(data);
       });
       function onDataReceive(data) {
+        console.log('onDataReceive', data);
         // 方式1;
         setFieldsValue({
           ...data,
         });
+        if (data.id) {
+          title.value = '编辑';
+        }
       }
 
       async function handleOk() {
         let data = await validate();
-        const { companyId } = userinfo.value;
         const requestApi = data.id ? updateApi : saveApi;
         let res = await requestApi({
           userName: data.phone,
           phone: data.phone,
           nickName: data.nickName,
           roleId: data.roleId,
-          companyId,
+          id: data.id,
         });
         console.log('res', res);
         context && context.emit('ok', res);
@@ -157,7 +159,7 @@
         resetFields();
       }
 
-      return { register, schemas, registerForm, model: modelRef, handleOk, resetFields };
+      return { register, title, schemas, registerForm, model: modelRef, handleOk, resetFields };
     },
   });
 </script>

+ 0 - 230
src/views/staff/list.vue

@@ -1,230 +0,0 @@
-<template>
-  <div class="p-4">
-    <BasicTable @register="registerTable">
-      <template #toolbar>
-        <a-button type="primary" @click="handleCreate">新增</a-button>
-      </template>
-      <template #role="{ record }">
-        {{ renderRoleType(record.role) }}
-      </template>
-      <template #status="{ record }">
-        {{ renderStatus(record.status) }}
-      </template>
-      <template #createTime="{ record }">
-        <Time :value="record.createTime" mode="datetime" />
-      </template>
-      <!-- {
-        label: t('routes.staff.setpaswd'),
-        onClick: handleOpenModal.bind(null, record),
-      }, -->
-      <template #action="{ record }">
-        <TableAction
-          :actions="[
-            {
-              label: '编辑',
-              icon: 'mdi:information-outline',
-              onClick: handleEdit.bind(null, record),
-            },
-            {
-              label: '删除',
-              color: 'error',
-              icon: 'ant-design:delete-outlined',
-              onClick: handleDelete.bind(null, record),
-            },
-          ]"
-        />
-      </template>
-    </BasicTable>
-    <DetailsModal @register="registerDetail" />
-    <SetpaswordModal @register="register" />
-    <DelListModal @register="registerDelList" />
-  </div>
-</template>
-<script lang="ts">
-  import { defineComponent } from 'vue';
-  import { BasicTable, useTable, BasicColumn, FormProps, TableAction } from '/@/components/Table';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useModal } from '/@/components/Modal';
-  import { uploadApi } from '/@/api/sys/upload';
-  import SetpaswordModal from './setpaswordModal.vue';
-  import DetailsModal from './detailsModal.vue';
-  import DelListModal from './delListModal.vue';
-  // import { Switch } from 'ant-design-vue';
-  // import { h } from 'vue';
-  import { ListApi, delApi, preDelApi } from '/@/api/staff/list';
-  import { useI18n } from '/@/hooks/web/useI18n';
-  // import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard';
-  import { useGo } from '/@/hooks/web/usePage';
-  import { Time } from '/@/components/Time';
-  export default defineComponent({
-    components: { BasicTable, TableAction, Time, SetpaswordModal, DetailsModal, DelListModal },
-    setup() {
-      const [register, { openModal }] = useModal();
-      const [registerDetail, { openModal: openDetaileModal }] = useModal();
-      const [registerDelList, { openModal: openDelListeModal }] = useModal();
-      const { createConfirm, createMessage } = useMessage();
-      const go = useGo();
-      const { t } = useI18n();
-      const columns: BasicColumn[] = [
-        {
-          title: 'ID',
-          dataIndex: 'id',
-          fixed: 'left',
-          width: 60,
-        },
-        {
-          title: t('routes.staff.deptName'),
-          dataIndex: 'companyName',
-          width: 160,
-        },
-        {
-          title: t('routes.staff.userName'),
-          dataIndex: 'userName',
-          width: 80,
-        },
-        {
-          title: t('routes.staff.nickName'),
-          dataIndex: 'nickName',
-          width: 80,
-        },
-        {
-          title: '手机',
-          dataIndex: 'phone',
-          width: 160,
-        },
-
-        {
-          title: t('common.roleName'),
-          dataIndex: 'roleName',
-          // slots: { customRender: 'role' },
-          sorter: true,
-          width: 80,
-        },
-        {
-          title: t('common.state'),
-          dataIndex: 'status',
-          slots: { customRender: 'status' },
-          // sorter: true,
-          width: 80,
-        },
-
-        {
-          title: t('routes.staff.createTime'),
-          dataIndex: 'createTime',
-          slots: { customRender: 'createTime' },
-          width: 130,
-        },
-        {
-          title: '操作',
-          dataIndex: '',
-          slots: { customRender: 'action' },
-          fixed: 'right',
-          width: 140,
-        },
-      ];
-
-      const searchForm: Partial<FormProps> = {
-        labelWidth: 100,
-        schemas: [
-          {
-            field: 'staffName',
-            label: t('routes.corporation.phone'),
-            component: 'Input',
-            colProps: {
-              xl: 5,
-              xxl: 5,
-            },
-          },
-        ],
-      };
-
-      const [registerTable, { reload }] = useTable({
-        title: t('routes.staff.staffList'),
-        api: ListApi,
-        columns: columns,
-        useSearchForm: true,
-        formConfig: searchForm,
-        showTableSetting: true,
-        tableSetting: { fullScreen: true },
-        showIndexColumn: false,
-        rowKey: 'id',
-        pagination: { pageSize: 20 },
-        bordered: true,
-        sortFn: (sortInfo) => {
-          return { ...sortInfo, sidx: sortInfo.field, order: sortInfo.order.replace('end', '') };
-        },
-      });
-
-      function renderRoleType(type: number): string {
-        switch (type) {
-          case 0:
-            return t('routes.staff.roleType.0');
-          case 1:
-            return t('routes.staff.roleType.1');
-          default:
-            return '';
-        }
-      }
-      function renderStatus(type: number): string {
-        switch (type) {
-          case 1:
-            return t('common.normal');
-          case 0:
-            return t('common.unNormal');
-          default:
-            return '';
-        }
-      }
-      function handleOpenModal(record: Recordable) {
-        openModal(true, record);
-      }
-      function handleCreate() {
-        openDetaileModal(true);
-      }
-      function handleEdit(record: Recordable) {
-        openDetaileModal(true, record);
-      }
-      async function handleDelete(record) {
-        let check = await preDelApi(23862); //record.id
-        console.log('https://cszfb.4dkankan.com', check);
-        if (Array.isArray(check)) {
-          return openDelListeModal(true, {
-            ...record,
-            option: check,
-          });
-        }
-        handDelconfirm(record);
-      }
-      function handDelconfirm(record) {
-        createConfirm({
-          iconType: 'warning',
-          title: '警告',
-          content: `此操作将对${record.userName}进行删除, 是否继续?`,
-          onOk: async () => {
-            await delApi(record.id);
-            reload();
-          },
-        });
-      }
-      return {
-        registerTable,
-        registerDetail,
-        registerDelList,
-        openDelListeModal,
-        createMessage,
-        handDelconfirm,
-        t,
-        reload,
-        go,
-        renderRoleType,
-        renderStatus,
-        handleCreate,
-        handleOpenModal,
-        register,
-        handleEdit,
-        handleDelete,
-        uploadApi: uploadApi as any,
-      };
-    },
-  });
-</script>