浏览代码

feat:修改创建订单问题

颜琼丽 2 天之前
父节点
当前提交
26d0e81d15

+ 24 - 24
jd-logistics-ui-v3/src/views/logistics/book/index.vue

@@ -1,14 +1,14 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="120px">
-      <el-form-item label="公司名称" prop="companyName">
-        <el-input
-            v-model="queryParams.companyName"
-            placeholder="请输入公司名称"
-            clearable
-            @keyup.enter="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="公司名称" prop="companyName">-->
+<!--        <el-input-->
+<!--            v-model="queryParams.companyName"-->
+<!--            placeholder="请输入公司名称"-->
+<!--            clearable-->
+<!--            @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
       <el-form-item label="联系人姓名" prop="contactName">
         <el-input
             v-model="queryParams.contactName"
@@ -88,27 +88,27 @@
 
     <el-table v-loading="loading" :data="bookList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="联系人姓名" align="center" prop="contactName" width="120"/>
-      <el-table-column label="联系人电话" align="center" prop="contactPhone" width="120"/>
-      <el-table-column label="公司名称" align="center" prop="companyName" width="180"/>
-      <el-table-column label="省/市/区(县)" align="center"  width="200">
+      <el-table-column label="联系人姓名" align="center" prop="contactName" width="180"/>
+      <el-table-column label="联系人电话" align="center" prop="contactPhone" width="180"/>
+<!--      <el-table-column label="公司名称" align="center" prop="companyName" width="180"/>-->
+      <el-table-column label="省/市/区(县)" align="center"  width="280">
         <template #default="scope">
           {{scope.row.provinceName}}/{{scope.row.cityName}}/{{scope.row.countyName}}
         </template>
       </el-table-column>
-      <el-table-column label="详细地址" align="center" prop="detailedAddress" width="250"/>
-      <el-table-column label="是否默认" align="center" prop="defaultFlag" width="80" >
+      <el-table-column label="详细地址" align="center" prop="detailedAddress" width="350"/>
+      <el-table-column label="是否默认" align="center" prop="defaultFlag" width="180" >
         <template #default="scope">
           <dict-tag :options="yes_or_no" :value="scope.row.defaultFlag" />
         </template>
       </el-table-column>
       <el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180"/>
-      <el-table-column label="备注" align="center" prop="remark" width="180"/>
+<!--      <el-table-column label="更新时间" align="center" prop="updateTime" width="180"/>-->
+<!--      <el-table-column label="备注" align="center" prop="remark" width="180"/>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="180">
         <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:book:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:book:remove']">删除</el-button>
+          <el-button link type="primary"  @click="handleUpdate(scope.row)" v-hasPermi="['system:book:edit']">修改</el-button>
+          <el-button link type="primary"   @click="handleDelete(scope.row)" v-hasPermi="['system:book:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -124,9 +124,9 @@
     <!-- 添加或修改地址簿管理对话框 -->
     <el-dialog :title="title" v-model="open" width="800px" append-to-body>
       <el-form ref="bookRef" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="公司名称" prop="companyName">
-          <el-input v-model="form.companyName" placeholder="请输入公司名称" maxlength="20" show-word-limit />
-        </el-form-item>
+<!--        <el-form-item label="公司名称" prop="companyName">-->
+<!--          <el-input v-model="form.companyName" placeholder="请输入公司名称" maxlength="20" show-word-limit />-->
+<!--        </el-form-item>-->
         <el-form-item label="联系人姓名" prop="contactName">
           <el-input v-model="form.contactName" placeholder="请输入联系人姓名" maxlength="20" show-word-limit />
         </el-form-item>
@@ -159,9 +159,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" maxlength="500" show-word-limit type="textarea" :rows="3" />
-        </el-form-item>
+<!--        <el-form-item label="备注" prop="remark">-->
+<!--          <el-input v-model="form.remark" placeholder="请输入备注" maxlength="500" show-word-limit type="textarea" :rows="3" />-->
+<!--        </el-form-item>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">

+ 2 - 2
jd-logistics-ui-v3/src/views/logistics/order/components/PickupTimeCascader.vue

@@ -196,7 +196,7 @@ const dateList = computed(() => {
 // 计算当前时间20分钟后的时间
 const twentyMinutesLater = computed(() => {
   const now = new Date()
-  now.setMinutes(now.getMinutes() + 10)
+  now.setMinutes(now.getMinutes() + 3)
   return now
 })
 
@@ -255,7 +255,7 @@ const withinOneHourSlot = computed(() => {
   return {
     start: startHour + startMinute / 60,
     end: endHour + endMinute / 60,
-    label: `一小时内 (${startStr}-${endStr})`,
+    label: `一小时内`, //  label: `一小时内 (${startStr}-${endStr})`
     value: `${startStr}-${endStr}`,
     isWithinOneHour: true,
     startHour: startHour,

+ 32 - 27
jd-logistics-ui-v3/src/views/logistics/order/createOrder.vue

@@ -335,7 +335,7 @@
       </div>
       <div class="form-content">
         <div class="value-services-grid">
-          <div class="service-item" v-if="productType == '1' || productType == '2'">
+          <div class="service-item" v-if="productType == '1'">
             <span class="service-label">包装服务</span>
             <el-switch
                 v-model="valueServices.packaging"
@@ -344,7 +344,7 @@
             />
           </div>
 
-          <div class="service-item" v-if="productType == '1'">
+          <div class="service-item" v-if="productType == '1' || productType == '2'">
             <span class="service-label">保价</span>
             <div class="insurance-wrapper">
               <el-switch
@@ -371,14 +371,14 @@
             </div>
           </div>
 
-          <div class="service-item">
-            <span class="service-label">超长超重</span>
-            <el-switch
-                v-model="valueServices.overweight"
-                size="large"
-                active-color="#1890ff"
-            />
-          </div>
+<!--          <div class="service-item">-->
+<!--            <span class="service-label">超长超重</span>-->
+<!--            <el-switch-->
+<!--                v-model="valueServices.overweight"-->
+<!--                size="large"-->
+<!--                active-color="#1890ff"-->
+<!--            />-->
+<!--          </div>-->
 
           <div class="service-item" v-if="productType == '1'">
             <span class="service-label">签单返还</span>
@@ -586,7 +586,7 @@ const agreed = ref(true)
 const senderRules = {
   contactName: [
     { required: true, message: '请输入寄件人姓名', trigger: 'blur' },
-    { min: 2, max: 20, message: '姓名长度在2-20个字符之间', trigger: 'blur' }
+    { min: 1, max: 20, message: '姓名长度在1-20个字符之间', trigger: 'blur' }
   ],
   contactPhone: [
     { required: true, message: '请输入寄件人电话', trigger: 'blur' },
@@ -607,14 +607,14 @@ const senderRules = {
   ],
   detailedAddress: [
     { required: true, message: '请输入详细地址', trigger: 'blur' },
-    { min: 5, max: 100, message: '地址长度在5-100个字符之间', trigger: 'blur' }
+    { min: 3, max: 100, message: '地址长度在3-100个字符之间', trigger: 'blur' }
   ]
 }
 
 const receiverRules = {
   contactName: [
     { required: true, message: '请输入收件人姓名', trigger: 'blur' },
-    { min: 2, max: 20, message: '姓名长度在2-20个字符之间', trigger: 'blur' }
+    { min: 1, max: 20, message: '姓名长度在1-20个字符之间', trigger: 'blur' }
   ],
   contactPhone: [
     { required: true, message: '请输入收件人电话', trigger: 'blur' },
@@ -635,7 +635,7 @@ const receiverRules = {
   ],
   detailedAddress: [
     { required: true, message: '请输入详细地址', trigger: 'blur' },
-    { min: 5, max: 100, message: '地址长度在5-100个字符之间', trigger: 'blur' }
+    // { min: 3, max: 100, message: '地址长度在3-100个字符之间', trigger: 'blur' }
   ]
 }
 
@@ -651,9 +651,11 @@ const itemInfoRules = {
       validator: (rule, value, callback) => {
         if (value <= 0) {
           callback(new Error('重量必须大于0'))
-        } else if (value > 1000) {
-          callback(new Error('重量不能超过1000kg'))
-        } else {
+        }
+        // else if (value > 1000) {
+        //   callback(new Error('重量不能超过1000kg'))
+        // }
+        else {
           callback()
         }
       },
@@ -666,9 +668,11 @@ const itemInfoRules = {
       validator: (rule, value, callback) => {
         if (value <= 0) {
           callback(new Error('体积必须大于0'))
-        } else if (value > 100) {
-          callback(new Error('体积不能超过100m³'))
-        } else {
+        }
+        // else if (value > 100) {
+        //   callback(new Error('体积不能超过100m³'))
+        // }
+        else {
           callback()
         }
       },
@@ -681,9 +685,11 @@ const itemInfoRules = {
       validator: (rule, value, callback) => {
         if (value <= 0) {
           callback(new Error('件数必须大于0'))
-        } else if (value > 999) {
-          callback(new Error('件数不能超过999件'))
-        } else {
+        }
+        // else if (value > 999) {
+        //   callback(new Error('件数不能超过999件'))
+        // }
+        else {
           callback()
         }
       },
@@ -1179,20 +1185,20 @@ const submitOrder = async () => {
   console.log('提交订单数据:', orderData)
   try {
     const response = await addOrder(orderData)
-    proxy.$modal.closeLoading()
     if(response.code == 200){
       console.log('订单提交成功:', response.data)
       ElMessage.success('订单创建成功!')
       close()
     } else {
       isSubmit.value = false
-      ElMessage.error(response.msg || '订单创建失败!')
+      // ElMessage.error(response.msg || '订单创建失败!')
     }
   } catch (error) {
     isSubmit.value = false
     console.error('订单提交失败:', error)
-    ElMessage.error('订单提交失败,请重试')
+    // ElMessage.error(error.value)
   }finally {
+    proxy.$modal.closeLoading()
   }
 }
 
@@ -1200,7 +1206,6 @@ const submitOrder = async () => {
   try {
     const response = await getDefaultAddress()
     if(response.code == 200){
-      console.log('订单提交成功:', response.data)
       addressBookType.value = 'sender'
       applyAddress(response.data)
     } else {

+ 40 - 28
jd-logistics-ui-v3/src/views/logistics/order/index.vue

@@ -107,17 +107,22 @@
       <el-table-column label="外部运单号" align="center" prop="externalWaybillNo" width="180"/>
       <el-table-column label="订单类型" align="center" prop="orderType" width="120" >
         <template #default="scope">
-          <el-tag :type="scope.row.orderType == '1' ? 'primary' : 'success'" size="small">
-            {{scope.row.orderType == '1' ? "京东" : '顺丰'}}
+          <el-tag :type="scope.row.orderType === 1 ? 'primary' : 'success'" size="small">
+            {{ scope.row.orderType === 1 ? "京东" : '顺丰' }}
           </el-tag>
         </template>
+
       </el-table-column>
       <el-table-column label="快递类型" align="center" prop="productCode" width="120">
-        <template #default="scope">
-          <dict-tag
-              :options="scope.row.orderType == 2 ? sf_logistics_product_code : jd_logistics_product_code"
+        <template #default="scope" >
+          <dict-tag v-if="scope.row.orderType === 1"
+              :options="jd_logistics_product_code"
               :value="scope.row.productCode"
           />
+          <dict-tag v-else
+                    :options="sf_logistics_product_code"
+                    :value="scope.row.productCode"
+          />
         </template>
       </el-table-column>
       <el-table-column label="发件人" align="center" width="200">
@@ -172,12 +177,11 @@
           <el-button
               v-if="scope.row.orderStatus === 1"
               link type="warning"
-              icon="Close"
               @click="handleCancelOrder(scope.row)"
               v-hasPermi="['system:order:edit']"
           >取消下单</el-button>
-          <el-button link type="primary" icon="View" @click="handleView(scope.row)" >查看详情</el-button>
-          <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:order:remove']">删除</el-button>
+          <el-button link type="primary" @click="handleView(scope.row)" >查看详情</el-button>
+<!--          <el-button link type="danger"  @click="handleDelete(scope.row)" v-hasPermi="['system:order:remove']">删除</el-button>-->
         </template>
       </el-table-column>
     </el-table>
@@ -667,9 +671,14 @@
 
           <el-tab-pane label="其他信息" name="other">
             <el-row :gutter="20">
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="父运单ID" prop="parentWaybillId">-->
+<!--                  <el-input v-model="form.parentWaybillId" placeholder="请输入父运单ID" />-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
               <el-col :span="12">
-                <el-form-item label="父运单ID" prop="parentWaybillId">
-                  <el-input v-model="form.parentWaybillId" placeholder="请输入父运单ID" />
+                <el-form-item label="取消原因" prop="cancelReason">
+                  <el-input v-model="form.cancelReason" placeholder="请输入取消原因" />
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -682,21 +691,21 @@
               </el-col>
             </el-row>
 
-            <el-row :gutter="20">
-              <el-col :span="12">
-                <el-form-item label="是否调账" prop="adjustFlag">
-                  <el-select v-model="form.adjustFlag" placeholder="请选择" style="width: 100%">
-                    <el-option label="是" :value="1" />
-                    <el-option label="否" :value="0" />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="取消原因" prop="cancelReason">
-                  <el-input v-model="form.cancelReason" placeholder="请输入取消原因" />
-                </el-form-item>
-              </el-col>
-            </el-row>
+<!--            <el-row :gutter="20">-->
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="是否调账" prop="adjustFlag">-->
+<!--                  <el-select v-model="form.adjustFlag" placeholder="请选择" style="width: 100%">-->
+<!--                    <el-option label="是" :value="1" />-->
+<!--                    <el-option label="否" :value="0" />-->
+<!--                  </el-select>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+<!--              <el-col :span="12">-->
+<!--                <el-form-item label="取消原因" prop="cancelReason">-->
+<!--                  <el-input v-model="form.cancelReason" placeholder="请输入取消原因" />-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+<!--            </el-row>-->
 
             <el-form-item label="备注" prop="remark">
               <el-input v-model="form.remark" type="textarea" :rows="3" placeholder="请输入备注" />
@@ -722,8 +731,8 @@
 <script setup name="Order">
 import { listOrder, getOrder, delOrder, addOrder, updateOrder, cancelOrder,deliverTrace ,deliverFree} from "@/api/logistics/order"
 import RegionCascader from '@/components/RegionCascader.vue'
-import { getCodesByNames } from '@/utils/area-data.js'
-import { ref, reactive, toRefs, watch, computed } from 'vue'
+import {areaData, getCodesByNames} from '@/utils/area-data.js'
+import {ref, reactive, toRefs, watch, computed , onMounted,onActivated} from 'vue'
 import { Loading, Box, Money, Edit } from '@element-plus/icons-vue'
 
 const { proxy } = getCurrentInstance()
@@ -1347,8 +1356,11 @@ function handleExport() {
   }, `order_${new Date().getTime()}.xlsx`)
 }
 
-/** 初始化 */
 getList()
+onActivated(() => {
+  console.log('快递列表页面已加载')
+  getList()
+})
 </script>
 
 <style scoped>

+ 2 - 2
jd-logistics-ui-v3/src/views/monitor/online/index.vue

@@ -10,10 +10,10 @@
                @keyup.enter="handleQuery"
             />
          </el-form-item>
-         <el-form-item label="用户名称" prop="userName">
+         <el-form-item label="用户帐号" prop="userName">
             <el-input
                v-model="queryParams.userName"
-               placeholder="请输入用户名称"
+               placeholder="请输入用户帐号"
                clearable
                style="width: 200px"
                @keyup.enter="handleQuery"

+ 3 - 3
jd-logistics-ui-v3/src/views/system/role/authUser.vue

@@ -2,10 +2,10 @@
 <template>
    <div class="app-container">
       <el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true">
-         <el-form-item label="用户名称" prop="userName">
+         <el-form-item label="用户帐号" prop="userName">
             <el-input
                v-model="queryParams.userName"
-               placeholder="请输入用户名称"
+               placeholder="请输入用户帐号"
                clearable
                style="width: 240px"
                @keyup.enter="handleQuery"
@@ -59,7 +59,7 @@
 
       <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
-         <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
+         <el-table-column label="用户帐号" prop="userName" :show-overflow-tooltip="true" />
          <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
          <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
          <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />

+ 3 - 3
jd-logistics-ui-v3/src/views/system/role/selectUser.vue

@@ -2,10 +2,10 @@
    <!-- 授权用户 -->
    <el-dialog title="选择用户" v-model="visible" width="800px" top="5vh" append-to-body>
       <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item label="用户名称" prop="userName">
+         <el-form-item label="用户帐号" prop="userName">
             <el-input
                v-model="queryParams.userName"
-               placeholder="请输入用户名称"
+               placeholder="请输入用户帐号"
                clearable
                style="width: 180px"
                @keyup.enter="handleQuery"
@@ -28,7 +28,7 @@
       <el-row>
          <el-table @row-click="clickRow" ref="refTable" :data="userList" @selection-change="handleSelectionChange" height="260px">
             <el-table-column type="selection" width="55"></el-table-column>
-            <el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
+            <el-table-column label="用户帐号" prop="userName" :show-overflow-tooltip="true" />
             <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
             <el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
             <el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />

+ 8 - 9
jd-logistics-ui-v3/src/views/system/user/index.vue

@@ -17,11 +17,11 @@
         <pane size="84">
           <el-col>
             <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-              <el-form-item label="用户名称" prop="userName">
-                <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter="handleQuery" />
+              <el-form-item label="用户帐号" prop="userName">
+                <el-input v-model="queryParams.userName" placeholder="请输入用户帐号" clearable style="width: 240px" @keyup.enter="handleQuery" />
               </el-form-item>
-              <el-form-item label="手机号码" prop="phonenumber">
-                <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter="handleQuery" />
+              <el-form-item label="用户昵称" prop="nickName">
+                <el-input v-model="queryParams.nickName" placeholder="请输入用户昵称" clearable style="width: 240px" @keyup.enter="handleQuery" />
               </el-form-item>
               <el-form-item label="状态" prop="status">
                 <el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
@@ -59,7 +59,7 @@
             <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="50" align="center" />
               <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns.userId.visible" />
-              <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns.userName.visible" :show-overflow-tooltip="true" />
+              <el-table-column label="用户帐号" align="center" key="userName" prop="userName" v-if="columns.userName.visible" :show-overflow-tooltip="true" />
               <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns.nickName.visible" :show-overflow-tooltip="true" />
               <el-table-column label="组织" align="center" key="deptName" prop="dept.deptName" v-if="columns.deptName.visible" :show-overflow-tooltip="true" />
 <!--              <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns.phonenumber.visible" width="120" />-->
@@ -262,7 +262,6 @@ const columns = ref({
   userName: { label: '用户账号', visible: true },
   nickName: { label: '用户昵称', visible: true },
   deptName: { label: '组织', visible: true },
-  phonenumber: { label: '手机号码', visible: true },
   status: { label: '状态', visible: true },
   createTime: { label: '创建时间', visible: true }
 })
@@ -273,16 +272,16 @@ const data = reactive({
     pageNum: 1,
     pageSize: 10,
     userName: undefined,
-    phonenumber: undefined,
+    nickName: undefined,
     status: undefined,
     deptId: undefined
   },
   rules: {
-    userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
+    userName: [{ required: true, message: "用户帐号不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户帐号长度必须介于 2 和 20 之间", trigger: "blur" }],
     nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
     password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }],
     email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
-    phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
+    // phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
   }
 })
 

+ 1 - 1
jd-logistics-ui-v3/src/views/system/user/profile/index.vue

@@ -14,7 +14,7 @@
                   </div>
                   <ul class="list-group list-group-striped">
                      <li class="list-group-item">
-                        <svg-icon icon-class="user" />用户名称
+                        <svg-icon icon-class="user" />用户帐号
                         <div class="pull-right">{{ state.user.userName }}</div>
                      </li>
                      <li class="list-group-item">