tangning 11 months ago
parent
commit
2110b636b7
2 changed files with 89 additions and 38 deletions
  1. 16 0
      src/api/operate/index.ts
  2. 73 38
      src/views/sceneShare/addModal.vue

+ 16 - 0
src/api/operate/index.ts

@@ -74,6 +74,7 @@ enum Api {
   getAuthList = '/service/manage/jy/sceneUserAuth/getAuthList',
   getAuthType = '/service/manage/jy/sceneUserAuth/getAuthType',
   getByRyId = '/service/manage/jy/user/getByRyId',
+  getinnerByRyId = '/service/manage/inner/getByRyId',
   addAuth = '/service/manage/jy/sceneUserAuth/addAuth',
   setAuthType = '/service/manage/jy/sceneUserAuth/setAuthType',
   delAuth = '/service/manage/jy/sceneUserAuth/delAuth',
@@ -523,6 +524,21 @@ export const getByRyId = (params) =>
       ignoreCancelToken: true,
     },
   });
+// 根据警员ID获取用户列表
+export const getinnerByRyId = (params) =>
+  defHttp.post<Result>(
+    {
+      url: Api.getinnerByRyId,
+      params,
+      headers: {
+        // @ts-ignore
+        ignoreCancelToken: true,
+      },
+    },
+    {
+      isTransformResponse: false,
+    },
+  );
 
 // 根据警员ID获取用户列表
 export const addAuth = (params) =>

+ 73 - 38
src/views/sceneShare/addModal.vue

@@ -21,7 +21,7 @@
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useI18n } from '/@/hooks/web/useI18n';
-  import { getByRyId, userShareAdd } from '/@/api/operate';
+  import { getinnerByRyId, userShareAdd } from '/@/api/operate';
 
   const { t } = useI18n();
   export default defineComponent({
@@ -43,56 +43,95 @@
           component: 'Input',
           show: false,
           label: 'id',
+          defaultValue: '111',
           required: false,
         },
         {
           field: 'ryNo',
-          component: 'AutoComplete',
+          component: 'Input',
           label: '人员编号',
           required: true,
-          componentProps: {
-            filterOption: onFilterOption,
-            onSearch: onSearch,
-            onChange: (data) => {
-              setTimeout(() => {
-                const item = optionsName.value && optionsName.value.find((ele) => ele.ryNo == data);
-                setFieldsValue({
-                  ryNickName: item && item.ryNickName ? item.ryNickName : '',
-                  id: item && item.id ? item.id : '',
-                });
-              }, 100);
-            },
-          },
-          colProps: {
-            span: 20,
-          },
-        },
-        {
-          field: 'ryNickName',
-          component: 'Input',
-          label: '姓名',
           rules: [
             {
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
+                let myData = await getFieldsValue();
                 if (!value) {
-                  return Promise.reject('请输入正确的人员编号');
+                  return Promise.reject('请输入人员编号');
+                }
+                let res = await getinnerByRyId({ ryNo: value });
+                console.log('value', value, res);
+                if (res && !res.data) {
+                  return Promise.reject('人员编号不存在');
+                }
+                Promise.resolve();
+                let id = res && res.data && res.data.id;
+                if(myData.id != id || !myData.id){
+                  setFieldsValue({
+                    ryNickName: res && res.data ? res.data.ryNickName : '',
+                    id: res && res.data ? res.data.id : '',
+                  });
                 }
-                return Promise.resolve();
               },
-              trigger: 'change',
+              trigger: 'blur',
             },
           ],
           colProps: {
             span: 20,
           },
+        },
+        // {
+        //   field: 'ryNo',
+        //   component: 'AutoComplete',
+        //   label: '人员编号',
+        //   required: true,
+        //   componentProps: {
+        //     filterOption: onFilterOption,
+        //     onSearch: onSearch,
+        //     onChange: (data) => {
+        //       setTimeout(() => {
+        //         const item = optionsName.value && optionsName.value.find((ele) => ele.ryNo == data);
+        //         setFieldsValue({
+        //           ryNickName: item && item.ryNickName ? item.ryNickName : '',
+        //           id: item && item.id ? item.id : '',
+        //         });
+        //       }, 100);
+        //     },
+        //   },
+        //   colProps: {
+        //     span: 20,
+        //   },
+        // },
+        {
+          field: 'ryNickName',
+          component: 'Input',
+          label: '姓名',
+          // rules: [
+          //   {
+          //     required: true,
+          //     // @ts-ignore
+          //     validator: async (rule, value) => {
+          //       if (!value) {
+          //         return Promise.reject('请输入正确的人员编号');
+          //       }
+          //       return Promise.resolve();
+          //     },
+          //     trigger: 'change',
+          //   },
+          // ],
+          colProps: {
+            span: 20,
+          },
           componentProps: {
             disabled: true,
           },
         },
       ];
-      const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({
+      const [
+        registerForm,
+        { validate, resetFields, setFieldsValue, getFieldsValue, updateSchema },
+      ] = useForm({
         labelWidth: 110,
         schemas,
         showActionButtonGroup: false,
@@ -114,25 +153,21 @@
         // return option.value.indexOf(inputText.toUpperCase()) >= 0;
       }
       async function onSearch(searchText) {
-        if (searchText.length < 7) return;
-        const list = await getByRyId({ ryNo: searchText });
-        console.log('onSearch', list);
-        optionsName.value =
-          list.map((ele) => {
-            return { ...ele, value: ele.ryNo };
-          }) || [];
-        // console.log('paramList', optionsList);
-        // optionsName.value = optionsList || [];
+        const res = await getinnerByRyId({ ryNo: searchText });
+        console.log('res', res.data);
+        if (!res.data) return;
+        optionsName.value = res.data || {};
         updateSchema({
           field: 'ryNo',
           componentProps: {
-            options: optionsName.value,
+            options: [optionsName.value],
           },
         });
       }
       const handleSubmit = async () => {
+        const params = await validate();
         try {
-          const params = await validate();
+          console.log('params', params);
           await userShareAdd(params);
           closeModal();
           resetFields();