Commit 328547074b5d3bc277cb01134847ccbc4615ad9d
1 parent
38584a8d
feat: 初步修改
Showing
24 changed files
with
487 additions
and
961 deletions
garbage-removal/src/apis/company.js
garbage-removal/src/pages.json
| ... | ... | @@ -45,7 +45,7 @@ |
| 45 | 45 | "enablePullDownRefresh": false |
| 46 | 46 | } |
| 47 | 47 | },{ |
| 48 | - "path": "pages/order/detail/index", | |
| 48 | + "path": "pages/order/other-home/detail/index", | |
| 49 | 49 | "style": { |
| 50 | 50 | "navigationBarTitleText": "派单详情", |
| 51 | 51 | "navigationBarTextStyle": "white", |
| ... | ... | @@ -53,7 +53,7 @@ |
| 53 | 53 | "enablePullDownRefresh": false |
| 54 | 54 | } |
| 55 | 55 | },{ |
| 56 | - "path": "pages/order/success/index", | |
| 56 | + "path": "pages/order/other-home/success/index", | |
| 57 | 57 | "style": { |
| 58 | 58 | "navigationBarTitleText": "完成派单", |
| 59 | 59 | "navigationBarTextStyle": "white", |
| ... | ... | @@ -61,7 +61,7 @@ |
| 61 | 61 | "enablePullDownRefresh": false |
| 62 | 62 | } |
| 63 | 63 | },{ |
| 64 | - "path": "pages/order/guest/index", | |
| 64 | + "path": "pages/order/other-home/guest/index", | |
| 65 | 65 | "style": { |
| 66 | 66 | "navigationBarTitleText": "详情", |
| 67 | 67 | "navigationBarTextStyle": "white", |
| ... | ... | @@ -69,7 +69,7 @@ |
| 69 | 69 | "enablePullDownRefresh": false |
| 70 | 70 | } |
| 71 | 71 | },{ |
| 72 | - "path": "pages/order/upload/index", | |
| 72 | + "path": "pages/order/other-home/upload/index", | |
| 73 | 73 | "style": { |
| 74 | 74 | "navigationBarTitleText": "上传照片", |
| 75 | 75 | "navigationBarTextStyle": "white", |
| ... | ... | @@ -77,7 +77,7 @@ |
| 77 | 77 | "enablePullDownRefresh": false |
| 78 | 78 | } |
| 79 | 79 | },{ |
| 80 | - "path": "pages/order/evaluate-info/index", | |
| 80 | + "path": "pages/order/other-home/evaluate-info/index", | |
| 81 | 81 | "style": { |
| 82 | 82 | "navigationBarTitleText": "评价详情", |
| 83 | 83 | "navigationBarTextStyle": "white", |
| ... | ... | @@ -85,7 +85,7 @@ |
| 85 | 85 | "enablePullDownRefresh": false |
| 86 | 86 | } |
| 87 | 87 | },{ |
| 88 | - "path": "pages/order/evaluate/index", | |
| 88 | + "path": "pages/order/other-home/evaluate/index", | |
| 89 | 89 | "style": { |
| 90 | 90 | "navigationBarTitleText": "写评价", |
| 91 | 91 | "navigationBarTextStyle": "white", | ... | ... |
garbage-removal/src/pages/home/clean/company-detail/index.vue
| ... | ... | @@ -93,6 +93,7 @@ |
| 93 | 93 | |
| 94 | 94 | <script setup> |
| 95 | 95 | import { queryCarList } from '@/apis/carinfo.js'; |
| 96 | +import { queryEnterpriseById } from '@/apis/company.js'; | |
| 96 | 97 | import { onLoad } from '@dcloudio/uni-app'; |
| 97 | 98 | import { ref } from 'vue'; |
| 98 | 99 | const baseDataList = ref([{ label: '法人' }, { label: '负责人' }, { label: '业务联系电话' }, { label: '道路运输许可证' }, { label: '核准有效期' }, { label: '注册地址' }]); |
| ... | ... | @@ -130,11 +131,23 @@ const handleContactClick = (val) => { |
| 130 | 131 | }).catch(err => { }); |
| 131 | 132 | } |
| 132 | 133 | onLoad((options) => { |
| 133 | - companyInfo.value = JSON.parse(options.companyObj); | |
| 134 | - userAddress.value = JSON.parse(options.userAddress); | |
| 135 | - tel.value = options.tel; | |
| 136 | - initData(companyInfo.value); | |
| 137 | - queryCarList({ companyId: companyInfo.value.id }).then(res => { | |
| 134 | + let companyId; | |
| 135 | + if (options.companyObj && options.userAddress && options.tel) { | |
| 136 | + companyInfo.value = JSON.parse(options.companyObj); | |
| 137 | + userAddress.value = JSON.parse(options.userAddress); | |
| 138 | + tel.value = options.tel; | |
| 139 | + initData(companyInfo.value); | |
| 140 | + companyId = companyInfo.value.id | |
| 141 | + } | |
| 142 | + if (options.companyId) { | |
| 143 | + companyId = options.companyId | |
| 144 | + queryEnterpriseById(companyId).then(res => { | |
| 145 | + companyInfo.value = res.data.data | |
| 146 | + initData(companyInfo.value); | |
| 147 | + }) | |
| 148 | + } | |
| 149 | + | |
| 150 | + queryCarList({ companyId: companyId }).then(res => { | |
| 138 | 151 | carList.value = res.data.rows |
| 139 | 152 | }) |
| 140 | 153 | }) |
| ... | ... | @@ -161,7 +174,6 @@ const handlerClickJumpMap = () => { |
| 161 | 174 | } |
| 162 | 175 | } |
| 163 | 176 | }) |
| 164 | - console.log('跳转定位到公司位置'); | |
| 165 | 177 | } |
| 166 | 178 | |
| 167 | 179 | const initData = (baseData) => { | ... | ... |
garbage-removal/src/pages/home/clean/index-back.vue deleted
100644 → 0
| 1 | -<template> | |
| 2 | - <view class="mask-box"> | |
| 3 | - <liu-delivery-time :isMask="true" :change="changeTime" ref="chooseTime" title="请选择预约时间"></liu-delivery-time> | |
| 4 | - <u-picker closeOnClickOverlay :show="carTypeShowFlag" :columns="candidates" :itemHeight="100" | |
| 5 | - @confirm="handlePickerCarInfoConfirm" @cancel="handleCarInfoClick(false)" | |
| 6 | - @close="handleCarInfoClick(false)"></u-picker> | |
| 7 | - <u-picker closeOnClickOverlay :show="garbageTypeShowFlag" :columns="garbageTypeList" :itemHeight="100" | |
| 8 | - @confirm="handlePickerGarbageTypeConfirm" @close="handleGarbageTypeClick(false)" | |
| 9 | - @cancel="handleGarbageTypeClick(false)"></u-picker> | |
| 10 | - <u-popup :zIndex="10074" closeOnClickOverlay :show="carPopupShowFlag" :round="10" @close="handlePopupClick(false)" | |
| 11 | - @open="handlePopupClick(true)"> | |
| 12 | - <view class="company-clean-container-car-popup"> | |
| 13 | - <!-- 主要内容 --> | |
| 14 | - <view class="company-clean-container-car-popup-content"> | |
| 15 | - <view class="company-clean-container-car-popup-content-title"> | |
| 16 | - <view style="text-align: center;"> | |
| 17 | - 车辆类型 | |
| 18 | - </view> | |
| 19 | - </view> | |
| 20 | - <view class="company-clean-container-car-popup-content-box"> | |
| 21 | - <view class="company-clean-container-car-popup-content-box-item" v-for="(item, index) in garCarInfoList" | |
| 22 | - :key="index"> | |
| 23 | - <view class="company-clean-container-car-popup-content-box-item-text"> | |
| 24 | - {{ item.garOrderCarType }} | |
| 25 | - </view> | |
| 26 | - <view class="company-clean-container-car-popup-content-box-item-number" hover-class="hoverClickStyle"> | |
| 27 | - <u-number-box :min="0" :max="9999" integer buttonSize="46" :inputWidth="100" | |
| 28 | - v-model="garCarInfoList[item.garOrderCarType].garOrderCarNumber" :disabledInput="true"></u-number-box> | |
| 29 | - </view> | |
| 30 | - </view> | |
| 31 | - | |
| 32 | - </view> | |
| 33 | - </view> | |
| 34 | - <!-- 占位盒子 --> | |
| 35 | - <view class="company-clean-container-car-popup-button-safe"> | |
| 36 | - | |
| 37 | - </view> | |
| 38 | - </view> | |
| 39 | - </u-popup> | |
| 40 | - </view> | |
| 41 | - <view class="company-clean-container"> | |
| 42 | - <view class="company-clean-container-box"> | |
| 43 | - <view class="company-clean-container-header"> | |
| 44 | - <view class="company-clean-container-header-address"> | |
| 45 | - {{ userAddress.garUserAddress }}{{ userAddress.garRemark }} | |
| 46 | - </view> | |
| 47 | - <view class="company-clean-container-header-base-info"> | |
| 48 | - {{ userAddress.garUserContactName }} {{ userAddress.garUserContactTel }} | |
| 49 | - </view> | |
| 50 | - <view @click.stop="handleTimeChoose" class="company-clean-container-header-reservation"> | |
| 51 | - <view class="company-clean-container-header-reservation-left"> | |
| 52 | - <text style="color: red;">*</text> <u-icon name="calendar" size="40"></u-icon>预约时间 | |
| 53 | - </view> | |
| 54 | - <view class="company-clean-container-header-reservation-right"> | |
| 55 | - <text style="margin-right: 10rpx;">{{ dayTime ? dayTime : "请选择时间" }}</text> <u-icon name="arrow-right" | |
| 56 | - size="25"></u-icon> | |
| 57 | - </view> | |
| 58 | - </view> | |
| 59 | - </view> | |
| 60 | - <view class="company-clean-container-car-main"> | |
| 61 | - <view class="company-clean-container-car-main-content"> | |
| 62 | - <view v-if="paramFrom.carType" class="company-clean-container-car-main-content-type"> | |
| 63 | - <text class="company-clean-container-car-main-content-type-price-area"><text | |
| 64 | - style="color: red;">*</text>车辆类型:</text> | |
| 65 | - <!-- <uni-combox label="" :candidates="candidates" placeholder="请选择运输车辆类型" | |
| 66 | - v-model="paramFrom.carType"></uni-combox> --> | |
| 67 | - <view class="" hover-class="hoverClickStyle" @click.stop="handleCarInfoClick(true)"> | |
| 68 | - <u--input color="#909399" border="none" style="pointer-events:none" :modelValue="paramFrom.carType" | |
| 69 | - type="text" placeholder-class="line" readonly /> | |
| 70 | - </view> | |
| 71 | - </view> | |
| 72 | - <view class="company-clean-container-car-main-content-type"> | |
| 73 | - <text class="company-clean-container-car-main-content-type-price-area"><text | |
| 74 | - style="color: red;">*</text>垃圾类型:</text> | |
| 75 | - <view hover-class="hoverClickStyle" @click.stop="handleGarbageTypeClick(true)"> | |
| 76 | - <u--input color="#909399" border="none" style="pointer-events:none" :modelValue="paramFrom.garbageType" | |
| 77 | - type="text" placeholder-class="line" readonly /> | |
| 78 | - </view> | |
| 79 | - </view> | |
| 80 | - <view class="company-clean-container-car-main-content-img"> | |
| 81 | - <image class="company-clean-container-car-main-content-img" :src="carFront" /> | |
| 82 | - </view> | |
| 83 | - <view class="company-clean-container-car-main-content-remark"> | |
| 84 | - {{ garCarTransportInfo }} | |
| 85 | - </view> | |
| 86 | - | |
| 87 | - <view v-if="paramFrom.carType" class="company-clean-container-car-main-content-number"> | |
| 88 | - <view class="company-clean-container-car-main-content-number-txt"> | |
| 89 | - <text style="color: red;">*</text>协商车辆数量: | |
| 90 | - </view> | |
| 91 | - <view class="company-clean-container-car-main-content-number-button"> | |
| 92 | - <u-number-box :min="0" :max="9999" integer buttonSize="46" :inputWidth="100" | |
| 93 | - v-model="garCarInfoList[paramFrom.carType].garOrderCarNumber"></u-number-box> | |
| 94 | - </view> | |
| 95 | - </view> | |
| 96 | - <view class="company-clean-container-car-main-content-prompt"> | |
| 97 | - 温馨提示:垃圾类型不符合,企业有权拒绝清运。 | |
| 98 | - </view> | |
| 99 | - </view> | |
| 100 | - </view> | |
| 101 | - <view class="company-clean-container-site-image-info"> | |
| 102 | - <view class="company-clean-container-site-image-info-remark"> | |
| 103 | - <text style="color: red;">*</text>现场照片(最多上传10张) | |
| 104 | - </view> | |
| 105 | - <view class="company-clean-container-site-image-info-img"> | |
| 106 | - <u-upload width="200" height="150" :fileList="fileList" @afterRead="afterRead" @delete="deletePic" name="3" | |
| 107 | - multiple :maxCount="10" :previewFullImage="true"></u-upload> | |
| 108 | - </view> | |
| 109 | - <view class="company-clean-container-site-image-info-input-remark"> | |
| 110 | - 填写备注 | |
| 111 | - </view> | |
| 112 | - <view class="company-clean-container-site-image-info-input-remark-box"> | |
| 113 | - <u--textarea v-model="paramFrom.remark" placeholder="请输入内容"></u--textarea> | |
| 114 | - </view> | |
| 115 | - </view> | |
| 116 | - <view class="company-clean-container-site-image-info-sure-button"> | |
| 117 | - <view class="company-clean-container-site-image-info-sure-button-radio"> | |
| 118 | - <view @click="changeAgree"> | |
| 119 | - <u-checkbox-group v-model="paramFrom.sureReadFlag" placement="row"> | |
| 120 | - <u-checkbox activeColor="#5ac725" :customStyle="{ marginBottom: '0px', marginTop: '1px' }" size="25" | |
| 121 | - labelSize="25" shape="square" :key="0" :name="true" :labelDisabled="true" | |
| 122 | - labelColor="#909399"></u-checkbox> | |
| 123 | - </u-checkbox-group> | |
| 124 | - </view> | |
| 125 | - <view> | |
| 126 | - 本人已确认信息真实有效,并将上述信息告知市容环境卫生主管部门。 | |
| 127 | - </view> | |
| 128 | - </view> | |
| 129 | - </view> | |
| 130 | - </view> | |
| 131 | - <view class="company-clean-bottom" style="z-index: 10074;"> | |
| 132 | - <movable-area v-if="!carPopupShowFlag" ref="movableAreaElement" class="movableArea"> | |
| 133 | - <movable-view class="movableView" :x="x" :y="y" direction="all" @change="onChange"> | |
| 134 | - <view class="company-clean-call-box-container"> | |
| 135 | - <u-icon @click="handleContactClick(tel)" name="phone-fill" color="#ffffff" size="50"></u-icon> | |
| 136 | - </view> | |
| 137 | - </movable-view> | |
| 138 | - </movable-area> | |
| 139 | - <view class="company-clean-bottom-box"> | |
| 140 | - <view class="company-clean-bottom-left"> | |
| 141 | - <view class="company-clean-bottom-left-icon"> | |
| 142 | - <u-icon @click="carPopupShowFlag = true" :stop="true" size="50" name="car-fill"></u-icon> | |
| 143 | - </view> | |
| 144 | - <view class="company-clean-bottom-left-number"> | |
| 145 | - <up-badge :type="type" max="99" :value="garCarNumberCount"></up-badge> | |
| 146 | - </view> | |
| 147 | - </view> | |
| 148 | - <view class="company-clean-bottom-right"> | |
| 149 | - <u-button @click="handleOderSure" shape="square" color="#a9e08f" text="立即派单"></u-button> | |
| 150 | - </view> | |
| 151 | - </view> | |
| 152 | - </view> | |
| 153 | - </view> | |
| 154 | -</template> | |
| 155 | - | |
| 156 | -<script setup> | |
| 157 | -import { queryCarList } from '@/apis/carinfo.js'; | |
| 158 | -import { uploadFilePromise } from '@/apis/common.js'; | |
| 159 | -import { saveOrder } from '@/apis/order.js'; | |
| 160 | -import liuDeliveryTime from "@/components/liu-delivery-time/liu-delivery-time.vue"; | |
| 161 | -import { useMainStore } from '@/stores/index.js'; | |
| 162 | -import { onLoad } from '@dcloudio/uni-app'; | |
| 163 | -import { computed, getCurrentInstance, nextTick, ref, watch } from 'vue'; | |
| 164 | -const { proxy } = getCurrentInstance(); | |
| 165 | - | |
| 166 | -const store = useMainStore(); | |
| 167 | -const userType = computed(() => store.userType) | |
| 168 | -const x = ref(5) | |
| 169 | -const y = ref() | |
| 170 | -const movableAreaElement = ref() | |
| 171 | -const companyObj = ref() | |
| 172 | -const tel = ref() | |
| 173 | -const carTypeShowFlag = ref(false) | |
| 174 | -const garbageTypeShowFlag = ref(false) | |
| 175 | -const carPopupShowFlag = ref(false) | |
| 176 | -const userAddress = ref({ | |
| 177 | - garUserContactName: "", | |
| 178 | - garUserContactTel: "", | |
| 179 | - garRemark: "", | |
| 180 | - garUserAddress: "", | |
| 181 | - garCoordinate: "", | |
| 182 | - garLongitude: "", | |
| 183 | - garLatitude: "", | |
| 184 | -}) | |
| 185 | -// 车辆信息 | |
| 186 | -const garCarInfoList = ref({}) | |
| 187 | -const garCarLabelInfoList = ref({}) | |
| 188 | -const garCarLabelInfoNow = ref() | |
| 189 | -const garCarTransportInfo = computed(() => { | |
| 190 | - try { | |
| 191 | - let carInfo = garCarLabelInfoNow.value | |
| 192 | - let lengthWidthHeight = carInfo.lengthWidthHeight.split(";"); | |
| 193 | - let boxLength = lengthWidthHeight[0]; // 箱子的长度(单位:米) | |
| 194 | - let boxWidth = lengthWidthHeight[1]; // 箱子的宽度(单位:米) | |
| 195 | - let boxHeight = lengthWidthHeight[2]; // 箱子的高度(单位:米) | |
| 196 | - | |
| 197 | - let bagLength = 0.75; // 袋子的长度(单位:米) | |
| 198 | - let bagWidth = 0.45; // 袋子的宽度(单位:米) | |
| 199 | - let bagHeight = 0.22; // 袋子的高度(单位:米) | |
| 200 | - | |
| 201 | - let boxVolume = boxLength * boxWidth * boxHeight; // 箱子的体积(单位:立方米) | |
| 202 | - let bagVolume = bagLength * bagWidth * bagHeight; // 袋子的体积(单位:立方米) | |
| 203 | - | |
| 204 | - let bagCount = Math.floor(boxVolume / bagVolume); // 箱子可以容纳的袋子数量(向下取整) | |
| 205 | - | |
| 206 | - return `箱体长${boxLength}m宽${boxWidth}m高${boxHeight}m,最多课容纳约${bagCount}袋袋装修垃圾(75cm * 45cm每袋)。` | |
| 207 | - } catch (error) { | |
| 208 | - return "符合装修垃圾运输管理规范的新型环保智能装修垃圾运输车。" | |
| 209 | - } | |
| 210 | - | |
| 211 | -}) | |
| 212 | -// 车辆数量 | |
| 213 | -const garCarNumberCount = computed(() => { | |
| 214 | - let count = 0; | |
| 215 | - if (garCarInfoList.value) { | |
| 216 | - for (const key in garCarInfoList.value) { | |
| 217 | - const element = garCarInfoList.value[key]; | |
| 218 | - count = typeof element.garOrderCarNumber === 'number' ? count + element.garOrderCarNumber : count; | |
| 219 | - console.log(element.garOrderCarNumber instanceof Number); | |
| 220 | - } | |
| 221 | - } | |
| 222 | - console.log(count); | |
| 223 | - return count; | |
| 224 | -}) | |
| 225 | -const garbageTypeList = ref([["装修垃圾", "建筑垃圾"]]) | |
| 226 | -const paramFrom = ref({ | |
| 227 | - carNumber: 0, | |
| 228 | - remark: "", | |
| 229 | - sureReadFlag: [], | |
| 230 | - carType: "", | |
| 231 | - garbageType: "装修垃圾" | |
| 232 | -}) | |
| 233 | -const dayTime = ref() | |
| 234 | - | |
| 235 | -const chooseTime = ref() | |
| 236 | -const fileList = ref([]) | |
| 237 | -const candidates = ref([]) | |
| 238 | -const handleTimeChoose = () => { | |
| 239 | - chooseTime.value.open(); | |
| 240 | -} | |
| 241 | - | |
| 242 | -const changeTime = (e) => { | |
| 243 | - dayTime.value = e.value | |
| 244 | -} | |
| 245 | -const changeAgree = (e) => { | |
| 246 | - // paramFrom.value.sureReadFlag = e | |
| 247 | - paramFrom.value.sureReadFlag[0] = !paramFrom.value.sureReadFlag[0] | |
| 248 | -} | |
| 249 | -const onChange = (e) => { | |
| 250 | - // console.log(e); | |
| 251 | -} | |
| 252 | - | |
| 253 | -const handlePopupClick = (val) => { | |
| 254 | - carPopupShowFlag.value = val | |
| 255 | -} | |
| 256 | - | |
| 257 | -/** | |
| 258 | - * 初始化信息 | |
| 259 | - */ | |
| 260 | -onLoad((options) => { | |
| 261 | - companyObj.value = JSON.parse(options.companyObj); | |
| 262 | - tel.value = options.tel; | |
| 263 | - userAddress.value = JSON.parse(options.userAddress); | |
| 264 | - queryCarList({ companyId: companyObj.value.id }).then(res => { | |
| 265 | - // 设置车辆类型 | |
| 266 | - candidates.value = [[...new Set(res.data.rows | |
| 267 | - .filter(item => item.containerVolume) | |
| 268 | - .map(item => { | |
| 269 | - garCarLabelInfoList.value[item.containerVolume + "方车"] = item | |
| 270 | - return item.containerVolume + "方车" | |
| 271 | - })) | |
| 272 | - ]]; | |
| 273 | - // 设置初始车辆数量 | |
| 274 | - candidates.value[0].forEach((item, index) => { | |
| 275 | - garCarInfoList.value[item] = { | |
| 276 | - garOrderCarNumber: 0, | |
| 277 | - garOrderCarType: item | |
| 278 | - } | |
| 279 | - }) | |
| 280 | - // 设置默认车辆 | |
| 281 | - paramFrom.value.carType = candidates.value[0][0]; | |
| 282 | - garCarLabelInfoNow.value = garCarLabelInfoList.value[paramFrom.value.carType] | |
| 283 | - }) | |
| 284 | -}) | |
| 285 | - | |
| 286 | - | |
| 287 | -const handleCarInfoClick = (val) => { | |
| 288 | - carTypeShowFlag.value = val | |
| 289 | -} | |
| 290 | -const handleGarbageTypeClick = (val) => { | |
| 291 | - garbageTypeShowFlag.value = val | |
| 292 | -} | |
| 293 | -/** | |
| 294 | - * 拨打电话回调 | |
| 295 | - */ | |
| 296 | -const handleContactClick = (val) => { | |
| 297 | - uni.makePhoneCall({ phoneNumber: val }).then(res => { | |
| 298 | - }).catch(err => { }); | |
| 299 | -} | |
| 300 | - | |
| 301 | -// 删除图片 | |
| 302 | -const deletePic = (event) => { | |
| 303 | - fileList.value.splice(event.index, 1); | |
| 304 | -}; | |
| 305 | - | |
| 306 | -// 新增图片 | |
| 307 | -const afterRead = async (event) => { | |
| 308 | - // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 | |
| 309 | - let lists = [].concat(event.file); | |
| 310 | - let fileListLen = fileList.value.length; | |
| 311 | - lists.map((item) => { | |
| 312 | - fileList.value.push({ | |
| 313 | - ...item, | |
| 314 | - status: 'uploading', | |
| 315 | - message: '上传中', | |
| 316 | - }); | |
| 317 | - }); | |
| 318 | - for (let i = 0; i < lists.length; i++) { | |
| 319 | - let requestPath = import.meta.env.VITE_BASE_URL + import.meta.env.VITE_BASE_FILE_UPLOAD_PREFIX; | |
| 320 | - const result = await uploadFilePromise(requestPath, lists[i].url); | |
| 321 | - let item = fileList.value[fileListLen]; | |
| 322 | - fileList.value.splice(fileListLen, 1, { | |
| 323 | - ...item, | |
| 324 | - status: 'success', | |
| 325 | - message: '', | |
| 326 | - url: result.data.fileName, | |
| 327 | - }); | |
| 328 | - fileListLen++; | |
| 329 | - } | |
| 330 | -}; | |
| 331 | - | |
| 332 | - | |
| 333 | -const handlePickerGarbageTypeConfirm = (e) => { | |
| 334 | - paramFrom.value.garbageType = e.value | |
| 335 | - garbageTypeShowFlag.value = false | |
| 336 | -} | |
| 337 | -const handlePickerCarInfoConfirm = (e) => { | |
| 338 | - paramFrom.value.carType = e.value | |
| 339 | - garCarLabelInfoNow.value = garCarLabelInfoList.value[paramFrom.value.carType] | |
| 340 | - carTypeShowFlag.value = false | |
| 341 | - console.log(garCarLabelInfoNow.value); | |
| 342 | -} | |
| 343 | - | |
| 344 | -/** | |
| 345 | - * 处理下单 | |
| 346 | - */ | |
| 347 | -const handleOderSure = () => { | |
| 348 | - let garCarInfos = []; | |
| 349 | - for (const key in garCarInfoList.value) { | |
| 350 | - garCarInfos.push(garCarInfoList.value[key]) | |
| 351 | - } | |
| 352 | - | |
| 353 | - let params = { | |
| 354 | - /** | |
| 355 | - * 派单地址 | |
| 356 | - */ | |
| 357 | - garOrderAddress: userAddress.value.garUserAddress, | |
| 358 | - | |
| 359 | - /** | |
| 360 | - * 派单详细地址 | |
| 361 | - */ | |
| 362 | - garOrderAddressDetails: userAddress.value.garRemark, | |
| 363 | - | |
| 364 | - /** | |
| 365 | - * 派单姓名 | |
| 366 | - */ | |
| 367 | - garOrderContactName: userAddress.value.garUserContactName, | |
| 368 | - garCarInfoList: garCarInfos, | |
| 369 | - | |
| 370 | - /** | |
| 371 | - * 垃圾类型 | |
| 372 | - */ | |
| 373 | - garOrderTrashType: paramFrom.value.garbageType, | |
| 374 | - | |
| 375 | - /** | |
| 376 | - * 派单人电话 | |
| 377 | - */ | |
| 378 | - garOrderContactTel: userAddress.value.garUserContactTel, | |
| 379 | - | |
| 380 | - /** | |
| 381 | - * 承接经营单位 | |
| 382 | - */ | |
| 383 | - garOrderCompanyId: companyObj.value.id, | |
| 384 | - | |
| 385 | - /** | |
| 386 | - * 公司名称 | |
| 387 | - */ | |
| 388 | - garOrderCompanyName: companyObj.value.name, | |
| 389 | - | |
| 390 | - /** | |
| 391 | - * 公司负责人电话 | |
| 392 | - */ | |
| 393 | - garOrderCompanyTel: companyObj.value.servicePhone, | |
| 394 | - | |
| 395 | - /** | |
| 396 | - * 约定时间 | |
| 397 | - */ | |
| 398 | - garOrderAgreementTime: dayTime.value, | |
| 399 | - /** | |
| 400 | - * 备注 | |
| 401 | - */ | |
| 402 | - garRemark: paramFrom.value.remark, | |
| 403 | - /** | |
| 404 | - * 图片列表 | |
| 405 | - */ | |
| 406 | - imageUrls: fileList.value.map(item => item.url), | |
| 407 | - garLongitude: userAddress.value.garLongitude, | |
| 408 | - garLatitude: userAddress.value.garLatitude, | |
| 409 | - garCoordinate: userAddress.value.garCoordinate, | |
| 410 | - } | |
| 411 | - if (!validateParams(params)) { | |
| 412 | - return; | |
| 413 | - } | |
| 414 | - | |
| 415 | - saveOrder(params).then(res => { | |
| 416 | - // TODO 派单详情 | |
| 417 | - if (res.data.success) { | |
| 418 | - if (userType.value === "运输驾驶员") { | |
| 419 | - uni.$u.toast("派单成功,请切换成且角色查看派单详情") | |
| 420 | - setTimeout(() => { | |
| 421 | - uni.$u.route({ | |
| 422 | - type: 'navigateBack', | |
| 423 | - url: `pages/home/index`, | |
| 424 | - }) | |
| 425 | - }, 300) | |
| 426 | - } else { | |
| 427 | - uni.$u.route({ | |
| 428 | - type: "redirect", | |
| 429 | - url: `pages/order/detail/index`, | |
| 430 | - params: { | |
| 431 | - orderId: res.data.data | |
| 432 | - } | |
| 433 | - }) | |
| 434 | - uni.$u.toast(res.data.msg) | |
| 435 | - } | |
| 436 | - | |
| 437 | - } | |
| 438 | - }) | |
| 439 | -} | |
| 440 | - | |
| 441 | - | |
| 442 | -/** | |
| 443 | - * 校验参数 | |
| 444 | - * @param {Object} params | |
| 445 | - */ | |
| 446 | -const validateParams = (params) => { | |
| 447 | - if (!paramFrom.value.sureReadFlag[0]) { | |
| 448 | - jumpPrompt('请勾选"本人已确认信息真实有效,并将上诉信息告知市容环境卫生主管部门"') | |
| 449 | - return false; | |
| 450 | - } | |
| 451 | - for (const key in params) { | |
| 452 | - if (!params[key] && key != "garRemark") { | |
| 453 | - switch (key) { | |
| 454 | - case "garOrderAgreementTime": | |
| 455 | - jumpPrompt('请选择预约时间') | |
| 456 | - break; | |
| 457 | - | |
| 458 | - } | |
| 459 | - return false; | |
| 460 | - } | |
| 461 | - if (key === "garCarInfoList") { | |
| 462 | - let count = 0; | |
| 463 | - params[key].forEach(item => { | |
| 464 | - count += item.garOrderCarNumber; | |
| 465 | - }) | |
| 466 | - if (count === 0) { | |
| 467 | - jumpPrompt('请添加车辆数量') | |
| 468 | - return false; | |
| 469 | - } | |
| 470 | - } | |
| 471 | - | |
| 472 | - if (key == "imageUrls") { | |
| 473 | - if (params[key].length == 0) { | |
| 474 | - jumpPrompt('请上传现场图片') | |
| 475 | - return false; | |
| 476 | - } | |
| 477 | - if (!validateImage(params[key])) { | |
| 478 | - uni.$u.toast('请等待图片上传完毕') | |
| 479 | - return false; | |
| 480 | - } | |
| 481 | - } | |
| 482 | - } | |
| 483 | - return true; | |
| 484 | -} | |
| 485 | - | |
| 486 | -const jumpPrompt = (msg) => { | |
| 487 | - uni.showModal({ | |
| 488 | - title: '提示', | |
| 489 | - content: msg, | |
| 490 | - showCancel: false, | |
| 491 | - success: function (res) { | |
| 492 | - if (res.confirm) { | |
| 493 | - } else if (res.cancel) { | |
| 494 | - } | |
| 495 | - } | |
| 496 | - }); | |
| 497 | -} | |
| 498 | -const validateImage = (fileList) => { | |
| 499 | - for (let index = 0; index < fileList.length; index++) { | |
| 500 | - const str = fileList[index]; | |
| 501 | - if (!str.startsWith("/profile/upload")) { | |
| 502 | - return false; | |
| 503 | - } | |
| 504 | - } | |
| 505 | - return true; | |
| 506 | -} | |
| 507 | - | |
| 508 | - | |
| 509 | -// 开始执行一次 | |
| 510 | -watch(carPopupShowFlag, (val) => { | |
| 511 | - // console.log(val); | |
| 512 | - // carPopupShowFlag.value = val | |
| 513 | - if (!val) { | |
| 514 | - setTimeout(() => { | |
| 515 | - nextTick(() => { | |
| 516 | - let areaHeight; | |
| 517 | - // select中的参数就如css选择器一样选择元素 | |
| 518 | - let movableArea = uni.createSelectorQuery().in(proxy).select(".movableArea"); | |
| 519 | - movableArea.boundingClientRect(function (data) { | |
| 520 | - // data - 包含元素的高度等信息 | |
| 521 | - areaHeight = data.height; | |
| 522 | - y.value = areaHeight > 40 ? (areaHeight - 40) : areaHeight; | |
| 523 | - }).exec(function (res) { | |
| 524 | - // 注意:exec方法必须执行,即便什么也不做,否则不会获取到任何数据 | |
| 525 | - }) | |
| 526 | - }) | |
| 527 | - }, 0); | |
| 528 | - } | |
| 529 | -}, { | |
| 530 | - immediate: true | |
| 531 | -}) | |
| 532 | - | |
| 533 | -</script> | |
| 534 | - | |
| 535 | -<style lang="scss" scoped> | |
| 536 | -$custom-marin-bottom: 20rpx; | |
| 537 | -$custom-page-padding: 20rpx; | |
| 538 | -$custom-border-radio: 20rpx; | |
| 539 | -$custom-bottom-height: 200rpx; | |
| 540 | - | |
| 541 | - | |
| 542 | -.company-clean-container { | |
| 543 | - height: 100%; | |
| 544 | - width: 100%; | |
| 545 | - background-color: $u-info-light; | |
| 546 | - box-sizing: border-box; | |
| 547 | - overflow-y: scroll; | |
| 548 | - | |
| 549 | - | |
| 550 | - .company-clean-container-box { | |
| 551 | - height: 100%; | |
| 552 | - width: 100%; | |
| 553 | - padding: $custom-page-padding; | |
| 554 | - box-sizing: border-box; | |
| 555 | - | |
| 556 | - .company-clean-container-header { | |
| 557 | - padding: $custom-page-padding; | |
| 558 | - box-sizing: border-box; | |
| 559 | - background-color: #ffffff; | |
| 560 | - border-radius: $custom-border-radio; | |
| 561 | - margin-bottom: $custom-marin-bottom; | |
| 562 | - | |
| 563 | - .company-clean-container-header-address { | |
| 564 | - font-size: 30rpx; | |
| 565 | - font-weight: bold; | |
| 566 | - color: $u-main-color; | |
| 567 | - } | |
| 568 | - | |
| 569 | - .company-clean-container-header-base-info { | |
| 570 | - font-size: 25rpx; | |
| 571 | - color: $u-info; | |
| 572 | - line-height: 80rpx; | |
| 573 | - } | |
| 574 | - | |
| 575 | - .company-clean-container-header-reservation { | |
| 576 | - display: flex; | |
| 577 | - justify-content: space-between; | |
| 578 | - font-size: 25rpx; | |
| 579 | - @include handleClick; | |
| 580 | - | |
| 581 | - .company-clean-container-header-reservation-left { | |
| 582 | - display: flex; | |
| 583 | - align-items: center; | |
| 584 | - color: $u-content-color; | |
| 585 | - } | |
| 586 | - | |
| 587 | - .company-clean-container-header-reservation-right { | |
| 588 | - display: flex; | |
| 589 | - align-items: center; | |
| 590 | - color: $u-content-color; | |
| 591 | - } | |
| 592 | - } | |
| 593 | - | |
| 594 | - | |
| 595 | - } | |
| 596 | - | |
| 597 | - .company-clean-container-car-main { | |
| 598 | - padding: $custom-page-padding; | |
| 599 | - border-radius: $custom-border-radio; | |
| 600 | - box-sizing: border-box; | |
| 601 | - background-color: #ffffff; | |
| 602 | - margin-bottom: $custom-marin-bottom; | |
| 603 | - | |
| 604 | - .company-clean-container-car-main-title { | |
| 605 | - font-size: 30rpx; | |
| 606 | - font-weight: bold; | |
| 607 | - color: #a9e08f; | |
| 608 | - display: flex; | |
| 609 | - justify-content: center; | |
| 610 | - } | |
| 611 | - | |
| 612 | - .company-clean-container-car-main-content { | |
| 613 | - width: 100%; | |
| 614 | - display: flex; | |
| 615 | - flex-direction: column; | |
| 616 | - justify-content: center; | |
| 617 | - | |
| 618 | - .company-clean-container-car-main-content-img { | |
| 619 | - width: 600rpx; | |
| 620 | - height: 400rpx; | |
| 621 | - | |
| 622 | - .company-clean-container-car-main-content-img { | |
| 623 | - width: 600rpx; | |
| 624 | - height: 400rpx; | |
| 625 | - } | |
| 626 | - } | |
| 627 | - | |
| 628 | - .company-clean-container-car-main-content-remark { | |
| 629 | - color: $u-tips-color; | |
| 630 | - font-size: 23rpx; | |
| 631 | - line-height: 30rpx; | |
| 632 | - padding: $custom-page-padding; | |
| 633 | - background-color: $u-info-light; | |
| 634 | - word-break: break-all; | |
| 635 | - } | |
| 636 | - | |
| 637 | - .company-clean-container-car-main-content-type { | |
| 638 | - margin-top: $custom-marin-bottom; | |
| 639 | - margin-bottom: $custom-marin-bottom; | |
| 640 | - display: flex; | |
| 641 | - justify-content: space-between; | |
| 642 | - border-radius: $custom-border-radio; | |
| 643 | - // background-color: $u-info-light; | |
| 644 | - box-sizing: border-box; | |
| 645 | - | |
| 646 | - .company-clean-container-car-main-content-type-price-area { | |
| 647 | - display: flex; | |
| 648 | - justify-content: flex-start; | |
| 649 | - align-items: center; | |
| 650 | - color: $u-info; | |
| 651 | - white-space: nowrap; | |
| 652 | - } | |
| 653 | - } | |
| 654 | - | |
| 655 | - .company-clean-container-car-main-content-number { | |
| 656 | - display: flex; | |
| 657 | - justify-content: space-between; | |
| 658 | - font-size: 28rpx; | |
| 659 | - color: $u-tips-color; | |
| 660 | - font-weight: small; | |
| 661 | - align-items: center; | |
| 662 | - | |
| 663 | - .company-clean-container-car-main-content-number-txt { | |
| 664 | - line-height: 80rpx; | |
| 665 | - } | |
| 666 | - | |
| 667 | - .company-clean-container-car-main-content-number-button {} | |
| 668 | - } | |
| 669 | - } | |
| 670 | - | |
| 671 | - | |
| 672 | - } | |
| 673 | - | |
| 674 | - .company-clean-container-car-main-content-prompt { | |
| 675 | - color: $u-tips-color; | |
| 676 | - font-size: 23rpx; | |
| 677 | - line-height: 30rpx; | |
| 678 | - padding: $custom-page-padding; | |
| 679 | - word-break: break-all; | |
| 680 | - text-align: center; | |
| 681 | - } | |
| 682 | - | |
| 683 | - .company-clean-container-site-image-info { | |
| 684 | - padding: $custom-page-padding; | |
| 685 | - background-color: #ffffff; | |
| 686 | - border-radius: $custom-border-radio; | |
| 687 | - color: $u-info; | |
| 688 | - font-size: 28rpx; | |
| 689 | - margin-bottom: $custom-marin-bottom; | |
| 690 | - | |
| 691 | - .company-clean-container-site-image-info-remark { | |
| 692 | - line-height: 80rpx; | |
| 693 | - | |
| 694 | - } | |
| 695 | - | |
| 696 | - .company-clean-container-site-image-info-img {} | |
| 697 | - | |
| 698 | - .company-clean-container-site-image-info-input-remark { | |
| 699 | - line-height: 80rpx; | |
| 700 | - } | |
| 701 | - | |
| 702 | - .company-clean-container-site-image-info-input-remark-box {} | |
| 703 | - } | |
| 704 | - | |
| 705 | - .company-clean-container-site-image-info-sure-button { | |
| 706 | - padding-bottom: $custom-bottom-height; | |
| 707 | - font-size: 28rpx; | |
| 708 | - | |
| 709 | - .company-clean-container-site-image-info-sure-button-radio { | |
| 710 | - padding: $custom-page-padding; | |
| 711 | - box-sizing: border-box; | |
| 712 | - display: flex; | |
| 713 | - // flex-flow: row wrap; | |
| 714 | - font-size: 25rpx; | |
| 715 | - color: $u-info; | |
| 716 | - } | |
| 717 | - } | |
| 718 | - } | |
| 719 | - | |
| 720 | - .company-clean-bottom { | |
| 721 | - position: absolute; | |
| 722 | - width: 100%; | |
| 723 | - // height: 100%; | |
| 724 | - bottom: 0; | |
| 725 | - left: 0; | |
| 726 | - // 阴影 | |
| 727 | - box-shadow: 0 0 10rpx 0 rgba(0, 0, 0, 0.1); | |
| 728 | - | |
| 729 | - .movableArea { | |
| 730 | - pointer-events: none; | |
| 731 | - position: fixed; | |
| 732 | - left: 0; | |
| 733 | - top: 0; | |
| 734 | - width: 100%; | |
| 735 | - height: calc(100% - $custom-bottom-height); | |
| 736 | - // z-index: 99; | |
| 737 | - | |
| 738 | - .movableView { | |
| 739 | - pointer-events: auto; | |
| 740 | - min-height: 60rpx; | |
| 741 | - min-width: 60rpx; | |
| 742 | - | |
| 743 | - .company-clean-call-box-container { | |
| 744 | - min-height: 60rpx; | |
| 745 | - min-width: 60rpx; | |
| 746 | - display: flex; | |
| 747 | - align-items: center; | |
| 748 | - justify-content: center; | |
| 749 | - background-color: #a9e08f; | |
| 750 | - border-radius: 100%; | |
| 751 | - } | |
| 752 | - } | |
| 753 | - } | |
| 754 | - | |
| 755 | - .company-clean-bottom-box { | |
| 756 | - height: $custom-bottom-height; | |
| 757 | - background-color: #ffffff; | |
| 758 | - padding: 50rpx; | |
| 759 | - box-sizing: border-box; | |
| 760 | - display: flex; | |
| 761 | - justify-content: space-between; | |
| 762 | - align-items: center; | |
| 763 | - | |
| 764 | - .company-clean-bottom-left { | |
| 765 | - display: flex; | |
| 766 | - | |
| 767 | - .company-clean-bottom-left-icon { | |
| 768 | - transform: rotateY(180deg); | |
| 769 | - } | |
| 770 | - | |
| 771 | - } | |
| 772 | - | |
| 773 | - .company-clean-bottom-right { | |
| 774 | - min-width: 200rpx; | |
| 775 | - } | |
| 776 | - } | |
| 777 | - | |
| 778 | - } | |
| 779 | - | |
| 780 | - | |
| 781 | - | |
| 782 | -} | |
| 783 | - | |
| 784 | -.hoverClickStyle { | |
| 785 | - @include handleClick; | |
| 786 | -} | |
| 787 | - | |
| 788 | -// 弹出框 | |
| 789 | -.company-clean-container-car-popup { | |
| 790 | - min-height: 450rpx; | |
| 791 | - padding: $custom-page-padding; | |
| 792 | - box-sizing: border-box; | |
| 793 | - | |
| 794 | - .company-clean-container-car-popup-content { | |
| 795 | - font-size: 28rpx; | |
| 796 | - | |
| 797 | - .company-clean-container-car-popup-content-box { | |
| 798 | - box-sizing: border-box; | |
| 799 | - padding: $custom-page-padding; | |
| 800 | - border: 2rpx solid #a9e08f; | |
| 801 | - border-radius: 10rpx; | |
| 802 | - | |
| 803 | - .company-clean-container-car-popup-content-box-item { | |
| 804 | - display: flex; | |
| 805 | - align-items: center; | |
| 806 | - justify-content: space-between; | |
| 807 | - margin: 20rpx 0; | |
| 808 | - box-sizing: border-box; | |
| 809 | - | |
| 810 | - .company-clean-container-car-popup-content-box-item-text {} | |
| 811 | - | |
| 812 | - .company-clean-container-car-popup-content-box-item-number {} | |
| 813 | - } | |
| 814 | - } | |
| 815 | - | |
| 816 | - .company-clean-container-car-popup-content-title { | |
| 817 | - color: $u-main-color; | |
| 818 | - box-sizing: border-box; | |
| 819 | - margin-bottom: 20rpx; | |
| 820 | - font-size: 30rpx; | |
| 821 | - font-weight: bold; | |
| 822 | - } | |
| 823 | - } | |
| 824 | - | |
| 825 | - .company-clean-container-car-popup-button-safe { | |
| 826 | - width: 100%; | |
| 827 | - height: $custom-bottom-height; | |
| 828 | - } | |
| 829 | -} | |
| 830 | -</style> |
garbage-removal/src/pages/home/clean/index.vue
| ... | ... | @@ -182,6 +182,7 @@ |
| 182 | 182 | </template> |
| 183 | 183 | |
| 184 | 184 | <script setup> |
| 185 | +import { queryAddress } from '@/apis/address.js'; | |
| 185 | 186 | import { queryCarList } from '@/apis/carinfo.js'; |
| 186 | 187 | import { uploadFilePromise } from '@/apis/common.js'; |
| 187 | 188 | import { saveOrder } from '@/apis/order.js'; |
| ... | ... | @@ -296,7 +297,21 @@ const handlePopupClick = (val) => { |
| 296 | 297 | onLoad((options) => { |
| 297 | 298 | companyObj.value = JSON.parse(options.companyObj); |
| 298 | 299 | tel.value = options.tel; |
| 299 | - userAddress.value = JSON.parse(options.userAddress); | |
| 300 | + if (options.userAddress == 'undefined') { | |
| 301 | + queryAddress('CURRENT').then(res => { | |
| 302 | + try { | |
| 303 | + if (res.data.data && res.data.data[0]) { | |
| 304 | + console.log(res); | |
| 305 | + userAddress.value = res.data.data[0] ? res.data.data[0] : {} | |
| 306 | + console.log(userAddress.value); | |
| 307 | + } | |
| 308 | + } catch (error) { | |
| 309 | + userAddress.value = {}; | |
| 310 | + } | |
| 311 | + }) | |
| 312 | + } else { | |
| 313 | + userAddress.value = JSON.parse(options.userAddress); | |
| 314 | + } | |
| 300 | 315 | queryCarList({ companyId: companyObj.value.id }).then(res => { |
| 301 | 316 | // 设置车辆类型 |
| 302 | 317 | candidates.value = [[...new Set(res.data.rows |
| ... | ... | @@ -453,6 +468,7 @@ const handleOderSure = () => { |
| 453 | 468 | garInCarStore: paramFrom.value.garInCarStore |
| 454 | 469 | } |
| 455 | 470 | if (!validateParams(params)) { |
| 471 | + console.log("未通过", params); | |
| 456 | 472 | return; |
| 457 | 473 | } |
| 458 | 474 | |
| ... | ... | @@ -470,7 +486,7 @@ const handleOderSure = () => { |
| 470 | 486 | } else { |
| 471 | 487 | uni.$u.route({ |
| 472 | 488 | type: "redirect", |
| 473 | - url: `pages/order/detail/index`, | |
| 489 | + url: `pages/order/other-home/detail/index`, | |
| 474 | 490 | params: { |
| 475 | 491 | orderId: res.data.data |
| 476 | 492 | } | ... | ... |
garbage-removal/src/pages/home/clean/scroll-text.vue deleted
100644 → 0
| 1 | -<template> | |
| 2 | - <view class="car-type-list-box" :style="activeStyle"> | |
| 3 | - <span v-for="(item, index) in candidates[0]" :key="index">{{ item }}</span> | |
| 4 | - | |
| 5 | - </view> | |
| 6 | -</template> | |
| 7 | - | |
| 8 | -<script setup> | |
| 9 | -import { getCurrentInstance, onMounted, ref } from "vue"; | |
| 10 | -const { proxy } = getCurrentInstance(); | |
| 11 | -const activeStyle = ref({ | |
| 12 | - height: '100rpx', | |
| 13 | - display: 'flex', | |
| 14 | - justifyContent: 'center', | |
| 15 | - alignItems: 'center', | |
| 16 | - flexDirection: 'column', | |
| 17 | - overflowY: 'auto', | |
| 18 | -}) | |
| 19 | -// uniapp 限制不能直接获取操作dom只能通过动态绑定style修改样式 | |
| 20 | -const props = defineProps({ | |
| 21 | - candidates: { | |
| 22 | - type: Array, | |
| 23 | - required: true, | |
| 24 | - default: () => [] | |
| 25 | - } | |
| 26 | -}) | |
| 27 | -const columns = ref(props.candidates[0]) | |
| 28 | -onMounted(() => { | |
| 29 | - // carTypeBox.value.style.height = minHeight.value + 'rpx'; | |
| 30 | - | |
| 31 | - | |
| 32 | -}) | |
| 33 | -</script> | |
| 34 | - | |
| 35 | -<style lang="scss" scoped></style> |
garbage-removal/src/pages/login/index.vue
garbage-removal/src/pages/order/handler-home/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <z-paging-swiper> | |
| 3 | + <template v-slot:top> | |
| 4 | + <u-tabs lineWidth="40" lineColor="#ffffff" lineHeight="6" | |
| 5 | + :activeStyle="{ 'color': '#ffffff', 'font-weight': 'bolder' }" :inactiveStyle="{ color: '#ffffff' }" | |
| 6 | + ref="uTabsElement" :list="list" :current="current" @change="tabsChange" :scrollable="false"></u-tabs> | |
| 7 | + </template> | |
| 8 | + <swiper class="swiper" :current="swiperCurrent" @translation="translation" @animationfinish="animationfinish"> | |
| 9 | + <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index"> | |
| 10 | + <swiper-list-item :tabIndex="index" :currentIndex="swiperCurrent"></swiper-list-item> | |
| 11 | + </swiper-item> | |
| 12 | + </swiper> | |
| 13 | + </z-paging-swiper> | |
| 14 | +</template> | |
| 15 | + | |
| 16 | +<script setup> | |
| 17 | +import { ref } from 'vue'; | |
| 18 | +import swiperListItem from './swiper-list-item/index.vue'; | |
| 19 | +const list = ref([{ name: '待清运' }, { name: '清运中' }, { name: '全部' }, { name: '已完成' }]) | |
| 20 | +const current = ref(0); | |
| 21 | +const swiperCurrent = ref(0); | |
| 22 | +const uTabsElement = ref(); | |
| 23 | +uni.setNavigationBarTitle({ | |
| 24 | + title: "处理场所" | |
| 25 | +}) | |
| 26 | +const tabsChange = (el) => { | |
| 27 | + swiperCurrent.value = Number(el.index) | |
| 28 | +} | |
| 29 | +const animationfinish = (e) => { | |
| 30 | + current.value = e.detail.current | |
| 31 | + swiperCurrent.value = e.detail.current | |
| 32 | +} | |
| 33 | +const translation = (e) => { | |
| 34 | + uTabsElement.value.setDx(e.detail.dx) | |
| 35 | +} | |
| 36 | +</script> | |
| 37 | +<style lang="scss" scoped> | |
| 38 | +::v-deep .u-tabs__wrapper__scroll-view { | |
| 39 | + background-color: #53c21d; | |
| 40 | +} | |
| 41 | + | |
| 42 | +.swiper { | |
| 43 | + height: 100%; | |
| 44 | + background: linear-gradient(to bottom, $u-success-dark, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color); | |
| 45 | +} | |
| 46 | +</style> | ... | ... |
garbage-removal/src/pages/order/handler-home/swiper-list-item/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <view class="content-container"> | |
| 3 | + <z-paging ref="paging" :fixed="false" v-model="dataList" :auto="false" @query="queryList"> | |
| 4 | + <empty-view slot:empty></empty-view> | |
| 5 | + <view class="page-box"> | |
| 6 | + <view class="order" v-for="(item, index) in dataList" :key="index"> | |
| 7 | + <view class="top"> | |
| 8 | + <view class="left"> | |
| 9 | + <u-icon name="home" :size="30" color="rgb(94,94,94)"></u-icon> | |
| 10 | + <view class="store">{{ item.garOrderCompanyName }}</view> | |
| 11 | + <u-icon name="arrow-right" color="rgb(203,203,203)" :size="26"></u-icon> | |
| 12 | + </view> | |
| 13 | + <view style="display: flex;align-items: center;"> | |
| 14 | + <text v-if="item.garOrderHandlerStatus != 3 && item.garOrderStatus === 3 && userType === '运输驾驶员'" | |
| 15 | + style="font-size: small;color: #f56c6c;">派单已经完成了。</text> | |
| 16 | + <view v-if="item.garOrderHandlerStatus === 0 && item.garCancelFlag === 0" class="right">待清运 </view> | |
| 17 | + <view v-if="item.garOrderHandlerStatus === 1 && item.garCancelFlag === 0" class="right">清运中 </view> | |
| 18 | + <view v-if="item.garOrderHandlerStatus === 3 && userType === '运输驾驶员'" class="right">已完成 </view> | |
| 19 | + </view> | |
| 20 | + </view> | |
| 21 | + <view class="item" @click="handleClick(item.garOrderId)"> | |
| 22 | + <view class="left"> | |
| 23 | + <image :src="item.goodsUrl" mode="aspectFill"></image> | |
| 24 | + </view> | |
| 25 | + <view class="content"> | |
| 26 | + <view class="title u-line-2">{{ item.garOrderAddress + item.garOrderAddressDetails }}</view> | |
| 27 | + <view class="type">垃圾类型: {{ item.garOrderTrashType }}</view> | |
| 28 | + <view class="delivery-time">预约时间 {{ item.garOrderAgreementTime }}</view> | |
| 29 | + </view> | |
| 30 | + </view> | |
| 31 | + </view> | |
| 32 | + </view> | |
| 33 | + </z-paging> | |
| 34 | + </view> | |
| 35 | +</template> | |
| 36 | + | |
| 37 | +<script setup> | |
| 38 | +import { queryOrderList } from "@/apis/order.js"; | |
| 39 | +import { useMainStore } from '@/stores/index.js'; | |
| 40 | +import { onShow } from "@dcloudio/uni-app"; | |
| 41 | +import { computed, ref, watch } from 'vue'; | |
| 42 | +const props = defineProps({ | |
| 43 | + tabIndex: { | |
| 44 | + type: Number | |
| 45 | + }, | |
| 46 | + currentIndex: { | |
| 47 | + type: Number | |
| 48 | + } | |
| 49 | +}) | |
| 50 | + | |
| 51 | +const store = useMainStore(); | |
| 52 | +const userType = computed(() => store.userType) | |
| 53 | +const dataList = ref([]); | |
| 54 | +const paging = ref(null); | |
| 55 | +const firstLoaded = ref(false) | |
| 56 | + | |
| 57 | +const handleClick = (orderId) => { | |
| 58 | + uni.$u.route({ | |
| 59 | + url: `pages/order/other-home/detail/index`, | |
| 60 | + params: { | |
| 61 | + orderId: orderId | |
| 62 | + } | |
| 63 | + }) | |
| 64 | +} | |
| 65 | + | |
| 66 | +// list集合 | |
| 67 | +const queryList = (pageNo, pageSize) => { | |
| 68 | + //这里的pageNo和pageSize会自动计算好,直接传给服务器即可 | |
| 69 | + //这里的请求只是演示,请替换成自己的项目的网络请求,并在网络请求回调中通过paging.value.complete(请求回来的数组)将请求结果传给z-paging | |
| 70 | + //request.queryList({ pageNo, pageSize }).then(res => { | |
| 71 | + //请勿在网络请求回调中给dataList赋值!!只需要调用complete就可以了 | |
| 72 | + queryOrderList({ type: props.tabIndex, pageNo, pageSize }).then((res) => { | |
| 73 | + paging.value.complete([ | |
| 74 | + { | |
| 75 | + garOrderId: 1, | |
| 76 | + garOrderAddress: '广东省广州市天河区', | |
| 77 | + garOrderAddressDetails: '天河北路168号', | |
| 78 | + garOrderTrashType: '可回收垃圾', | |
| 79 | + garOrderAgreementTime: '2022-08-01 10:00', | |
| 80 | + garOrderHandlerStatus: 0, | |
| 81 | + garCancelFlag: 0, | |
| 82 | + garOrderStatus: 0, | |
| 83 | + goodsUrl: 'https://cdn.uviewui.com/uview/swiper/1.jpg' | |
| 84 | + }, | |
| 85 | + { | |
| 86 | + garOrderId: 2, | |
| 87 | + garOrderAddress: '广东省广州市天河区', | |
| 88 | + garOrderAddressDetails: '天河北路168号', | |
| 89 | + garOrderTrashType: '可回收垃圾', | |
| 90 | + garOrderAgreementTime: '2022-08-01 10:00', | |
| 91 | + garOrderHandlerStatus: 0, | |
| 92 | + garCancelFlag: 0, | |
| 93 | + garOrderStatus: 0, | |
| 94 | + goodsUrl: 'https://cdn.uviewui.com/uview/swiper/2.jpg' | |
| 95 | + } | |
| 96 | + ]); | |
| 97 | + firstLoaded.value = true | |
| 98 | + }).catch(res => { | |
| 99 | + //如果请求失败写paging.value.complete(false),会自动展示错误页面 | |
| 100 | + //注意,每次都需要在catch中写这句话很麻烦,z-paging提供了方案可以全局统一处理 | |
| 101 | + //在底层的网络请求抛出异常时,写uni.$emit('z-paging-error-emit');即可 | |
| 102 | + paging.value.complete(false); | |
| 103 | + }) | |
| 104 | +} | |
| 105 | + | |
| 106 | +onShow(() => { | |
| 107 | + if (props.currentIndex == props.tabIndex) { | |
| 108 | + if (firstLoaded.value) { | |
| 109 | + setTimeout(() => { | |
| 110 | + paging.value.reload(); | |
| 111 | + }, 50); | |
| 112 | + } | |
| 113 | + } | |
| 114 | +}) | |
| 115 | + | |
| 116 | +// 重写load的方法,自动刷新 | |
| 117 | +watch(() => props.currentIndex, (val1, val2) => { | |
| 118 | + if (props.currentIndex == props.tabIndex) { | |
| 119 | + if (!firstLoaded.value) { | |
| 120 | + setTimeout(() => { | |
| 121 | + paging.value.reload(); | |
| 122 | + }, 50); | |
| 123 | + } | |
| 124 | + } | |
| 125 | +}, { immediate: true }) | |
| 126 | +</script> | |
| 127 | + | |
| 128 | +<style lang="scss" scoped> | |
| 129 | +.content-container { | |
| 130 | + height: 100%; | |
| 131 | + | |
| 132 | + .order { | |
| 133 | + width: 90%; | |
| 134 | + background-color: #ffffff; | |
| 135 | + margin: 20rpx auto; | |
| 136 | + border-radius: 20rpx; | |
| 137 | + box-sizing: border-box; | |
| 138 | + padding: 20rpx; | |
| 139 | + font-size: 28rpx; | |
| 140 | + | |
| 141 | + &:active { | |
| 142 | + background-color: #f3f4f6; | |
| 143 | + opacity: 0.8; | |
| 144 | + transition: opacity 0.3s; | |
| 145 | + -webkit-transition: opacity 0.3s; | |
| 146 | + -moz-transition: opacity 0.3s; | |
| 147 | + -ms-transition: opacity 0.3s; | |
| 148 | + } | |
| 149 | + | |
| 150 | + .top { | |
| 151 | + display: flex; | |
| 152 | + justify-content: space-between; | |
| 153 | + | |
| 154 | + .left { | |
| 155 | + display: flex; | |
| 156 | + align-items: center; | |
| 157 | + | |
| 158 | + .store { | |
| 159 | + margin: 0 10rpx; | |
| 160 | + font-size: 32rpx; | |
| 161 | + font-weight: bold; | |
| 162 | + } | |
| 163 | + } | |
| 164 | + } | |
| 165 | + | |
| 166 | + .item { | |
| 167 | + display: flex; | |
| 168 | + align-items: center; | |
| 169 | + margin: 20rpx 0 0; | |
| 170 | + | |
| 171 | + .left { | |
| 172 | + margin-right: 20rpx; | |
| 173 | + | |
| 174 | + image { | |
| 175 | + width: 100rpx; | |
| 176 | + height: 100rpx; | |
| 177 | + border-radius: 10rpx; | |
| 178 | + } | |
| 179 | + } | |
| 180 | + | |
| 181 | + .content { | |
| 182 | + | |
| 183 | + .title { | |
| 184 | + font-size: 28rpx; | |
| 185 | + line-height: 50rpx; | |
| 186 | + } | |
| 187 | + | |
| 188 | + .type { | |
| 189 | + margin: 10rpx 0; | |
| 190 | + font-size: 24rpx; | |
| 191 | + color: $u-tips-color; | |
| 192 | + } | |
| 193 | + | |
| 194 | + .delivery-time { | |
| 195 | + color: #e5d001; | |
| 196 | + font-size: 24rpx; | |
| 197 | + } | |
| 198 | + } | |
| 199 | + | |
| 200 | + | |
| 201 | + } | |
| 202 | + | |
| 203 | + .total { | |
| 204 | + margin-top: 20rpx; | |
| 205 | + text-align: right; | |
| 206 | + font-size: 24rpx; | |
| 207 | + | |
| 208 | + .total-price { | |
| 209 | + font-size: 32rpx; | |
| 210 | + } | |
| 211 | + } | |
| 212 | + | |
| 213 | + .bottom { | |
| 214 | + display: flex; | |
| 215 | + margin-top: 20rpx; | |
| 216 | + padding: 0 10rpx; | |
| 217 | + justify-content: space-between; | |
| 218 | + align-items: center; | |
| 219 | + | |
| 220 | + .btn { | |
| 221 | + line-height: 52rpx; | |
| 222 | + width: 160rpx; | |
| 223 | + border-radius: 26rpx; | |
| 224 | + border: 2rpx solid $u-border-color; | |
| 225 | + font-size: 26rpx; | |
| 226 | + text-align: center; | |
| 227 | + color: $u-info-dark; | |
| 228 | + } | |
| 229 | + | |
| 230 | + .btn--hover { | |
| 231 | + background-color: $u-success-light; | |
| 232 | + } | |
| 233 | + | |
| 234 | + .evaluate { | |
| 235 | + color: $u-warning-dark; | |
| 236 | + border-color: $u-warning-dark; | |
| 237 | + } | |
| 238 | + } | |
| 239 | + } | |
| 240 | + | |
| 241 | + .centre { | |
| 242 | + text-align: center; | |
| 243 | + margin: 200rpx auto; | |
| 244 | + font-size: 32rpx; | |
| 245 | + | |
| 246 | + image { | |
| 247 | + width: 164rpx; | |
| 248 | + height: 164rpx; | |
| 249 | + border-radius: 50%; | |
| 250 | + margin-bottom: 20rpx; | |
| 251 | + } | |
| 252 | + | |
| 253 | + .tips { | |
| 254 | + font-size: 24rpx; | |
| 255 | + color: #999999; | |
| 256 | + margin-top: 20rpx; | |
| 257 | + } | |
| 258 | + | |
| 259 | + .btn { | |
| 260 | + margin: 80rpx auto; | |
| 261 | + width: 200rpx; | |
| 262 | + border-radius: 32rpx; | |
| 263 | + line-height: 64rpx; | |
| 264 | + color: #ffffff; | |
| 265 | + font-size: 26rpx; | |
| 266 | + background: linear-gradient(270deg, rgba(249, 116, 90, 1) 0%, rgba(255, 158, 1, 1) 100%); | |
| 267 | + } | |
| 268 | + } | |
| 269 | +} | |
| 270 | +</style> | ... | ... |
garbage-removal/src/pages/order/index.vue
| 1 | 1 | <template> |
| 2 | - <z-paging-swiper> | |
| 3 | - <template v-slot:top> | |
| 4 | - <u-tabs lineWidth="40" lineColor="#ffffff" lineHeight="6" | |
| 5 | - :activeStyle="{ 'color': '#ffffff', 'font-weight': 'bolder' }" :inactiveStyle="{ color: '#ffffff' }" | |
| 6 | - ref="uTabsElement" :list="list" :current="current" @change="tabsChange" :scrollable="false"></u-tabs> | |
| 7 | - </template> | |
| 8 | - <swiper class="swiper" :current="swiperCurrent" @translation="translation" @animationfinish="animationfinish"> | |
| 9 | - <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index"> | |
| 10 | - <swiper-list-item :tabIndex="index" :currentIndex="swiperCurrent"></swiper-list-item> | |
| 11 | - </swiper-item> | |
| 12 | - </swiper> | |
| 13 | - </z-paging-swiper> | |
| 2 | + <view class="container" style="width: 100%;height: 100%;"> | |
| 3 | + <other-home v-if="userType != '处理场所负责人'"></other-home> | |
| 4 | + <handler-home v-else></handler-home> | |
| 5 | + </view> | |
| 14 | 6 | </template> |
| 15 | 7 | <script setup> |
| 16 | -import { ref } from 'vue'; | |
| 17 | -import swiperListItem from './swiper-list-item/index.vue'; | |
| 18 | -const list = ref([{ name: '待清运' }, { name: '清运中' }, { name: '全部' }, { name: '已完成' }]) | |
| 19 | -const current = ref(0); | |
| 20 | -const swiperCurrent = ref(0) | |
| 21 | -const uTabsElement = ref() | |
| 22 | -const tabsChange = (el) => { | |
| 23 | - swiperCurrent.value = Number(el.index) | |
| 24 | -} | |
| 25 | -const animationfinish = (e) => { | |
| 26 | - current.value = e.detail.current | |
| 27 | - swiperCurrent.value = e.detail.current | |
| 28 | -} | |
| 29 | -const translation = (e) => { | |
| 30 | - uTabsElement.value.setDx(e.detail.dx) | |
| 31 | -} | |
| 8 | +import { useMainStore } from "@/stores/index.js"; | |
| 9 | +import { computed } from 'vue'; | |
| 10 | +import handlerHome from "./handler-home/index.vue"; | |
| 11 | +import otherHome from "./other-home/index.vue"; | |
| 12 | +const mainStore = useMainStore() | |
| 13 | +const userType = computed(() => mainStore.userType) | |
| 14 | +console.log(userType.value); | |
| 32 | 15 | </script> |
| 33 | -<style lang="scss" scoped> | |
| 34 | -::v-deep .u-tabs__wrapper__scroll-view { | |
| 35 | - background-color: #53c21d; | |
| 36 | -} | |
| 37 | - | |
| 38 | -.swiper { | |
| 39 | - height: 100%; | |
| 40 | - background: linear-gradient(to bottom, $u-success-dark, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color); | |
| 41 | -} | |
| 42 | -</style> | |
| 16 | +<style lang="scss" scoped></style> | ... | ... |
garbage-removal/src/pages/order/detail/index.vue renamed to garbage-removal/src/pages/order/other-home/detail/index.vue
| ... | ... | @@ -292,7 +292,7 @@ const createQrCodeLocal = (orderId) => { |
| 292 | 292 | const protocol = window.location.protocol; |
| 293 | 293 | const localAddress = `${protocol}//${hostname}:${port}`; |
| 294 | 294 | // const localAddress = `http://localhost:5173`; |
| 295 | - qrCodeText.value = localAddress + "/pages/order/guest/index?orderId=" + orderId; | |
| 295 | + qrCodeText.value = localAddress + "/pages/order/other-home/guest/index?orderId=" + orderId; | |
| 296 | 296 | console.log(qrCodeRef.value); |
| 297 | 297 | } |
| 298 | 298 | // 获取二维码 |
| ... | ... | @@ -341,7 +341,7 @@ const handleClose = (e) => { |
| 341 | 341 | cancelShow.value = false |
| 342 | 342 | } |
| 343 | 343 | const handleEvaluateDetail = (orderId, userType) => { |
| 344 | - uni.$u.route(`pages/order/evaluate-info/index`, | |
| 344 | + uni.$u.route(`pages/order/other-home/evaluate-info/index`, | |
| 345 | 345 | { orderId: orderId, userType: userType }) |
| 346 | 346 | } |
| 347 | 347 | const selectClick = (index) => { |
| ... | ... | @@ -446,7 +446,7 @@ const handleSubmitSuccess = (orderId) => { |
| 446 | 446 | |
| 447 | 447 | } |
| 448 | 448 | const handleEvaluate = (orderId, userType) => { |
| 449 | - uni.$u.route(`pages/order/evaluate/index?orderId=${orderId}&userType=${userType}`) | |
| 449 | + uni.$u.route(`pages/order/other-home/evaluate/index?orderId=${orderId}&userType=${userType}`) | |
| 450 | 450 | } |
| 451 | 451 | |
| 452 | 452 | // 接收派单 |
| ... | ... | @@ -526,7 +526,7 @@ const cleanStatus = (status) => { |
| 526 | 526 | * @param {string} putType |
| 527 | 527 | */ |
| 528 | 528 | const handleUploadImage = (orderId, putType) => { |
| 529 | - uni.$u.route(`pages/order/upload/index?orderId=${orderId}`) | |
| 529 | + uni.$u.route(`pages/order/other-home/upload/index?orderId=${orderId}`) | |
| 530 | 530 | } |
| 531 | 531 | |
| 532 | 532 | ... | ... |
garbage-removal/src/pages/order/evaluate-info/index.vue renamed to garbage-removal/src/pages/order/other-home/evaluate-info/index.vue
garbage-removal/src/pages/order/evaluate/index.vue renamed to garbage-removal/src/pages/order/other-home/evaluate/index.vue
garbage-removal/src/pages/order/guest/index.vue renamed to garbage-removal/src/pages/order/other-home/guest/index.vue
garbage-removal/src/pages/order/other-home/index.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <z-paging-swiper> | |
| 3 | + <template v-slot:top> | |
| 4 | + <u-tabs lineWidth="40" lineColor="#ffffff" lineHeight="6" | |
| 5 | + :activeStyle="{ 'color': '#ffffff', 'font-weight': 'bolder' }" :inactiveStyle="{ color: '#ffffff' }" | |
| 6 | + ref="uTabsElement" :list="list" :current="current" @change="tabsChange" :scrollable="false"></u-tabs> | |
| 7 | + </template> | |
| 8 | + <swiper class="swiper" :current="swiperCurrent" @translation="translation" @animationfinish="animationfinish"> | |
| 9 | + <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index"> | |
| 10 | + <swiper-list-item :tabIndex="index" :currentIndex="swiperCurrent"></swiper-list-item> | |
| 11 | + </swiper-item> | |
| 12 | + </swiper> | |
| 13 | + </z-paging-swiper> | |
| 14 | +</template> | |
| 15 | +<script setup> | |
| 16 | +import { ref } from 'vue'; | |
| 17 | +import swiperListItem from './swiper-list-item/index.vue'; | |
| 18 | +const list = ref([{ name: '待清运' }, { name: '清运中' }, { name: '全部' }, { name: '已完成' }]) | |
| 19 | +const current = ref(0); | |
| 20 | +const swiperCurrent = ref(0) | |
| 21 | +const uTabsElement = ref() | |
| 22 | +const tabsChange = (el) => { | |
| 23 | + swiperCurrent.value = Number(el.index) | |
| 24 | +} | |
| 25 | +const animationfinish = (e) => { | |
| 26 | + current.value = e.detail.current | |
| 27 | + swiperCurrent.value = e.detail.current | |
| 28 | +} | |
| 29 | +const translation = (e) => { | |
| 30 | + uTabsElement.value.setDx(e.detail.dx) | |
| 31 | +} | |
| 32 | +</script> | |
| 33 | +<style lang="scss" scoped> | |
| 34 | +::v-deep .u-tabs__wrapper__scroll-view { | |
| 35 | + background-color: #53c21d; | |
| 36 | +} | |
| 37 | + | |
| 38 | +.swiper { | |
| 39 | + height: 100%; | |
| 40 | + background: linear-gradient(to bottom, $u-success-dark, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color, $u-bg-color); | |
| 41 | +} | |
| 42 | +</style> | ... | ... |
garbage-removal/src/pages/order/success/index.vue renamed to garbage-removal/src/pages/order/other-home/success/index.vue
garbage-removal/src/pages/order/swiper-list-item/index.vue renamed to garbage-removal/src/pages/order/other-home/swiper-list-item/index.vue
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | <view class="page-box"> |
| 6 | 6 | <view class="order" v-for="(item, index) in dataList" :key="index"> |
| 7 | 7 | <view class="top"> |
| 8 | - <view class="left"> | |
| 8 | + <view class="left" @click="goDetail(item)"> | |
| 9 | 9 | <u-icon name="home" :size="30" color="rgb(94,94,94)"></u-icon> |
| 10 | 10 | <view class="store">{{ item.garOrderCompanyName }}</view> |
| 11 | 11 | <u-icon name="arrow-right" color="rgb(203,203,203)" :size="26"></u-icon> |
| ... | ... | @@ -49,7 +49,8 @@ |
| 49 | 49 | <view class="more"> |
| 50 | 50 | <!-- <u-icon name="more-dot-fill" color="rgb(203,203,203)"></u-icon> --> |
| 51 | 51 | </view> |
| 52 | - <view hover-class="btn-hover" class="logistics btn" @click="handleUserEvaluate(item.garOrderId, userType)">去评价 | |
| 52 | + <view hover-class="btn-hover" class="logistics btn" @click="handleUserEvaluate(item.garOrderId, userType)"> | |
| 53 | + 去评价 | |
| 53 | 54 | </view> |
| 54 | 55 | </view> |
| 55 | 56 | <!-- 公司对用户评价 --> |
| ... | ... | @@ -58,7 +59,8 @@ |
| 58 | 59 | <view class="more"> |
| 59 | 60 | <!-- <u-icon name="more-dot-fill" color="rgb(203,203,203)"></u-icon> --> |
| 60 | 61 | </view> |
| 61 | - <view hover-class="btn-hover" class="logistics btn" @click="handleUserEvaluate(item.garOrderId, userType)">去评价 | |
| 62 | + <view hover-class="btn-hover" class="logistics btn" @click="handleUserEvaluate(item.garOrderId, userType)"> | |
| 63 | + 去评价 | |
| 62 | 64 | </view> |
| 63 | 65 | </view> |
| 64 | 66 | </view> |
| ... | ... | @@ -124,6 +126,16 @@ const handleClose = (e) => { |
| 124 | 126 | cancelShow.value = false |
| 125 | 127 | } |
| 126 | 128 | |
| 129 | +/** | |
| 130 | + * 跳转公司详情 | |
| 131 | + * @param {*} val | |
| 132 | + */ | |
| 133 | +const goDetail = (val) => { | |
| 134 | + uni.$u.route({ | |
| 135 | + url: `pages/home/clean/company-detail/index?companyId=${val.garOrderCompanyId}`, | |
| 136 | + }) | |
| 137 | +} | |
| 138 | + | |
| 127 | 139 | const selectClick = (index) => { |
| 128 | 140 | currentCancelName.value = index.name; |
| 129 | 141 | } |
| ... | ... | @@ -154,7 +166,7 @@ const submitFunction = (otherReason) => { |
| 154 | 166 | } |
| 155 | 167 | const handleClick = (orderId) => { |
| 156 | 168 | uni.$u.route({ |
| 157 | - url: `pages/order/detail/index`, | |
| 169 | + url: `pages/order/other-home/detail/index`, | |
| 158 | 170 | params: { |
| 159 | 171 | orderId: orderId |
| 160 | 172 | } |
| ... | ... | @@ -166,7 +178,7 @@ const handleClick = (orderId) => { |
| 166 | 178 | * @param {*} orderId |
| 167 | 179 | */ |
| 168 | 180 | const handleUserEvaluate = (orderId, userType) => { |
| 169 | - uni.$u.route(`pages/order/evaluate/index?orderId=${orderId}&userType=${userType}`) | |
| 181 | + uni.$u.route(`pages/order/other-home/evaluate/index?orderId=${orderId}&userType=${userType}`) | |
| 170 | 182 | } |
| 171 | 183 | // list集合 |
| 172 | 184 | const queryList = (pageNo, pageSize) => { |
| ... | ... | @@ -247,14 +259,15 @@ watch(() => props.currentIndex, (val1, val2) => { |
| 247 | 259 | |
| 248 | 260 | .item { |
| 249 | 261 | display: flex; |
| 262 | + align-items: center; | |
| 250 | 263 | margin: 20rpx 0 0; |
| 251 | 264 | |
| 252 | 265 | .left { |
| 253 | 266 | margin-right: 20rpx; |
| 254 | 267 | |
| 255 | 268 | image { |
| 256 | - width: 200rpx; | |
| 257 | - height: 200rpx; | |
| 269 | + width: 160rpx; | |
| 270 | + height: 160rpx; | |
| 258 | 271 | border-radius: 10rpx; |
| 259 | 272 | } |
| 260 | 273 | } | ... | ... |
garbage-removal/src/pages/order/upload/index.vue renamed to garbage-removal/src/pages/order/other-home/upload/index.vue
garbage-removal/src/pages/wode/choose/index.vue
| ... | ... | @@ -43,47 +43,50 @@ |
| 43 | 43 | |
| 44 | 44 | <script setup> |
| 45 | 45 | import { updateUserInfo } from "@/apis/user.js"; |
| 46 | +import driverImage from "@/static/image/driver.png"; | |
| 47 | +import handleImage from "@/static/image/handler.png"; | |
| 48 | +import managerImage from "@/static/image/manager.png"; | |
| 49 | +import userImage from "@/static/image/user.png"; | |
| 46 | 50 | import { useMainStore } from '@/stores/index.js'; |
| 47 | 51 | import { setRequestToken } from '@/utils/request/request.js'; |
| 48 | 52 | import { onLoad } from "@dcloudio/uni-app"; |
| 49 | 53 | import { ref } from 'vue'; |
| 50 | 54 | const userType = ref('') |
| 51 | -const imageBase = "data:image/jpeg;base64,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"; | |
| 52 | 55 | const store = useMainStore(); |
| 53 | 56 | const typeList = ref([{ |
| 54 | - label: "居民用户", | |
| 57 | + label: "用户", | |
| 55 | 58 | info: '下单清运', |
| 56 | - image: imageBase, | |
| 59 | + image: userImage, | |
| 57 | 60 | order: 999, |
| 58 | 61 | classStyle: 'choose-type-item-top-back-sky', |
| 59 | 62 | isNow: false, |
| 60 | 63 | isExit: true, |
| 61 | 64 | }, { |
| 62 | - label: "处理场所", | |
| 63 | - info: '负责现场指导', | |
| 64 | - company: '长沙xxxx', | |
| 65 | - image: imageBase, | |
| 65 | + label: "运输企业负责人", | |
| 66 | + info: '负责订单处理', | |
| 67 | + company: '', | |
| 68 | + image: managerImage, | |
| 66 | 69 | isExit: false, |
| 67 | - classStyle: 'choose-type-item-top-back-pink', | |
| 68 | - order: 3, | |
| 70 | + classStyle: 'choose-type-item-top-back-sun', | |
| 71 | + order: 1, | |
| 69 | 72 | isNow: false, |
| 70 | 73 | }, { |
| 71 | - label: "运输驾驶员", | |
| 74 | + label: "清运车辆驾驶员", | |
| 72 | 75 | info: '负责垃圾清运', |
| 73 | - company: '长沙xxxx', | |
| 74 | - image: imageBase, | |
| 76 | + company: '', | |
| 77 | + image: driverImage, | |
| 75 | 78 | isExit: false, |
| 76 | 79 | classStyle: 'choose-type-item-top-back-blue', |
| 77 | 80 | order: 2, |
| 78 | 81 | isNow: false, |
| 79 | 82 | }, { |
| 80 | - label: "企业负责人", | |
| 81 | - info: '负责订单处理', | |
| 82 | - company: '长沙xxxx', | |
| 83 | - image: imageBase, | |
| 83 | + label: "处理场所负责人", | |
| 84 | + info: '负责现场指导', | |
| 85 | + company: '', | |
| 86 | + image: handleImage, | |
| 84 | 87 | isExit: false, |
| 85 | - classStyle: 'choose-type-item-top-back-sun', | |
| 86 | - order: 1, | |
| 88 | + classStyle: 'choose-type-item-top-back-pink', | |
| 89 | + order: 3, | |
| 87 | 90 | isNow: false, |
| 88 | 91 | }]) |
| 89 | 92 | const unitInfo = ref([]) |
| ... | ... | @@ -130,6 +133,7 @@ onLoad((options) => { |
| 130 | 133 | } |
| 131 | 134 | let order = 999; |
| 132 | 135 | let index = 0; |
| 136 | + let company = ""; | |
| 133 | 137 | // typeList优先级最高的设置isNow 为 true |
| 134 | 138 | if (loginInfo.length > 1) { |
| 135 | 139 | typeList.value.forEach((item, i) => { |
| ... | ... | @@ -138,13 +142,17 @@ onLoad((options) => { |
| 138 | 142 | if (item.order < order) { |
| 139 | 143 | order = item.order; |
| 140 | 144 | index = i; |
| 145 | + company = unitInfo.value[item.label].transportCompanyName; | |
| 141 | 146 | } |
| 142 | 147 | } |
| 143 | 148 | }) |
| 144 | 149 | typeList.value[index].isNow = true |
| 150 | + typeList.value[index].company = company | |
| 151 | + userType.value = typeList.value[index].label | |
| 152 | + } else { | |
| 153 | + typeList.value[index].isNow = true | |
| 145 | 154 | userType.value = typeList.value[index].label |
| 146 | 155 | } |
| 147 | - console.log(typeList.value, "typeList.value"); | |
| 148 | 156 | }) |
| 149 | 157 | </script> |
| 150 | 158 | |
| ... | ... | @@ -197,20 +205,21 @@ onLoad((options) => { |
| 197 | 205 | box-sizing: border-box; |
| 198 | 206 | padding: 30rpx; |
| 199 | 207 | border-radius: 15rpx 15rpx 5rpx 5rpx; |
| 200 | - box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.1); | |
| 208 | + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); | |
| 201 | 209 | |
| 202 | 210 | .choose-type-item-image { |
| 203 | - width: 140rpx; | |
| 204 | - height: 170rpx; | |
| 211 | + width: 160rpx; | |
| 212 | + height: 180rpx; | |
| 205 | 213 | border-radius: 50%; |
| 206 | 214 | display: flex; |
| 207 | 215 | align-items: center; |
| 208 | 216 | justify-content: flex-start; |
| 209 | - margin-right: 20rpx; | |
| 217 | + margin-right: 50rpx; | |
| 210 | 218 | |
| 211 | 219 | image { |
| 212 | 220 | width: 100%; |
| 213 | 221 | height: 100%; |
| 222 | + background-size: 100% 100%; | |
| 214 | 223 | } |
| 215 | 224 | } |
| 216 | 225 | |
| ... | ... | @@ -274,28 +283,28 @@ onLoad((options) => { |
| 274 | 283 | } |
| 275 | 284 | |
| 276 | 285 | .itemActive { |
| 277 | - animation: overScroll 0.5s forwards ease-in-out; | |
| 286 | + animation: overScroll 0.8s forwards ease-in-out; | |
| 278 | 287 | } |
| 279 | 288 | |
| 280 | 289 | @keyframes overScroll { |
| 281 | 290 | 0% { |
| 282 | - transform: translateY(8rpx); | |
| 291 | + transform: translateY(6rpx); | |
| 283 | 292 | } |
| 284 | 293 | |
| 285 | 294 | 20% { |
| 286 | - transform: translateY(-4rpx); | |
| 295 | + transform: translateY(-2rpx); | |
| 287 | 296 | } |
| 288 | 297 | |
| 289 | 298 | 40% { |
| 290 | - transform: translateY(8rpx); | |
| 299 | + transform: translateY(6rpx); | |
| 291 | 300 | } |
| 292 | 301 | |
| 293 | 302 | 60% { |
| 294 | - transform: translateY(-4rpx); | |
| 303 | + transform: translateY(-2rpx); | |
| 295 | 304 | } |
| 296 | 305 | |
| 297 | 306 | 80% { |
| 298 | - transform: translateY(8rpx); | |
| 307 | + transform: translateY(6rpx); | |
| 299 | 308 | } |
| 300 | 309 | |
| 301 | 310 | 100% { | ... | ... |
garbage-removal/src/static/image/driver.png
0 → 100644
544 KB
garbage-removal/src/static/image/handler.png
0 → 100644
44.2 KB
garbage-removal/src/static/image/manager.png
0 → 100644
14.6 KB
garbage-removal/src/static/image/user.png
0 → 100644
15.8 KB
garbage-removal/src/utils/request/request.js
| ... | ... | @@ -72,7 +72,7 @@ instance.interceptors.response.use((response) => { |
| 72 | 72 | reSetLoginStatus(); |
| 73 | 73 | } else { |
| 74 | 74 | uni.showToast({ |
| 75 | - title: response.data.message, | |
| 75 | + title: response.data.msg, | |
| 76 | 76 | icon: "none", |
| 77 | 77 | }); |
| 78 | 78 | } |
| ... | ... | @@ -148,7 +148,7 @@ const handleGet = (config) => { |
| 148 | 148 | } |
| 149 | 149 | config.url += strUrl; |
| 150 | 150 | config.params = ""; |
| 151 | - if (config.url.startsWith("/order/webDetail/")) { | |
| 151 | + if (config.url.startsWith("/order/other-home/webDetail/")) { | |
| 152 | 152 | config.headers["Authorization"] = ""; |
| 153 | 153 | } |
| 154 | 154 | } | ... | ... |