瀏覽代碼

feat(组件): 修改bug

tangning 2 年之前
父節點
當前提交
0591ae30e2

+ 4 - 4
src/api/operate/index.ts

@@ -52,8 +52,8 @@ enum Api {
   caseaddOrUpdate='/service/manage/case/addOrUpdate',
   caseList = '/service/manage/case/list',
   caseDel='/service/manage/case/del',
-  caseRelease='/service/manage/case/release',
-  caseWithdraw='/service/manage/case/withdraw',
+  caseRelease='/service/manage/case/isShow',
+  caseWithdraw='/service/manage/case/release',
 }
 
 /**
@@ -134,7 +134,7 @@ enum Api {
  });
   
  export const casePublicApi = (params: PageParams) =>
- defHttp.post<RentListGetResultModel>({
+ defHttp.get<RentListGetResultModel>({
    url: Api.caseWithdraw,
    params: params,
    // data: params,
@@ -144,7 +144,7 @@ enum Api {
    },
  });
  export const caseReleaseApi = (params: PageParams) =>
- defHttp.post<RentListGetResultModel>({
+ defHttp.get<RentListGetResultModel>({
    url: Api.caseRelease,
    params: params,
    // data: params,

+ 1 - 1
src/layouts/default/header/components/user-dropdown/index.vue

@@ -100,7 +100,7 @@
           title: '警告',
           content: `此操作将对当前账号修改密码, 修改成功后将会退出当前账号,是否继续?`,
           onOk: async () => {
-            openPasswordModal(true);
+            openPasswordModal(true,{});
           },
         });
         // openWindow(DOC_URL);

+ 22 - 1
src/layouts/default/header/components/user-dropdown/setpaswordModal.vue

@@ -15,7 +15,7 @@
 <script lang="ts">
   import { useI18n } from '/@/hooks/web/useI18n';
   import { encodeStr } from '/@/utils/encodeUtil';
-  import { defineComponent, nextTick } from 'vue';
+  import { defineComponent, nextTick, ref } from 'vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { updatePasswordApi } from '/@/api/staff/list';
@@ -33,6 +33,7 @@
       const { t } = useI18n();
       const userStore = useUserStore();
       const getUserInfo = userStore.getUserInfo;
+      const preventAutoFill = ref(true);
       const schemas: FormSchema[] = [
         {
           field: 'id',
@@ -47,6 +48,9 @@
           labelWidth: 120,
           required: true,
           colProps: { span: 18 },
+          componentProps:{
+            readonly:preventAutoFill.value,
+          }
         },
         {
           field: 'password',
@@ -75,6 +79,7 @@
           componentProps:{
             maxLength: 16,
             minLength: 8,
+            readonly:preventAutoFill.value,
             placeholder:"请输入8-16位数字、字母大小写组合"
           },
           colProps: { span: 18 },
@@ -87,6 +92,7 @@
           setFieldsValue,
           validate,
           resetFields,
+          updateSchema,
           // setProps
         },
       ] = useForm({
@@ -103,9 +109,24 @@
       });
 
       function onDataReceive(data) {
+        preventAutoFill.value = false
+        setTimeout(()=>{
+          updateSchema([{
+            field: 'oldPassword',
+            componentProps:{
+              readonly:false,
+            }
+          },{
+            field: 'password',
+            componentProps:{
+              readonly:false,
+            }
+          }])
+        },500)
         setFieldsValue({
           id: data.id,
         });
+
       }
       async function handSubmit() {
         console.log('getUserInfo',getUserInfo)

+ 41 - 29
src/views/account/overview/AddModal.vue

@@ -55,12 +55,49 @@
             required: true,
           },
           {
+            field: 'memberLevels',
+            component: 'Select',
+            label: '权益类型',
+            required: true,
+            defaultValue:'PR',
+            componentProps: {
+              options: [
+                {
+                  label: '专业会员',
+                  value: 'PR',
+                  key: '0',
+                },
+                {
+                  label: '高级会员',
+                  value: 'SE',
+                  key: '1',
+                },
+              ],
+              onChange: (memberLevels) => {
+                const { counts = 1 } = getFieldsValue()
+                setFieldsValue({
+                  incrementEndTime: dayjs().add(counts,memberLevels=='SE'?'month':'year').format('YYYY-MM-DD'),
+                });
+              },
+            },
+            colProps: {
+              span: 20,
+            },
+          },
+          {
             field: 'counts',
             component: 'InputNumber',
             label: '新增权益数',
             required: true,
+            defaultValue:1,
             componentProps: {
               min:1,
+              onChange: (data) => {
+                const { memberLevels } = getFieldsValue()
+                setFieldsValue({
+                  incrementEndTime: dayjs().add(data,memberLevels=='SE'?'month':'year').format('YYYY-MM-DD'),
+                });
+              },
             },
             colProps: {
               span: 22,
@@ -71,7 +108,9 @@
             component: 'DatePicker',
             label: '到期日期',
             required: true,
+            defaultValue:dayjs().add(1,'month').format('YYYY-MM-DD'),
             componentProps: {
+              disabled:true,
               valueFormat: 'YYYY-MM-DD',
               format: 'YYYY-MM-DD',
               disabledDate: (current) => {
@@ -79,34 +118,6 @@
               },
             },
           },
-          // {
-          // field: 'year',
-          // component: 'Select',
-          // label: '到期日期',
-          // colProps: {
-          //   span: 22,
-          // },
-          // required: true,
-          // componentProps: {
-          //   options:[{
-          //     label: '1年',
-          //     value: 1,
-          //     key: '1',
-          //   },{
-          //     label: '2年',
-          //     value: 2,
-          //     key: '2',
-          //   },{
-          //     label: '3年',
-          //     value: 3,
-          //     key: '3',
-          //   },{
-          //     label: '4年',
-          //     value: 4,
-          //     key: '4',
-          //   }]
-          // },
-          // },
           {
             field: 'count',
             component: 'InputNumber',
@@ -121,7 +132,7 @@
           }
       ];
 
-      const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({
+      const [registerForm, { getFieldsValue, validate, resetFields, setFieldsValue, updateSchema }] = useForm({
         labelWidth: 120,
         schemas:schemas,
         showActionButtonGroup: false,
@@ -144,6 +155,7 @@
           {field: 'count',ifShow:fileFlow.type == 'down',},
           {field: 'incrementEndTime',ifShow:fileFlow.type == 'equity',},
           {field: 'counts',ifShow:fileFlow.type == 'equity',},
+          {field: 'type',ifShow:fileFlow.type == 'equity',},
         ])
       }
       const handleSubmit = async () => {

+ 1 - 1
src/views/account/product/data.tsx

@@ -48,7 +48,7 @@ export const columns:  BasicColumn[] = [
         h(Time, {
           value: record.createTime,
           mode: 'datetime',
-        })
+        })||'-'
       );
     },
   },

+ 1 - 1
src/views/customer/scene.vue

@@ -174,7 +174,7 @@
               h(Time, {
                 value: record.createTime,
                 mode: 'datetime',
-              })
+              })||'-'
             );
           },
         },

+ 5 - 5
src/views/operate/caseList.vue

@@ -65,7 +65,7 @@ import {
 } from '/@/components/Table';
 import { PageWrapper } from '/@/components/Page';
 import { Time } from '/@/components/Time';
-import { caseListApi, NewDisplay, casePublicApi, caseDelApi } from '/@/api/operate';
+import { caseListApi, caseReleaseApi, casePublicApi, caseDelApi } from '/@/api/operate';
 import {  Descriptions, Switch, Tabs } from 'ant-design-vue';
 import { useModal } from '/@/components/Modal';
 import { useI18n } from '/@/hooks/web/useI18n';
@@ -155,14 +155,14 @@ export default defineComponent({
       },
       {
         title: '是否显示',
-        dataIndex: 'display',
+        dataIndex: 'isShow',
         width: 80,
         customRender: ({ record }) => {
           if (!Reflect.has(record, 'pendingStatus')) {
             record.pendingStatus = false;
           }
           return h(Switch, {
-            checked: record.display === 1,
+            checked: record.isShow === 1,
             checkedChildren: '是',
             unCheckedChildren: '否',
             loading: false,
@@ -170,8 +170,8 @@ export default defineComponent({
               record.pendingStatus = true;
               const id: string = record.id || '';
               const newStatus = checked ? 1 : 0;
-              Reflect.set(record, 'display', newStatus);
-              await NewDisplay({ id: id, display: newStatus });
+              Reflect.set(record, 'isShow', newStatus);
+              await caseReleaseApi({ id: id, isShow: newStatus });
               createMessage.success(t('common.optSuccess'));
               // reload()
             },

+ 11 - 8
src/views/operate/components/case/addModal.vue

@@ -151,7 +151,7 @@ export default defineComponent({
         rules: [{ required: true, message: t('common.uploadMessge') }],
         // helpMessage: t('routes.corporation.uploadHelp'),
         itemProps: {
-          validateTrigger: 'onBlur',
+          validateTrigger: 'blur',
         },
         componentProps: {
           api: uploadApi,
@@ -255,31 +255,34 @@ export default defineComponent({
     async function onDataReceive(data) {
       modelRef.value = data;
       resetFields();
-      if (data.newType) {
-        NewTypeChange(data.newType);
-      }
+      // if (data.newType) {
+      //   NewTypeChange(data.newType);
+      // }
       if (data.id) {
         title.value = '编辑案例';
         const detail = data;
+        console.log('detail',detail,detail.iconIds && JSON.parse(detail.iconIds))
         setFieldsValue({
           ...detail,
-          newsUrl: detail.newType == 1 ? detail.content : '',
-          content: detail.newType != 1 ? detail.content : '',
+          iconIdList:detail.iconIds && JSON.parse(detail.iconIds),
+          newsUrl: detail.newType == 1 ? detail.detailContent : '',
+          detailContent: detail.newType != 1 ? detail.detailContent : '',
           coverImageUrl: detail.coverImageUrl ? [detail.coverImageUrl] : '',
           logo: detail.logo ? [detail.logo] : '',
         });
       } else {
         title.value = '新增案例';
         setFieldsValue({
-          content: '',
+          detailContent: '',
           ...data,
         });
       }
+
     }
     function NewTypeChange(val) {
       console.log('NewTypeChange', val);
       updateSchema([
-        { field: 'content', ifShow: val == 2 },
+        { field: 'detailContent', ifShow: val == 2 },
         { field: 'newsUrl', ifShow: val != 2 },
       ]);
     }

+ 1 - 1
src/views/productOperation/cameraScene.vue

@@ -169,7 +169,7 @@
               h(Time, {
                 value: record.algorithmTime,
                 mode: 'datetime',
-              })
+              })||'-'
             );
           },
         },

+ 23 - 2
src/views/staff/detailsModal.vue

@@ -8,7 +8,7 @@
     height="500"
     @ok="handleOk"
   >
-    <BasicForm @register="registerForm" :model="modelRef" />
+    <BasicForm @register="registerForm" />
   </BasicModal>
 </template>
 <script lang="ts">
@@ -30,6 +30,7 @@
       const modelRef = ref({});
       const userStore = useUserStore();
       const userinfo = computed(() => userStore.getUserInfo);
+      const preventAutoFill = ref(true);
       const { companyId } = userinfo.value;
       console.log('companyId', companyId);
       const permListOptions = computed(() => {
@@ -109,6 +110,7 @@
             placeholder:"请输入字母或数字组合",
             autoComplete:'off',
             maxLength: 15,
+            readonly:preventAutoFill.value
           },
           rules: [
             {
@@ -160,6 +162,7 @@
           componentProps:{
             placeholder:"请输入8-16位数字、字母大小写组合",
             maxLength: 16,
+            readonly:preventAutoFill.value,
             minLength: 8,
             autoComplete:'off',
           }
@@ -188,6 +191,7 @@
       function onDataReceive(data) {
         // 方式1;
         console.log('useModalInner', data);
+        // preventAutoFill.value = false
         setTimeout(()=>{
             console.log('useModalInner', data);
             setFieldsValue({
@@ -221,10 +225,24 @@
           {
             field: 'userName',
             ifShow:data.id ? false:true,
+            componentProps: {
+              placeholder:"请输入字母或数字组合",
+              autoComplete:'off',
+              readonly:false,
+              maxLength: 15,
+            },
           },
           {
             field: 'password',
             ifShow:data.id ? false:true,
+            componentProps:{
+              disabled: data.id ? (data.roleId != 2 ? true : false) : false,
+              placeholder:"请输入8-16位数字、字母大小写组合",
+              maxLength: 16,
+              minLength: 8,
+              readonly:false,
+              autoComplete:'off',
+            }
           },
           {
             field: 'companyId',
@@ -243,7 +261,9 @@
           },
         ];
         title.value = data.id ? '编辑账号' : '新增账号';
-        updateSchema(setSchema);
+        setTimeout(()=>{
+          updateSchema(setSchema);
+        },500)
       }
       function companyIdChange(companyId) {
         // resetFields(['permList'])
@@ -281,6 +301,7 @@
       return {
         register,
         title,
+        preventAutoFill,
         schemas,
         registerForm,
         modelRef,

+ 2 - 1
src/views/staff/setpaswordModal.vue

@@ -15,7 +15,7 @@
 <script lang="ts">
   import { useI18n } from '/@/hooks/web/useI18n';
   import { encodeStr } from '/@/utils/encodeUtil';
-  import { defineComponent, nextTick } from 'vue';
+  import { defineComponent, nextTick, ref } from 'vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { updatePasswordApi } from '/@/api/staff/list';
@@ -30,6 +30,7 @@
     },
     setup(props) {
       const { t } = useI18n();
+      const preventAutoFill = ref(true);
       const schemas: FormSchema[] = [
         {
           field: 'id',

+ 2 - 2
src/views/sys/login/Login.vue

@@ -1,10 +1,10 @@
 <template>
   <div :class="prefixCls" class="relative w-full h-full px-4">
-    <AppLocalePicker
+    <!-- <AppLocalePicker
       class="absolute text-white top-4 right-4 enter-x xl:text-gray-600"
       :showText="false"
       v-if="!sessionTimeout && showLocale"
-    />
+    /> -->
     <AppDarkModeToggle class="absolute top-3 right-7 enter-x" v-if="!sessionTimeout" />
 
     <span class="-enter-x xl:hidden">

+ 1 - 1
src/views/system/role/index.vue

@@ -5,7 +5,7 @@
         <a-button type="primary" @click="handleCreate" v-if="getCheckPerm('role-add')"> 新增角色 </a-button>
       </template>
       <template #action="{ record }">
-        <TableAction
+        <TableAction v-if="record.id != 1"
           :actions="[
             {
               label: t('common.edit'),

+ 30 - 2
src/views/system/role/role.data.ts

@@ -1,12 +1,15 @@
 import { BasicColumn } from '/@/components/Table';
 import { FormSchema } from '/@/components/Table';
 import { h } from 'vue';
-// import { Switch } from 'ant-design-vue';
+import { Switch } from 'ant-design-vue';
 import { Time } from '/@/components/Time';
 import { getAllRoleList } from '/@/api/sys/system'
-// import { ListAllCompanyApi } from '/@/api/corporation/list';
+import { saveRoleApi } from '/@/api/sys/system';
+  // import { ListAllCompanyApi } from '/@/api/corporation/list';
+import { useMessage } from '/@/hooks/web/useMessage';
 import { useI18n } from '/@/hooks/web/useI18n';
   const { t } = useI18n();
+  const { createMessage } = useMessage();
 
 export const columns: BasicColumn[] = [
   // {
@@ -48,6 +51,31 @@ export const columns: BasicColumn[] = [
       });
     },
   },
+  {
+    title: '状态',
+    dataIndex: 'status',
+    width: 80,
+    customRender: ({ record }) => {
+      if (!Reflect.has(record, 'pendingStatus')) {
+        record.pendingStatus = false;
+      }
+      return h(Switch, {
+        checked: record.status === 1,
+        disabled:record.id === 1,
+        checkedChildren: '启用',
+        unCheckedChildren: '禁用',
+        loading: false,
+        onChange: async (checked: boolean) => {
+          record.pendingStatus = true;
+          const newStatus = checked ? 1 : 0;
+          Reflect.set(record, 'status', newStatus);
+          await saveRoleApi({ ...record, isShow: newStatus });
+          createMessage.success(t('common.optSuccess'));
+          // reload()
+        },
+      });
+    },
+  },
   // {
   //   title: t('routes.system.remarks'),
   //   dataIndex: 'remark',