当前位置: 首页 > news >正文

南阳网站建站公司怎么查看wordpress版本

南阳网站建站公司,怎么查看wordpress版本,对网站建设起到计划和指导的作用,wordpress微信支付购买课程文章目录05-结算-收货地址-添加06-结算-收货地址-修改07-结算-提交订单05-结算-收货地址-添加 目的:实现收货地址的添加。 大致步骤: 独立组件,准备一个对话框完成表单布局完成确认添加操作 落的代码: 1.独立组件,准…

文章目录

    • 05-结算-收货地址-添加
    • 06-结算-收货地址-修改
    • 07-结算-提交订单


05-结算-收货地址-添加

目的:实现收货地址的添加。

大致步骤:

  • 独立组件,准备一个对话框
  • 完成表单布局
  • 完成确认添加操作

落的代码:

1.独立组件,准备一个对话框
src/views/member/pay/components/address-edit.vue 添加地址组件

<template><XtxDialog title="添加收货地址" v-model:visible="dialogVisible"><div class="address-edit">表单</div><template v-slot:footer><XtxButton type="gray" style="margin-right:20px">取消</XtxButton><XtxButton type="primary">确认</XtxButton></template></XtxDialog>
</template>
<script>
import { ref } from 'vue'
export default {name: 'AddressEdit',setup () {const dialogVisible = ref(false)// 打开函数const open = () => {dialogVisible.value = true}return { dialogVisible, open }}
}
</script>
<style scoped lang="less">
.address-edit {}
</style>

src/views/member/pay/components/checkout-address.vue 使用添加地址组件

    // 添加收货地址组件
+   const addressEdit = ref(null)
+   const openAddressEdit = () => {
+     addressEdit.value.open()
+   }return {showAddress,dialogVisible,selectedAddress,openDialog,confirmAddress,
+      addressEdit,
+      openAddressEdit}
<XtxButton @click="openAddressEdit()" class="btn">添加地址</XtxButton>

2.完成表单布局
src/views/member/pay/components/address-edit.vue 结构和样式

    <div class="xtx-form"><div class="xtx-form-item"><div class="label">收货人:</div><div class="field"><input class="input" placeholder="请输入收货人" /></div></div><div class="xtx-form-item"><div class="label">手机号:</div><div class="field"><input class="input" placeholder="请输入手机号" /></div></div><div class="xtx-form-item"><div class="label">地区:</div><div class="field"><XtxCity placeholder="请选择所在地区"/></div></div><div class="xtx-form-item"><div class="label">详细地址:</div><div class="field"><input class="input" placeholder="请输入详细地址" /></div></div><div class="xtx-form-item"><div class="label">邮政编码:</div><div class="field"><input class="input" placeholder="请输入邮政编码" /></div></div><div class="xtx-form-item"><div class="label">地址标签:</div><div class="field"><input class="input" placeholder="请输入地址标签,逗号分隔" /></div></div></div>
.xtx-dialog {:deep(.wrapper){width: 780px;.body {font-size: 14px;}}
}
.xtx-form {padding: 0;input {outline: none;&::placeholder {color: #ccc;}}
}
.xtx-city {width: 320px;:deep(.select) {height: 50px;line-height: 48px;display: flex;padding: 0 10px;justify-content: space-between;.placeholder {color: #ccc;}i {color: #ccc;font-size: 18px;}.value {font-size: 14px;}}:deep(.option) {top: 49px;}
}

src/components/library/xtx-city.vue 暴露占位文字

    placeholder: {type: String,default: '请选择配送地址'}
<span v-if="!fullName" class="placeholder">{{placeholder}}</span>

3.完成确认添加操作
src/views/member/pay/components/address-edit.vue 动态绑定表单

    // 表单数据const formData = reactive({receiver: '',contact: '',provinceCode: '',cityCode: '',countyCode: '',address: '',postalCode: '',addressTags: '',isDefault: 0,fullLocation: ''})// 选择地区const changeCty = (data) => {formData.provinceCode = data.provinceCodeformData.cityCode = data.cityCodeformData.countyCode = data.countyCodeformData.fullLocation = data.fullLocation}return { dialogVisible, open, formData, changeCty }
    <div class="xtx-form"><div class="xtx-form-item"><div class="label">收货人:</div><div class="field">
+          <input v-model="formData.receiver" class="input" placeholder="请输入收货人" /></div></div><div class="xtx-form-item"><div class="label">手机号:</div><div class="field">
+          <input v-model="formData.contact" class="input" placeholder="请输入手机号" /></div></div><div class="xtx-form-item"><div class="label">地区:</div><div class="field"><XtxCityplaceholder="请选择所在地区"
+            :fullLocation="form.fullLocation"
+            @change="changeCty"/></div></div><div class="xtx-form-item"><div class="label">详细地址:</div><div class="field">
+          <input  v-model="formData.address" class="input" placeholder="请输入详细地址" /></div></div><div class="xtx-form-item"><div class="label">邮政编码:</div><div class="field">
+          <input  v-model="formData.postalCode" class="input" placeholder="请输入邮政编码" /></div></div><div class="xtx-form-item"><div class="label">地址标签:</div><div class="field">
+          <input v-model="formData.addressTags" class="input" placeholder="请输入地址标签,逗号分隔" /></div></div></div>

src/api/order.js 接口函数

/*** 添加收货地址信息* @param {Object} address - 地址对象*/
export const addAddress = (address) => {return request('/member/address', 'post', address)
}

src/components/library/xtx-city.vue 提供占位文字属性

placeholder: {type: String,default: '请选择配送地区'}
<span class="placeholder" v-if="!fullLocation">{{placeholder}}</span>

src/views/member/pay/components/address-edit.vue 进行提交操作

    // 选择地区const changeCty = (data) => {formData.provinceCode = data.provinceCodeformData.cityCode = data.cityCodeformData.countyCode = data.countyCode
+      formData.fullLocation = data.fullLaction}
+    // 提交操作
+    const submit = () => {
+      addAddress(formData).then(data => {
+        // 添加成功
+        Message({ text: '添加收货地址成功', type: 'success' })
+        formData.id = data.result.id
+        dialogVisible.value = false
+        emit('on-success', formData)
+      })
+    }
+    return { dialogVisible, open, formData, changeCty, submit }

src/views/member/pay/components/checkout-address.vue 接受添加成功的地址对象

+    // 成功
+    const successHandler = (formData) => {
+      const json = JSON.stringify(formData)  // 需要克隆下,不然使用的是对象的引用
+      // eslint-disable-next-line vue/no-mutating-props
+      props.list.unshift(JSON.parse(json))
+    }return {showAddress,dialogVisible,selectedAddress,openDialog,confirmAddress,addressEdit,openAddressEdit,
+      successHandler}
    <!-- 添加地址 --><AddressEdit ref="addressEdit" @on-success="successHandler" />

src/views/member/pay/components/address-edit.vue 每次打开对话框清空表单

    // 打开函数const open = (form) => {dialogVisible.value = true
+      // 传人{}的时候就是清空,否则就是赋值
+      for (const key in formData) {
+        formData[key] = form[key]
+      }}

06-结算-收货地址-修改

目的:在添加收货地址组件基础之上完成修改逻辑。

大致步骤:

  • 打开对话框的时候传人当前需要修改的地址对象
  • 再添加组件open函数处,接收数据赋值给表单,修改标题。
  • 封装一个API接口函数实现修改,在提交事件中合并修改操作
  • 父组件修改数据

落的代码:

1.打开对话框的时候传人当前需需改的地址对象
src/views/member/pay/checkout-address.vue

<a @click="openAddressEdit(showAddress)" v-if="showAddress" href="javascript:;">修改地址</a>

2.再添加组件open函数处,接收数据赋值给表单,修改标题
src/views/member/pay/address-edit.vue

    const formData = reactive({
+      id: '',receiver: '',contact: '',provinceCode: '',cityCode: '',countyCode: '',
+      fullLocation: '',address: '',postalCode: '',addressTags: '',isDefault: 0})
<XtxDialog :title="(formData.id?'编辑':'添加')+'收货地址'" v-model:visible="dialogVisible">

3.封装一个API接口函数实现修改,在提交事件中合并修改操作
src/api/order.js

/*** 编辑收货地址信息* @param {Object} address - 地址对象*/
export const editAddress = (address) => {return request('/member/address', 'put', address)
}

src/views/member/pay/address-edit.vue

    // 打开对话框函数const open = (address) => {// 先填充数据 - 编辑if (address.id) {for (const key in formData) {formData[key] = address[key]}} else {// 先清空数据 - 添加for (const key in formData) {if (key !== 'isDefault') {formData[key] = ''}}}dialogVisible.value = true}
    // 提交操作const app = getCurrentInstance()const submit = () => {
+      if (formData.id) {
+        editAddress(formData).then(data => {
+          // 修改成功
+          Message(app, { text: '修改收货地址成功', type: 'success' })
+          dialogVisible.value = false
+          emit('on-success', formData)
+        })
+      } else {addAddress(formData).then(data => {// 添加成功Message(app, { text: '添加收货地址成功', type: 'success' })formData.id = data.result.iddialogVisible.value = falseemit('on-success', formData)})
+      }}

4.父组件修改数据
src/views/member/pay/components/checkout-address.vue

    // 成功const successHandler = (formData) => {
+      const editAddress = props.list.find(item => item.id === formData.id)
+      if (editAddress) {
+        // 修改
+        for (const key in editAddress) {
+          editAddress[key] = formData[key]
+        }
+      } else {// 添加const json = JSON.stringify(formData) // 需要克隆下,不然使用的是对象的引用// eslint-disable-next-line vue/no-mutating-propsprops.list.unshift(JSON.parse(json))
+      }

07-结算-提交订单

目的:汇总提交订单需要的数据,进行提交。

大致步骤:

  • 定义需要提交的数据对象
  • 绑定提交订单点击事件,进行提交即可

落的代码:

1.定义需要提交的数据对象
src/views/member/pay/checkout.vue

  setup () {const checkoutInfo = ref(null)findCheckoutInfo().then(data => {checkoutInfo.value = data.result
+      // 设置提交时候的商品
+      requestParams.goods = checkoutInfo.value.goods.map(item => {
+        return {
+          skuId: item.skuId,
+          count: item.count
+        }
+      })})// 需要提交的字段const requestParams = reactive({addressId: null,
+      deliveryTimeType: 1,
+      payType: 1,
+      buyerMessage: '',
+      goods: []})

2.绑定提交订单点击事件,进行提交即可
src/api/order.js 提交订单API函数

/*** 提交订单* @param {Object} order - 订单信息对象*/
export const createOrder = (order) => {return request('/member/order', 'post', order)
}

src/views/member/pay/checkout.vue 提交订单

        <!-- 提交订单 --><div class="submit"><XtxButton @click="submitOrder" type="primary">提交订单</XtxButton></div>
    // 提交订单const router = useRouter()const submitOrder = () => {if (!requestParams.addressId) return Message({ text: '请选择收货地址' })createOrder(requestParams).then(data => {router.push({ path: '/member/pay', query: { id: data.result.id } })})}return { checkoutInfo, changeAddress, submitOrder }
http://www.yayakq.cn/news/44289/

相关文章:

  • 网站建设有哪些软件有哪些鞍山贴吧
  • 杭州服装论坛网站建设兰州网站运营
  • 做招聘网站的怎么引流求职者电子商务主要就业岗位
  • 免费招聘网站推荐上海平台网站建设
  • 福州网站建设哪里有国家企业信用信息系统(河南)
  • 旅游网站建设方案书如何做阿里巴巴国际网站
  • 网站是用什么软件做的电子书新手学做网站
  • 2024年最新时政热点重庆seo小z博客
  • 周口网站制作哪家好wordpress 在浏览站点时显示工具栏
  • 3个典型网站建设公司抚顺少儿编程哪家好
  • 平谷做网站网站开发流程及进度安排
  • 网站开发说明书第三方做的网站不给源代码
  • 专业建设标准网站过度优化
  • 文山网站建设联系电话应用软件开发工具
  • 郑州网站优化培训机构网站投票系统怎么做
  • 企业网网站天津注册公司费用
  • 佛山营销型网站建设公司天美影像传媒有限公司招聘
  • 通辽做网站通过seo来赚钱网站开发怎样建立后台数据
  • 泉州网站的建设手机网页视频下载工具
  • 厦门加盟网站建设论坛与网站做优化哪个更好
  • 申请注册网站域名.商城濮阳网站建设推广
  • wordpress rpc 评论西安企业网站排名优化工具
  • 山东网站建设好不好保定网站建设推广
  • 手机网站建设软件王烨平
  • 网站建设柳市怎么用手机做一个网站
  • 永久域名注册网站做网站是58好还是百度好
  • 做网站是否过时了wordpress5.0发布
  • php不用框架怎么做网站陕西省住建网
  • 网站不备案支付宝接口长尾词挖掘免费工具
  • asp网站制作wordpress 来路插件