Browse Source

update code

kevin.T 2 months ago
parent
commit
e539851416

+ 1 - 0
packages/merchant/src/core/libs/messages.ts

@@ -45,6 +45,7 @@ export const messages = {
       imageUrl: '图片URL',
       maritalStatus: '婚姻状态',
       maritalStatusStr: '婚姻状态',
+      retryStatus: '绑定关系',
     },
     designerFamilyInfo: {
       id: 'ID',

+ 8 - 1
packages/merchant/src/manifest.json

@@ -87,7 +87,14 @@
     "setting": {
       "urlCheck": false
     },
-    "usingComponents": true
+    "usingComponents": true,
+    "requiredPrivateInfos": [
+      "getLocation", "chooseLocation"
+    ],
+    "permission": {
+      "scope.userLocation": {
+        "desc": "你的位置信息将用于小程序位置接口的效果展示"
+    }
   },
   "mp-alipay": {
     "usingComponents": true,

+ 13 - 1
packages/merchant/src/pages.json

@@ -69,6 +69,10 @@
       }
     },
     {
+      "path": "pages/login/forget",
+      "type": "page"
+    },
+    {
       "path": "pages/mine/index",
       "type": "page",
       "layout": "tabbar",
@@ -198,6 +202,14 @@
       }
     },
     {
+      "path": "pages/login/forget",
+      "type": "page",
+      "style": {
+        "navigationBarTitleText": "修改密码",
+        "navigationBarBackgroundColor": "#fff"
+      }
+    },
+    {
       "path": "pages/common/orders/detail/index",
       "type": "page",
       "style": {
@@ -272,4 +284,4 @@
     }
   ],
   "subPackages": []
-}
+}

+ 112 - 0
packages/merchant/src/pages/login/forget.vue

@@ -0,0 +1,112 @@
+<route lang="json">
+{ "style": { "navigationBarTitleText": "修改密码", "navigationBarBackgroundColor": "#fff" } }
+</route>
+<script setup lang="ts">
+import { DataFormSchema } from '@/components/data-form'
+import { updatePassword, UpdatePasswordData } from '@/core/libs/requests'
+import DataForm from '@/components/data-form.vue'
+import BottomAppBar from '@/components/bottom-app-bar.vue'
+import { ComponentExposed } from 'vue-component-type-helpers'
+import { useUserStore } from '@/store'
+import { storeToRefs } from 'pinia'
+import { requestToast } from '@designer-hub/app/src/core/utils/common'
+
+const userStore = useUserStore()
+const { userInfo } = storeToRefs(userStore)
+const dataFormRef = ref<ComponentExposed<typeof DataForm>>()
+const formData = ref({
+  oldPassword: '',
+  newPassword: '',
+  confirmPassword: '',
+})
+const schema = ref<DataFormSchema>({
+  oldPassword: {
+    type: 'TextField',
+    label: '旧密码',
+    labelWidth: 90,
+    required: true,
+    props: {
+      placeholder: '请输入旧密码',
+    },
+  },
+  newPassword: {
+    type: 'TextField',
+    label: '新密码',
+    labelWidth: 90,
+    required: true,
+    props: {
+      placeholder: '请输入新密码',
+    },
+  },
+  confirmPassword: {
+    type: 'TextField',
+    label: '再次输入',
+    labelWidth: 90,
+    required: true,
+    props: {
+      placeholder: '请再次输入新密码',
+    },
+  },
+})
+const confirmPasswordValidator = (val: any) => {
+  if (!val) {
+    return false
+  }
+  if (formData.value?.newPassword?.trim() === '') {
+    return Promise.reject('请输入新密码')
+  }
+  if (formData.value?.newPassword !== formData.value?.confirmPassword) {
+    return Promise.reject('输入两次新密码不一致')
+  }
+}
+const rules = ref({
+  oldPassword: [{ required: true, message: '请输入旧密码' }],
+  newPassword: [{ required: true, message: '请输入新密码' }],
+  confirmPassword: [
+    { required: true, message: '请再次输入新密码', validator: confirmPasswordValidator },
+  ],
+})
+const submitDisabled = computed(() => ({}))
+const handleSubmit = async () => {
+  // const data = await dataFormRef.value?.validate()
+  if (!(await dataFormRef.value!.validate())) {
+    return false
+  }
+  console.log(1111)
+  if (!userInfo.value.userId) {
+    return false
+  }
+  const { code } = await requestToast(
+    () =>
+      updatePassword({
+        ...formData.value,
+        appLoginType: 3,
+        id: userInfo.value.userId ?? 0,
+      }),
+    { success: true, successTitle: '修改成功' },
+  )
+  if (code === 0) {
+    userStore.clearUserInfo()
+    uni.reLaunch({ url: '/pages/login/index' })
+  }
+}
+</script>
+
+<template>
+  <div class="flex-grow bg-white px-2 pt-8">
+    <DataForm
+      ref="dataFormRef"
+      :schema="schema"
+      :rules="rules"
+      v-model="formData"
+      direction="horizontal"
+    ></DataForm>
+    <BottomAppBar fixed placeholder>
+      <wd-button :disabled="dataFormRef?.submitDisabled" :round="false" block @click="handleSubmit">
+        确认
+      </wd-button>
+    </BottomAppBar>
+  </div>
+</template>
+
+<style scoped lang="scss"></style>

+ 33 - 8
packages/merchant/src/pages/mine/index.vue

@@ -45,7 +45,7 @@ const status = ref<any>({
   '3': '已取消',
   '4': '待交付',
 })
-const verifyTime = ref<Date[]>([])
+const verifyTime = ref<Date[] | number[]>([])
 const filterQuery = ref<{
   orderStatus?: number | null
   dateTimeType?: number
@@ -75,12 +75,14 @@ const radioChange = (value: number) => {
   if (value !== 4) {
     filterQuery.value.verifyTime = ''
     verifyTime.value = []
+  } else {
+    verifyTime.value = [new Date().getTime(), new Date().getTime()]
   }
 }
-function handleConfirm(time: any) {
-  console.log(time)
-  if (time.length) {
-    filterQuery.value.verifyTime = `${dayjs(time[0].format('YYYY-MM-DD hh:mm:ss'))},${dayjs(time[0].format('YYYY-MM-DD hh:mm:ss'))}`
+function handleConfirm({ value }) {
+  if (value.length) {
+    filterQuery.value.verifyTime = `${dayjs(value[0]).format('YYYY-MM-DD hh:mm:ss')},${dayjs(value[1]).format('YYYY-MM-DD hh:mm:ss')}`
+    console.log(filterQuery.value.verifyTime)
   } else {
     filterQuery.value.verifyTime = ''
   }
@@ -214,7 +216,12 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
       <wd-action-sheet v-model="publishState" @close="publishState = false">
         <view class="flex flex-col p-4 overflow-y-auto">
           <SectionHeading custom-class="mb-[10px]" title="交易时间"></SectionHeading>
-          <wd-radio-group shape="button" v-model="filterQuery.dateTimeType" @change="radioChange">
+          <wd-radio-group
+            cell
+            shape="button"
+            v-model="filterQuery.dateTimeType"
+            @change="radioChange"
+          >
             <template
               v-for="(tag, index) in [
                 { label: '本月', value: 1 },
@@ -231,13 +238,14 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
           </wd-radio-group>
           <SectionHeading custom-class="my-[10px]" title="自定义"></SectionHeading>
           <wd-datetime-picker
+            custom-value-class="text-[#333] child-value w=[100%]"
             :disabled="filterQuery.dateTimeType !== 4"
             v-model="verifyTime"
             type="date"
             @confirm="handleConfirm"
           ></wd-datetime-picker>
           <SectionHeading custom-class="my-[10px]" title="订单状态"></SectionHeading>
-          <wd-radio-group shape="button" v-model="filterQuery.orderStatus">
+          <wd-radio-group cell shape="button" v-model="filterQuery.orderStatus">
             <template
               v-for="(tag, index) in [
                 { label: '已报名', value: 0 },
@@ -263,4 +271,21 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
   </view>
 </template>
 
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+::v-deep .child-value {
+  > view,
+  > div {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    > text {
+      background-color: #f0f0f0;
+      border-radius: 4px;
+      width: 40%;
+      line-height: 30px;
+      padding-left: 10px;
+      display: inline-block;
+    }
+  }
+}
+</style>

+ 1 - 0
packages/merchant/src/types/uni-pages.d.ts

@@ -6,6 +6,7 @@
 interface NavigateToOptions {
   url: "/pages/login/index" |
        "/pages/home/index" |
+       "/pages/login/forget" |
        "/pages/mine/index" |
        "/pages/agent/designer/detail" |
        "/pages/agent/designer/index" |