Compare commits
	
		
			No commits in common. "fb0e8b09c6b1fd55707c51f7b272ccad784e9a28" and "df0981c5295a677859e5fe83246871f07e210cc1" have entirely different histories.
		
	
	
		
			fb0e8b09c6
			...
			df0981c529
		
	
		
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.7 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.8 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 2.5 KiB | 
| @ -157,7 +157,7 @@ | |||||||
|                         <img :src="getAssetsFile('images/warehouseLogistics/优先级.png')" alt="" style="width: 20px" /> --> |                         <img :src="getAssetsFile('images/warehouseLogistics/优先级.png')" alt="" style="width: 20px" /> --> | ||||||
|                       </div> |                       </div> | ||||||
|                       <div class="storage-tags"> |                       <div class="storage-tags"> | ||||||
|                         <!-- <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">{{ item.type }}</el-tag> --> |                         <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">{{ item.type }}</el-tag> | ||||||
|                         <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">{{ item.monitor }}</el-tag> |                         <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">{{ item.monitor }}</el-tag> | ||||||
|                         <!-- <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">绿色</el-tag> --> |                         <!-- <el-tag effect="plain" round style="background-color: rgba(37, 191, 130, 0.2); color: #25bf82">绿色</el-tag> --> | ||||||
|                       </div> |                       </div> | ||||||
| @ -227,7 +227,7 @@ const state = reactive({ | |||||||
|   data0: [], |   data0: [], | ||||||
|   data: [ |   data: [ | ||||||
|     { |     { | ||||||
|       title: '自动化分拣', |       title: '云南农泰数字农业科技有限公司', | ||||||
|       description: '根茎类 ', |       description: '根茎类 ', | ||||||
|       location: '临沧市·耿马县', |       location: '临沧市·耿马县', | ||||||
|       locationUrl: 'https://gov-cloud.oss-cn-chengdu.aliyuncs.com/frontend/chanye/dz.png', |       locationUrl: 'https://gov-cloud.oss-cn-chengdu.aliyuncs.com/frontend/chanye/dz.png', | ||||||
| @ -246,7 +246,7 @@ const state = reactive({ | |||||||
|         '云南绿源生态农业有限公司专注耿马高原根茎类作物,拥有5000㎡无尘车间,自动滚轴分选线可精准区分大小、糖度;全程冷链+云端监控,客户手机即可查看货位温湿度;3-5元/kg为当季地头价,量大可议价,支持京东冷链直发、边贸自提。', |         '云南绿源生态农业有限公司专注耿马高原根茎类作物,拥有5000㎡无尘车间,自动滚轴分选线可精准区分大小、糖度;全程冷链+云端监控,客户手机即可查看货位温湿度;3-5元/kg为当季地头价,量大可议价,支持京东冷链直发、边贸自提。', | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       title: '人工分拣', |       title: '云南农泰数字农业科技有限公司', | ||||||
|       description: '豆类 ', |       description: '豆类 ', | ||||||
|       location: '临沧市·耿马县', |       location: '临沧市·耿马县', | ||||||
|       locationUrl: 'https://gov-cloud.oss-cn-chengdu.aliyuncs.com/frontend/chanye/dz.png', |       locationUrl: 'https://gov-cloud.oss-cn-chengdu.aliyuncs.com/frontend/chanye/dz.png', | ||||||
| @ -621,7 +621,7 @@ $border-color: #dcdfe6; // 边框颜色 | |||||||
|   margin: 10px 0; |   margin: 10px 0; | ||||||
|   width: 100%; |   width: 100%; | ||||||
|   text-align: left; |   text-align: left; | ||||||
|   // display: flex; |   display: flex; | ||||||
|   align-items: center; |   align-items: center; | ||||||
|   justify-content: flex-start; |   justify-content: flex-start; | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,395 +1,398 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |   <!--  <page-layout :menus="state.menus"> </page-layout>--> | ||||||
|  |   <section> | ||||||
|     <common> |     <common> | ||||||
|       <template #main> |       <template #main> | ||||||
|         <el-card style="border-radius: 16px; margin-bottom: 20px" shadow="hover"> |         <el-card shadow="never" style="border-radius: 14px"> | ||||||
|           <div class="choose" style="margin-bottom: 5px"> |           <div class="tabs tabs0"> | ||||||
|             <div class="searchType">车长</div> |             <div class="tab cursor"> | ||||||
|               <div |               <div | ||||||
|               v-for="(item, index) in listCC" |                 v-for="(item, index) in tab0" | ||||||
|                 :key="index" |                 :key="index" | ||||||
|               :class="{ active: chooseMoney === index }" |                 class="tab_list_li" | ||||||
|               class="chooseItem" |                 style="margin-left: 20px; margin-bottom: 10px" | ||||||
|               @click="changeChoose('cc', index)" |                 :class="{ active: currentTab0 === index, tab_list_li0: currentTab0 === index }" | ||||||
|             > |  | ||||||
|               {{ item.name }} |  | ||||||
|             </div> |  | ||||||
|           </div> |  | ||||||
|           <div class="choose" style="margin-bottom: 10px"> |  | ||||||
|             <div style="margin-left: 70px; background: #f5f5f5; color: #999; font-size: 14px; padding: 4px 15px; border-radius: 5px"> |  | ||||||
|               <span style="margin-right: 30px">载重:{{ activeCC.weight }}</span> |  | ||||||
|               <span>载方:{{ activeCC.volume }}</span> |  | ||||||
|             </div> |  | ||||||
|           </div> |  | ||||||
| 
 |  | ||||||
|           <div class="choose"> |  | ||||||
|             <div class="searchType">车型</div> |  | ||||||
|             <div |  | ||||||
|               v-for="(item, index) in listCx" |  | ||||||
|               :key="index" |  | ||||||
|               :class="{ active: chooseDate === index }" |  | ||||||
|               class="chooseItem" |  | ||||||
|               @click="changeChoose('cx', index)" |  | ||||||
|               > |               > | ||||||
|                 {{ item }} |                 {{ item }} | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|         </el-card> |  | ||||||
|         <el-card style="border-radius: 16px; margin-bottom: 20px" shadow="hover"> |  | ||||||
|           <div class="content-box"> |  | ||||||
|             <div class="content-item"> |  | ||||||
|               <div class="icon"><img src="@/assets/images/zhuan.png" alt="" /></div> |  | ||||||
|               <div class="title">装货地址:</div> |  | ||||||
|               <div class="content"><el-input v-model="input" style="width: 400px" placeholder="请输入详细地址(可跨城)" clearable /></div> |  | ||||||
|           </div> |           </div> | ||||||
|             <div class="content-item"> |           <div style="display: flex"> | ||||||
|               <div class="icon"><img src="@/assets/images/qiehuan.png" alt="" /></div> |             <div style="flex: 1; text-align: left"> | ||||||
|             </div> |               <el-cascader | ||||||
|             <div class="content-item"> |                 v-model="state.query.selectedAddress" | ||||||
|               <div class="icon"><img src="@/assets/images/xie.png" alt="" /></div> |                 :options="addressOptions" | ||||||
|               <div class="title">卸货地址:</div> |                 :props="cascaderProps" | ||||||
|               <div class="content"> |                 placeholder="请选择省市区" | ||||||
|                 <el-input v-model="input1" style="width: 400px" placeholder="请输入详细地址(可跨城)" clearable /> |                 :size="formSize" | ||||||
|               </div> |                 style="width: 500px; margin-bottom: 20px" | ||||||
|             </div> |               /> | ||||||
|             <div class="content-item1" @click="reservation()"> |               <el-input v-model="state.query.detailAddress" :size="formSize" placeholder="详细位置(如街道、门牌号等)" style="width: 500px" /> | ||||||
|               <span v-if="!isReservation" class="iconY"></span> |  | ||||||
|               <el-icon v-else style="margin-right: 5px" size="17" color="#25BF82"><SuccessFilled /></el-icon> |  | ||||||
|               <span>预约用车</span> |  | ||||||
|             </div> |  | ||||||
|             <el-form v-if="isReservation" :model="form" label-width="auto" style="max-width: 600px"> |  | ||||||
|               <el-form-item label="预约时间"> |  | ||||||
|                 <el-col :span="11"> |  | ||||||
|                   <el-date-picker v-model="form.date" type="date" placeholder="请选择预约时间" style="width: 100%" /> |  | ||||||
|                 </el-col> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-form> |  | ||||||
|           </div> |  | ||||||
|         </el-card> |  | ||||||
|         <el-card v-if="input != '' && input1 != ''" style="border-radius: 16px; margin-bottom: 20px" shadow="hover"> |  | ||||||
|           <div class="content-box1"> |  | ||||||
|             <div class="title">用户出价</div> |  | ||||||
|             <div class="bid"> |  | ||||||
|               <div class="bid-left"> |  | ||||||
|                 <p style="color: #999; font-size: 14px">灵活出价 价钱可谈</p> |  | ||||||
|               </div> |  | ||||||
|               <div class="bid-right" @click="openEt('bid')"> |  | ||||||
|                 <span>预估价</span> |  | ||||||
|                 <span style="color: #000; font-size: 22px; font-weight: bold; margin: 0 10px">{{ form1.money }}</span> |  | ||||||
|                 <span style="padding-right: 10px; border-right: 1px solid #999; margin-right: 10px">元</span> |  | ||||||
|                 <span style="cursor: pointer"> |  | ||||||
|                   <span style="margin-right: 4px">改价</span> |  | ||||||
|                   <el-icon><EditPen /></el-icon> |  | ||||||
|                 </span> |  | ||||||
|             </div> |             </div> | ||||||
|  |             <div style="width: 150px; text-align: right"> | ||||||
|  |               <el-button type="primary" size="large" style="width: 100px">查询</el-button> | ||||||
|  |               <el-button type="primary" size="large" style="width: 100px; margin-top: 20px" @click="shippingGoods">在线寄货</el-button> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|         </el-card> |         </el-card> | ||||||
|         <el-card v-if="input != '' && input1 != ''" style="border-radius: 16px; margin-bottom: 20px" shadow="hover"> | 
 | ||||||
|           <div class="content-box1"> |         <div v-if="state.data == 0" class="warehouse-content-box no-data">暂无数据</div> | ||||||
|             <div class="bid"> |         <div v-else style="padding-bottom: 20px"> | ||||||
|               <div class="bid-left"> |           <div v-for="(item, index) in state.data" :key="index" class="warehouse-content-box"> | ||||||
|                 <p style="font-size: 16px">货物资料</p> |             <div class="warehouse-content-box-left"> | ||||||
|  |               <img :src="item.imageUrl" fit="cover" draggable="false" /> | ||||||
|             </div> |             </div> | ||||||
|               <div class="bid-right" @click="openEt('hwzl')"> |             <div class="warehouse-content-box-center"> | ||||||
|                 <span style="color: #999">{{ form1.goodsInformation }}</span> |               <p class="center-title"> | ||||||
|                 <span> ></span> |                 {{ item.title }} | ||||||
|  |               </p> | ||||||
|  |               <div class="center-text"> | ||||||
|  |                 <div class="center-text-lable">车牌:</div> | ||||||
|  |                 <div class="flex-1">{{ item.licensePlate }}</div> | ||||||
|  |                 <div class="center-text-lable">车长:</div> | ||||||
|  |                 <div class="flex-1">{{ item.conductor }}</div> | ||||||
|  |               </div> | ||||||
|  |               <div class="center-text"> | ||||||
|  |                 <div class="center-text-lable">车辆性质:</div> | ||||||
|  |                 <div class="flex-1">{{ item.vehicleNature }}</div> | ||||||
|  |                 <div class="center-text-lable">车型:</div> | ||||||
|  |                 <div class="flex-1">{{ item.vehicleModel }}</div> | ||||||
|  |               </div> | ||||||
|  |               <div class="center-text"> | ||||||
|  |                 <div class="center-text-lable">最大载重:</div> | ||||||
|  |                 <div class="flex-1">{{ item.maximumPayload }}</div> | ||||||
|  |                 <div class="center-text-lable">空闲时间:</div> | ||||||
|  |                 <div class="flex-1">{{ item.freeTime }}</div> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|             <div class="bid"> |             <div class="warehouse-content-box-right"> | ||||||
|               <div class="bid-left"> |               <p class="top-text">{{ item.price }}</p> | ||||||
|                 <p style="font-size: 16px">订单备注</p> |               <el-button size="large" type="primary" class="right-button" @click="toLink(item)">预约</el-button> | ||||||
|               </div> |  | ||||||
|               <div class="bid-right" @click="openEt('bz')"> |  | ||||||
|                 <span style="color: #999">{{ form1.remarks }}</span> |  | ||||||
|                 <span> ></span> |  | ||||||
|               </div> |  | ||||||
|             </div> |  | ||||||
|             <div class="bid" style="margin-bottom: 0"> |  | ||||||
|               <div class="bid-left"> |  | ||||||
|                 <p style="font-size: 16px">联系方式</p> |  | ||||||
|               </div> |  | ||||||
|               <div class="bid-right" @click="openEt('lxfs')"> |  | ||||||
|                 <span style="color: #000">{{ form1.Telephone }}</span> |  | ||||||
|                 <span style="color: #000"> ></span> |  | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|         </el-card> | 
 | ||||||
|         <div> |         <!-- <el-pagination | ||||||
|           <el-button style="padding: 10px 50px" size="large" type="primary" @click="handleApply">现在发货</el-button> |             :size="'large'" | ||||||
|         </div> |             :page-size="paginations.size" | ||||||
|  |             :current-page="paginations.page" | ||||||
|  |             :total="paginations.total" | ||||||
|  |             background | ||||||
|  |             layout="prev, pager, next" | ||||||
|  |             @current-change="currentChange" | ||||||
|  |           /> --> | ||||||
|       </template> |       </template> | ||||||
|     </common> |     </common> | ||||||
|     <el-dialog v-model="dialogVisible" :title="title" width="500" align-center @close="handleClose"> |   </section> | ||||||
|       <el-form v-if="isipt == 1" :model="form1" label-width="auto" style="max-width: 600px"> |  | ||||||
|         <el-form-item label="预估价"> |  | ||||||
|           <el-input v-model="form1.money" style="width: 400px" placeholder="请输入预估价" clearable /> |  | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="系统底价:"> |  | ||||||
|           <span style="font-size: 20px">{{ form1.money1 }}</span> |  | ||||||
|           <el-icon style="margin-left: 10px; margin-right: 3px; color: chocolate"><WarningFilled /></el-icon> |  | ||||||
|           <span style="color: chocolate">预估价不能低于系统底价</span></el-form-item |  | ||||||
|         > |  | ||||||
|       </el-form> |  | ||||||
|       <el-form v-if="isipt == 2" :model="form1" label-width="auto" style="max-width: 600px"> |  | ||||||
|         <el-form-item label="货物信息"> |  | ||||||
|           <el-input v-model="form1.goodsInformation" type="textarea" style="width: 400px" placeholder="请填写货物信息" clearable /> |  | ||||||
|         </el-form-item> |  | ||||||
|       </el-form> |  | ||||||
|       <el-form v-if="isipt == 3" :model="form1" label-width="auto" style="max-width: 600px"> |  | ||||||
|         <el-form-item label="备注"> |  | ||||||
|           <el-input v-model="form1.remarks" type="textarea" style="width: 400px" placeholder="请填写备注" clearable /> |  | ||||||
|         </el-form-item> |  | ||||||
|       </el-form> |  | ||||||
|       <el-form v-if="isipt == 4" :model="form1" label-width="auto" style="max-width: 600px"> |  | ||||||
|         <el-form-item label="联系方式"> |  | ||||||
|           <el-input v-model="form1.Telephone" style="width: 400px" placeholder="请输入联系方式" clearable /> |  | ||||||
|         </el-form-item> |  | ||||||
|       </el-form> |  | ||||||
|       <template #footer> |  | ||||||
|         <div class="dialog-footer"> |  | ||||||
|           <el-button @click="dialogVisible = false">取消</el-button> |  | ||||||
|           <el-button type="primary" @click="sbSure()"> 确定 </el-button> |  | ||||||
|         </div> |  | ||||||
|       </template> |  | ||||||
|     </el-dialog> |  | ||||||
|   </div> |  | ||||||
| </template> | </template> | ||||||
| 
 |  | ||||||
| <script setup> | <script setup> | ||||||
| import { ref, onMounted, reactive } from 'vue'; | import { ref, reactive, watch, onMounted } from 'vue'; | ||||||
| import common from '../components/common.vue'; | import { getAssetsFile } from '@/utils'; | ||||||
| import { getAssetsFile } from '@/utils/index.js'; | import { useRoute, useRouter } from 'vue-router'; | ||||||
| import { useRouter } from 'vue-router'; | import { getWarehouseInfo, warehouseList } from '@/apis/warehouseLogistics.js'; | ||||||
| import { informationList } from '@/apis/farmingService.js'; | import warehouseLogisticsRoutes from '@/router/modules/warehouseLogistics'; | ||||||
|  | import Common from '../components/common.vue'; | ||||||
|  | import { useGetCommonData } from '@/store/modules/common.js'; | ||||||
|  | import { storeToRefs } from 'pinia'; | ||||||
| import { ElMessage } from 'element-plus'; | import { ElMessage } from 'element-plus'; | ||||||
| import { ElMessageBox } from 'element-plus'; | import { getRegion } from '@/apis/common'; | ||||||
|  | const store = useGetCommonData(); | ||||||
|  | const { data } = storeToRefs(store); | ||||||
|  | const route = useRoute(); | ||||||
| const router = useRouter(); | const router = useRouter(); | ||||||
| 
 | 
 | ||||||
| const dialogVisible = ref(false); | const tab0 = reactive(['选择位置']); | ||||||
| const title = ref(''); | const currentTab0 = ref(0); | ||||||
| const isipt = ref(null); |  | ||||||
| 
 | 
 | ||||||
| const chooseMoney = ref(0); | const formSize = 'large'; | ||||||
| const chooseDate = ref(); | 
 | ||||||
| // const listCC = ref(['5米2', '6米8', '7米6', '8米6', '9米6', '11米7', '13米', '13米7', '15米', '15米7']); | import img1 from './images/xiangshi.png'; | ||||||
| const activeCC = ref({ name: '5米2', weight: '2~5吨', volume: '15~25方' }); | import img2 from './images/gaolan.png'; | ||||||
| const listCC = ref([ | const state = reactive({ | ||||||
|  |   menus: warehouseLogisticsRoutes[0].children, | ||||||
|  |   query: { | ||||||
|  |     current: {}, | ||||||
|  |     selectedAddress: [], | ||||||
|  |     detailAddress: '', | ||||||
|  |   }, | ||||||
|  |   data: [ | ||||||
|     { |     { | ||||||
|     name: '5米2', |       imageUrl: img1, | ||||||
|     weight: '2~5吨', |       title: '长途大车', | ||||||
|     volume: '15~25方', |       licensePlate: '云AL6AB7', | ||||||
|  |       conductor: '15m', | ||||||
|  |       vehicleNature: '物流公司', | ||||||
|  |       vehicleModel: '厢式', | ||||||
|  |       maximumPayload: '1000吨', | ||||||
|  |       freeTime: '2025.05.05', | ||||||
|  |       price: '¥20元/吨/公里', | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|     name: '6米8', |       imageUrl: img2, | ||||||
|     weight: '5~10吨', |       title: '长途大车', | ||||||
|     volume: '30~45方', |       licensePlate: '云AL5B15', | ||||||
|  |       conductor: '13m', | ||||||
|  |       vehicleNature: '个人', | ||||||
|  |       vehicleModel: '高栏', | ||||||
|  |       maximumPayload: '800吨', | ||||||
|  |       freeTime: '2025.05.08', | ||||||
|  |       price: '¥20元/吨/公里', | ||||||
|     }, |     }, | ||||||
|   { |   ], | ||||||
|     name: '7米6', |  | ||||||
|     weight: '8~12吨', |  | ||||||
|     volume: '40~55方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '8米6', |  | ||||||
|     weight: '10~15吨', |  | ||||||
|     volume: '50~65方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '9米6', |  | ||||||
|     weight: '12~20吨', |  | ||||||
|     volume: '60~80方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '11米7', |  | ||||||
|     weight: '18~30吨', |  | ||||||
|     volume: '80~100方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '13米', |  | ||||||
|     weight: '25~35吨', |  | ||||||
|     volume: '90~110方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '13米7', |  | ||||||
|     weight: '30~40吨', |  | ||||||
|     volume: '100~120方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '15米', |  | ||||||
|     weight: '35~50吨', |  | ||||||
|     volume: '120~150方', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: '15米7', |  | ||||||
|     weight: '40~55吨', |  | ||||||
|     volume: '130~160方', |  | ||||||
|   }, |  | ||||||
| ]); |  | ||||||
| const listCx = ref(['厢式', '平板', '高栏', '飞翼车', '侧板可拆']); |  | ||||||
| const input = ref(''); |  | ||||||
| const input1 = ref(''); |  | ||||||
| const isReservation = ref(false); |  | ||||||
| const form = reactive({ |  | ||||||
|   date: '', |  | ||||||
| }); | }); | ||||||
| const form1 = reactive({ | const formData = reactive({}); | ||||||
|   money: '3488', | const paginations = reactive({ | ||||||
|   money1: '3466', |   page: 1, | ||||||
|   goodsInformation: '补全货物信息,司机接单更快', |   size: 2, | ||||||
|   remarks: '请输入备注', |   total: 0, | ||||||
|   Telephone: '15687067900', |  | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| // #endregion | const dialogFormVisible = ref(false); | ||||||
| 
 | const formLabelWidth = ref('120px'); | ||||||
| /* --------------- methods --------------- */ | const currentTab = ref(0); | ||||||
| // #region | const currentChange = (current) => { | ||||||
| onMounted(() => { |   paginations.page = current; | ||||||
|   //   queryList(); |   getWarehouseList(currentTab.value + 1); | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| const changeChoose = (type, index) => { |  | ||||||
|   if (type === 'cc') { |  | ||||||
|     chooseMoney.value = index; |  | ||||||
|     activeCC.value = listCC.value[index]; |  | ||||||
|   } else { |  | ||||||
|     chooseDate.value = index; |  | ||||||
|   } |  | ||||||
| }; | }; | ||||||
| const reservation = () => { | 
 | ||||||
|   isReservation.value = !isReservation.value; | const getWarehouseList = (type) => { | ||||||
| }; |   warehouseList({ type: type, current: paginations.page, size: paginations.size }).then((res) => { | ||||||
| const handleApply = () => { |     state.data = []; | ||||||
|   //判断装货地址和卸货地址以及预约用车时间不能为空 |     paginations.total = res.total; | ||||||
|   if (input.value == '') { |     if (res.code === 200) { | ||||||
|     ElMessage.error('请填写装货地址'); |       state.data = res.data.records; | ||||||
|     return; |       for (let i in state.data) { | ||||||
|  |         state.data[i].tag = state.data[i].tags.split(','); | ||||||
|       } |       } | ||||||
|   if (input1.value == '') { |  | ||||||
|     ElMessage.error('请填写卸货地址'); |  | ||||||
|     return; |  | ||||||
|     } |     } | ||||||
|   if (form.date === '') { |  | ||||||
|     ElMessage.error('请选择预约用车时间'); |  | ||||||
|     return; |  | ||||||
|   } |  | ||||||
|   router.push({ |  | ||||||
|     name: 'logistics-dispatch', |  | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
| const openEt = (type) => { | 
 | ||||||
|   dialogVisible.value = true; | const toLink = (row) => { | ||||||
|   if (type === 'bid') { |   router.push({ | ||||||
|     title.value = '改价'; |     name: 'logistics-detail', | ||||||
|     isipt.value = 1; |     query: { id: row?.id ?? '100' }, | ||||||
|   } else if (type === 'hwzl') { |   }); | ||||||
|     title.value = '货物信息'; | }; | ||||||
|     isipt.value = 2; | 
 | ||||||
|   } else if (type === 'lxfs') { | const shippingGoods = () => { | ||||||
|     title.value = '联系方式'; |   router.push({ | ||||||
|     isipt.value = 4; |     name: 'logistics-shipping', | ||||||
|   } else { |   }); | ||||||
|     title.value = '备注'; | }; | ||||||
|     isipt.value = 3; | 
 | ||||||
|  | const contact = (id) => { | ||||||
|  |   for (let i in state.data) { | ||||||
|  |     if (state.data[i].id === id) { | ||||||
|  |       state.query.current = state.data[i]; | ||||||
|  |       state.query.current.contactName = state.query.current.contactName.substring(0, 1); | ||||||
|     } |     } | ||||||
|  |   } | ||||||
|  |   formData.value = { | ||||||
|  |     warehouseId: state.query.current.id, | ||||||
|  |     type: 1, | ||||||
|  |     demand: '', | ||||||
|  |     surname: '', | ||||||
|  |     sex: '', | ||||||
|  |     phoneNum: '', | ||||||
|  |   }; | ||||||
|  |   dialogFormVisible.value = true; | ||||||
| }; | }; | ||||||
| const handleClose = () => { | 
 | ||||||
|   dialogVisible.value = false; | const priceConfirm = () => { | ||||||
| }; |   // 遍历 formData 的所有键 | ||||||
| const sbSure = () => { |   for (const key of Object.keys(formData.value)) { | ||||||
|   //判断预估价不能低于系统底价 |     if (formData.value[key] === '') { | ||||||
|   if (isipt.value == 1 && Number(form1.money) < Number(form1.money1)) { |       ElMessage({ | ||||||
|     ElMessage.error('预估价不能低于系统底价'); |         message: '请完整填写信息!', | ||||||
|  |         type: 'warning', | ||||||
|  |       }); | ||||||
|  |       return; // 这里 return 会直接退出整个函数 | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   if (!/^1[3-9]\d{9}$/.test(formData.value.phoneNum)) { | ||||||
|  |     ElMessage.warning('请填写正确的11位手机号码!'); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   dialogVisible.value = false; |   getWarehouseInfo(formData.value).then((res) => { | ||||||
|  |     if (res.code === 200) { | ||||||
|  |       ElMessage.success('询价成功,后续请关注手机信息,我们将第一时间联系您'); | ||||||
|  |     } else { | ||||||
|  |       ElMessage.error(res.errmsg); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
| }; | }; | ||||||
| </script> |  | ||||||
| 
 | 
 | ||||||
|  | // 级联选择器配置 | ||||||
|  | const cascaderProps = ref({ | ||||||
|  |   label: 'areaName', // 选项标签字段名 | ||||||
|  |   value: 'areaCode', // 选项值字段名 | ||||||
|  |   children: 'areaChildVOS', // 子选项字段名 | ||||||
|  |   emitPath: true, | ||||||
|  |   expandTrigger: 'hover', | ||||||
|  | }); | ||||||
|  | // 省市区数据(示例) | ||||||
|  | const addressOptions = ref([]); | ||||||
|  | const getArea = async () => { | ||||||
|  |   const res = await getRegion(); | ||||||
|  |   if (res.code === 200) { | ||||||
|  |     addressOptions.value = res.data; | ||||||
|  |   } else { | ||||||
|  |     ElMessage.error(res.message); | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | onMounted(() => { | ||||||
|  |   // getWarehouseList('1'); | ||||||
|  |   getArea(); | ||||||
|  | }); | ||||||
|  | </script> | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
| .choose { | .el-form-item--large { | ||||||
|  |   --font-size: 20px; | ||||||
|  | } | ||||||
|  | .tabs { | ||||||
|  |   //height: 160px; | ||||||
|  |   line-height: 50px; | ||||||
|   display: flex; |   display: flex; | ||||||
|   justify-content: flex-start; |   flex-direction: column; | ||||||
|   font-size: 18px; |   font-size: 18px; | ||||||
|   font-weight: 400; |   align-items: flex-start; | ||||||
|   margin-bottom: 20px; |   justify-content: space-between; | ||||||
|   &:last-child { |   // padding: 0 20px; | ||||||
|     margin-bottom: 0; | } | ||||||
|   } | .tabs0 { | ||||||
|   .searchType { |   padding: 0; | ||||||
|  | } | ||||||
|  | .tab { | ||||||
|  |   // height: 100px; | ||||||
|  |   width: 850px; | ||||||
|  |   display: flex; | ||||||
|  |   align-items: center; | ||||||
|  |   justify-content: flex-start; | ||||||
|  |   overflow-x: auto; | ||||||
|  |   overflow: auto; /* 启用滚动 */ | ||||||
|  |   white-space: nowrap; /* 强制单行显示 */ | ||||||
|  |   -ms-overflow-style: none; /* IE/Edge 兼容 */ | ||||||
|  |   scrollbar-width: none; /* 隐藏滚动条 */ | ||||||
|  |   .tab_list { | ||||||
|     color: #999999; |     color: #999999; | ||||||
|     margin: 0 30px; |     font-size: 20px; | ||||||
|     margin-left: 0; |     font-weight: 400; | ||||||
|   } |   } | ||||||
|   .chooseAll { |   .tab_list_li { | ||||||
|  |     margin-left: 40px; | ||||||
|  |     color: #000000; | ||||||
|  |     font-size: 20px; | ||||||
|  |     font-weight: 400; | ||||||
|  |     transition: color 0.3s ease; | ||||||
|  |   } | ||||||
|  |   .tab_list_li:first-child { | ||||||
|  |     margin-left: 20px; | ||||||
|  |   } | ||||||
|  |   .tab_list_li.active { | ||||||
|  |     color: rgba(37, 191, 130, 1); | ||||||
|  |   } | ||||||
|  |   .tab_list_li0 { | ||||||
|  |     position: relative; | ||||||
|  |     transition: color 0.3s ease; | ||||||
|  |   } | ||||||
|  |   .tab_list_li0::after { | ||||||
|  |     content: ''; | ||||||
|  |     position: absolute; | ||||||
|  |     left: 25%; | ||||||
|  |     bottom: 0; | ||||||
|  |     width: 50%; | ||||||
|  |     height: 4px; | ||||||
|  |     background: rgba(37, 191, 130, 1); | ||||||
|  |     border-radius: 4px; | ||||||
|  |     transition: all 0.3s ease; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .cursor { | ||||||
|   cursor: pointer; |   cursor: pointer; | ||||||
|   } |  | ||||||
|   .chooseItem { |  | ||||||
|     cursor: pointer; |  | ||||||
|     margin-right: 20px; |  | ||||||
|   } |  | ||||||
| } | } | ||||||
| .active { | .active { | ||||||
|  |   color: rgba(37, 191, 130, 1); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .warehouse-content-box { | ||||||
|  |   min-height: 150px; | ||||||
|  |   margin-top: 20px; | ||||||
|  |   padding: 20px; | ||||||
|  |   border-radius: 14px; | ||||||
|  |   background-color: #fff; | ||||||
|  |   display: flex; | ||||||
|  |   gap: 20px; | ||||||
|  | } | ||||||
|  | .no-data { | ||||||
|  |   flex-direction: row; | ||||||
|  |   justify-content: center; | ||||||
|  |   align-items: center; | ||||||
|  |   font-size: 14px; | ||||||
|  | } | ||||||
|  | .warehouse-content-box-left { | ||||||
|  |   height: 120px; | ||||||
|  |   width: 120px; | ||||||
|  |   border-radius: 14px; | ||||||
|  |   position: relative; | ||||||
|  |   overflow: hidden; | ||||||
|  |   img { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 50%; | ||||||
|  |     left: 50%; | ||||||
|  |     transform: translate(-50%, -50%); | ||||||
|  |     min-width: 100%; | ||||||
|  |     min-height: 100%; | ||||||
|  |     object-fit: cover; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .warehouse-content-box-center { | ||||||
|  |   flex: 1; | ||||||
|  |   text-align: left; | ||||||
|  |   .center-title { | ||||||
|  |     font-size: 22px; | ||||||
|  |     font-weight: bold; | ||||||
|  |     text-align: left; | ||||||
|  |     margin-bottom: 10px; | ||||||
|  |   } | ||||||
|  |   .center-text { | ||||||
|  |     font-size: 14px; | ||||||
|  |     display: flex; | ||||||
|  |     margin-bottom: 10px; | ||||||
|  |     .center-text-lable { | ||||||
|  |       color: #666; | ||||||
|  |       width: 70px; | ||||||
|  |     } | ||||||
|  |     .flex-1 { | ||||||
|  |       flex: 1; | ||||||
|  |     } | ||||||
|  |     .center-text-cont { | ||||||
|  |       width: 120px; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .center-location { | ||||||
|  |     font-size: 14px; | ||||||
|  |     line-height: 20px; | ||||||
|  |     .el-icon { | ||||||
|  |       vertical-align: bottom; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .warehouse-content-box-right { | ||||||
|  |   width: 160px; | ||||||
|  |   font-size: 20px; | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   align-items: flex-end; | ||||||
|  |   justify-content: space-between; | ||||||
|  |   .top-text { | ||||||
|  |     font-size: 22px; | ||||||
|     color: #25bf82; |     color: #25bf82; | ||||||
|     font-weight: bold; |     font-weight: bold; | ||||||
| } |   } | ||||||
| .content-box { |   .right-button { | ||||||
|   text-align: left; |  | ||||||
|   .content-item { |  | ||||||
|     display: flex; |  | ||||||
|     justify-content: flex-start; |  | ||||||
|     align-items: center; |  | ||||||
|     margin-bottom: 20px; |  | ||||||
|     .icon { |  | ||||||
|       margin-right: 20px; |  | ||||||
|       width: 40px; |  | ||||||
|       height: 40px; |  | ||||||
|       img { |  | ||||||
|     width: 100%; |     width: 100%; | ||||||
|         height: 100%; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     .title { |  | ||||||
|       font-size: 16px; |  | ||||||
|       color: #999; |  | ||||||
|     } |  | ||||||
|     .content { |  | ||||||
|       font-size: 18px; |  | ||||||
|       margin-left: 6px; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   .content-item1 { |  | ||||||
|     display: flex; |  | ||||||
|     justify-content: flex-start; |  | ||||||
|     align-items: center; |  | ||||||
|     cursor: pointer; |  | ||||||
|     margin-bottom: 20px; |  | ||||||
|     .iconY { |  | ||||||
|       width: 14px; |  | ||||||
|       height: 14px; |  | ||||||
|       border: 1px solid #999; |  | ||||||
|       border-radius: 50%; |  | ||||||
|       margin-right: 6px; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| .content-box1 { |  | ||||||
|   text-align: left; |  | ||||||
|   .title { |  | ||||||
|     font-size: 20px; |  | ||||||
|     margin-bottom: 6px; |  | ||||||
|   } |  | ||||||
|   .bid { |  | ||||||
|     display: flex; |  | ||||||
|     justify-content: space-between; |  | ||||||
|     align-items: center; |  | ||||||
|     margin-bottom: 10px; |  | ||||||
|     cursor: pointer; |  | ||||||
|     .bid-right { |  | ||||||
|       font-size: 14px; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|  | |||||||
| @ -160,11 +160,11 @@ const state = reactive({ | |||||||
|       typeName: '高标准冷库', |       typeName: '高标准冷库', | ||||||
|       title: '孟定果蔬冷链中心', |       title: '孟定果蔬冷链中心', | ||||||
|       operationUnit: '临沧边境合作区管委会 ', |       operationUnit: '临沧边境合作区管委会 ', | ||||||
|       pricingUnit: '元/吨·天', |       pricingUnit: '元/板·天', | ||||||
|       storageArea: '5,000㎡', |       storageArea: '5,000㎡', | ||||||
|       usableArea: '1,200㎡', |       usableArea: '1,200㎡', | ||||||
|       location: '孟定海关监管区旁', |       location: '孟定海关监管区旁', | ||||||
|       price: '¥2.8元/吨/月', |       price: '¥2.8元/板/月', | ||||||
|       rank: '4', |       rank: '4', | ||||||
|     }, |     }, | ||||||
|   ], |   ], | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user