Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master
| | |
| | | }, |
| | | orderDate: { |
| | | label: '下单日期', |
| | | search: true, |
| | | minWidth: 180, |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | }, |
| | | orderDateArray: { |
| | | label: '下单日期', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | feeName: { |
| | | label: '费用名称', |
| | |
| | | |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | params.feeType = 0; |
| | | return params |
| | | let newParams = { ...params }; |
| | | newParams.feeType = 0; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.orderDateArray, 'orderDate') || []; |
| | | delete newParams.orderDateArray; |
| | | |
| | | |
| | | return newParams |
| | | } |
| | | |
| | | }) |
| | |
| | | @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange" |
| | | @size-change="sizeChange" @on-load="onLoad"> |
| | | <template #menu-left> |
| | | <el-button type="success" icon="Edit" :disabled="pageF.single" v-hasPermi="['cwgl:keyCollectionInfo:edit']" |
| | | <!-- <el-button type="success" icon="Edit" :disabled="pageF.single" v-hasPermi="['cwgl:keyCollectionInfo:edit']" |
| | | @click="handleUpdate">修改 |
| | | </el-button> |
| | | <el-button type="danger" icon="Delete" :disabled="pageF.multiple" @click="handleDelete" |
| | | v-hasPermi="['cwgl:keyCollectionInfo:remove']">删除 |
| | | </el-button> |
| | | </el-button> --> |
| | | <el-button type="warning" plain icon="Download" @click="handleExport" |
| | | v-hasPermi="['cwgl:keyCollectionInfo:export']">导出 |
| | | </el-button> |
| | |
| | | // }, |
| | | customerName: { |
| | | label: '客户名称', |
| | | minWidth: 200, |
| | | search: true, |
| | | minWidth: 220, |
| | | search: true, |
| | | showOverflowTooltip: true, |
| | | }, |
| | | carrier: { |
| | | label: '承运商', |
| | |
| | | dispatchNo: { |
| | | label: '调度单号', |
| | | minWidth: 200, |
| | | search: true, |
| | | search: true, |
| | | }, |
| | | driverName: { |
| | | label: '司机名称', |
| | |
| | | orderTime: { |
| | | label: '订单下单时间', |
| | | minWidth: 180, |
| | | search: true, |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | minWidth: 200, |
| | | }, |
| | | orderTimeArray: { |
| | | label: '订单下单时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | orderCreatedTime: { |
| | | label: '订单创建时间', |
| | | minWidth: 180, |
| | | search: true, |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | minWidth: 200, |
| | | }, |
| | | orderCreatedTimeArray: { |
| | | label: '订单创建时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | dispatchCreatedTime: { |
| | | label: '调度单创建时间', |
| | | minWidth: 180, |
| | | search: true, |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | minWidth: 200, |
| | | }, |
| | | dispatchCreatedTimeArray: { |
| | | label: '调度单创建时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | keyCollectionTime: { |
| | | label: '钥匙领取时间', |
| | |
| | | }, |
| | | handleSelectionChangeFunc: (selection: any) => { |
| | | selectionList.value = selection; |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | let newParams = { ...params }; |
| | | |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.orderTimeArray, 'orderTime') || []; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.orderCreatedTimeArray, 'orderCreatedTime') || [] ; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.dispatchCreatedTimeArray, 'dispatchCreatedTime') || []; |
| | | |
| | | delete newParams.orderTimeArray; |
| | | delete newParams.orderCreatedTimeArray; |
| | | delete newParams.dispatchCreatedTimeArray; |
| | | |
| | | return newParams; |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | |
| | | vehicleType: { |
| | | label: '车型', search: true, |
| | | }, |
| | | // createdTime: { |
| | | // label: '下单时间', |
| | | // display: false, |
| | | // search: true, |
| | | // type: 'date', |
| | | // format: 'YYYY-MM-DD', |
| | | // searchSpan: 5, minWidth: 120, |
| | | // valueFormat: 'YYYY-MM-DD', |
| | | // }, |
| | | createdTimeArray: { |
| | | label: '下单时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true |
| | | }, |
| | | createdTime: { |
| | | label: '下单时间', |
| | | display: false, |
| | | search: true, |
| | | type: 'date', |
| | | format: 'YYYY-MM-DD', |
| | | searchSpan: 5, minWidth: 120, |
| | | valueFormat: 'YYYY-MM-DD', |
| | | minWidth: 180, |
| | | }, |
| | | operationMode: { |
| | | label: '运营模式', |
| | |
| | | }, |
| | | arrivalLocation: { |
| | | label: '目的地', |
| | | minWidth: 220, |
| | | minWidth: 220, |
| | | showOverflowTooltip: true, |
| | | |
| | | }, |
| | |
| | | minWidth: 120, |
| | | |
| | | }, |
| | | isCreate: { |
| | | isCreate: { |
| | | label: '是否已入账', dataType: 'string', |
| | | type: 'select', |
| | | fixed: 'right', |
| | |
| | | type: 'select', |
| | | dataType: 'string', |
| | | minWidth: 120, |
| | | |
| | | |
| | | dicUrl: '/system/dict/data/type/sys_matching_status', |
| | | }, |
| | | isCostMatched: { |
| | |
| | | generateDisabled.value = false; |
| | | } |
| | | selectionList.value = selection; |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | // 创建新参数对象 |
| | | let newParams = { ...params }; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.createdTimeArray, 'createdTime') || []; |
| | | delete newParams.createdTimeArray; |
| | | |
| | | return newParams; |
| | | } |
| | | |
| | | }) |
| | | const dialog = reactive({ |
| | | visible: false, |
| | |
| | | dispatchNo.value = row.dispatchNo; |
| | | dialog.title = '费用明细'; |
| | | if (activeName.value == 'first') { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | dialog.detail = true; |
| | | tableDataList.value = res.rows || []; |
| | |
| | | }) |
| | | } else if (activeName.value == 'second') { |
| | | // 这里可以添加查询收入相关的逻辑 |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | dialog.detail = true; |
| | | tableDataList.value = res.rows || []; |
| | |
| | | } |
| | | } |
| | | const getListVable = (dispatchNo, feeType) => { |
| | | listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | tableDataList.value = res.rows || []; |
| | | } |
| | |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | }, |
| | | reqTimeArray: { |
| | | label: '请求开门时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | // reqTime: { |
| | | // label: '请求时间', |
| | | // minWidth: 150, |
| | |
| | | handleSelectionChangeFunc: (selection: any) => { |
| | | selectionList.value = selection; |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | params.type = 0; |
| | | return params |
| | | |
| | | } |
| | | getBeginListFunc: (params = {}) => { |
| | | let newParams = { ...params }; |
| | | newParams.type = 0; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.reqTimeArray, 'reqTime') || []; |
| | | delete newParams.reqTimeArray; |
| | | return newParams |
| | | } |
| | | }) |
| | | |
| | | |
| | |
| | | reqTime: { |
| | | label: '存入时间', |
| | | minWidth: 150, |
| | | search: true, |
| | | type: 'datetime', // 改为 datetime 类型 |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | }, |
| | | reqTimeArray: { |
| | | label: '存入时间', |
| | | search: true, |
| | | searchRange: true, |
| | | type: 'daterange', |
| | | startPlaceholder: '开始日期', |
| | | endPlaceholder: '结束日期', |
| | | valueFormat: 'YYYY-MM-DD', |
| | | hide: true, |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | }, |
| | | // reqTime: { |
| | | // label: '请求时间', |
| | |
| | | selectionList.value = selection; |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | params.type = 1; |
| | | return params |
| | | |
| | | let newParams = { ...params }; |
| | | newParams.type = 1; |
| | | newParams = proxy.addDateRangeNew(newParams, newParams?.reqTimeArray, 'reqTime') || []; |
| | | delete newParams.reqTimeArray; |
| | | return newParams |
| | | } |
| | | }) |
| | | |
| | |
| | | v-hasPermi="['cwgl:smartLockerApplication:export']">导出 |
| | | </el-button> --> |
| | | </template> |
| | | |
| | | |
| | | <template #itemName-form="{ row, size, }"> |
| | | <div style="cursor: pointer;"> |
| | | <el-input v-if="itemTypeIShow" v-model="form.itemName" placeholder="请输入 物品名称"> |
| | | </el-input> |
| | | <el-input v-if="!itemTypeIShow" v-model="form.itemName" @click="debouncedItemNameChange" |
| | | placeholder="请输入 车牌号"> |
| | | </el-input> |
| | | </div> |
| | | </template> |
| | | |
| | | <template #menu="{ size, row, index }"> |
| | | <el-link class="link-btn" type="primary" :underline="false" plain :size="size" |
| | | @click="handleEditBtn(row, index)" v-if="row.status == 0" |
| | | v-hasPermi="['cwgl:smartLockerApplication:cancel']"> 编辑 |
| | | <el-link class="link-btn" type="primary" :underline="false" plain :size="size" |
| | | @click="handleEditBtn(row, index)" v-if="row.status == 0" v-hasPermi="['cwgl:smartLockerApplication:cancel']"> |
| | | 编辑 |
| | | </el-link> |
| | | <el-link class="link-btn" v-if="row.status == 0" type="primary" :underline="false" plain @click="handleInvalid(row)" |
| | | v-hasPermi="['cwgl:smartLockerApplication:invalid']"> 作废 |
| | | <el-link class="link-btn" v-if="row.status == 0" type="primary" :underline="false" plain |
| | | @click="handleInvalid(row)" v-hasPermi="['cwgl:smartLockerApplication:invalid']"> 作废 |
| | | </el-link> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | </template> |
| | | |
| | | <script setup name="smartLockerApplication" lang="ts"> |
| | | import { SmartLockerApplicationI, addSmartLockerApplication, delSmartLockerApplication, exportSmartLockerApplication, getSmartLockerApplication, listSmartLockerApplication, updateSmartLockerApplication, smartLockerApplicationQuery, |
| | | import { |
| | | SmartLockerApplicationI, addSmartLockerApplication, delSmartLockerApplication, exportSmartLockerApplication, getSmartLockerApplication, listSmartLockerApplication, updateSmartLockerApplication, smartLockerApplicationQuery, |
| | | smartLockerApplicationInvalid |
| | | } from "@/api/cwgl/smartLockerApplication"; |
| | | } from "@/api/cwgl/smartLockerApplication"; |
| | | import useCurrentInstance from "@/utils/useCurrentInstance"; |
| | | import { computed, reactive, ref, toRefs } from "vue"; |
| | | import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface"; |
| | |
| | | currentPage: 1, |
| | | }, |
| | | selectionList: [], |
| | | itemTypeIShow: true, // 控制 itemType 显示隐藏 |
| | | itemTypeIcon: '物品名称不能为空', |
| | | }) |
| | | const { queryParams, form, page, selectionList } = toRefs(data); |
| | | const { queryParams, form, page, selectionList, itemTypeIShow, itemTypeIcon } = toRefs(data); |
| | | const option = ref({ |
| | | pageKey: 'SmartLockerApplication', |
| | | rowKey: 'id', |
| | |
| | | // editDisplay: false, // 修改时不显示 |
| | | dicUrl: '/system/dict/data/type/sys_item_type', |
| | | change: (val: any) => { |
| | | if (val.value === '0') { |
| | | itemTypeIShow.value = false; |
| | | itemTypeIcon.value = '车牌号不能为空' |
| | | } else { |
| | | itemTypeIShow.value = true; |
| | | itemTypeIcon.value = '物品名称不能为空' |
| | | |
| | | } |
| | | option.value.column.itemName.rules = [ |
| | | { |
| | | required: true, |
| | | message: itemTypeIcon.value, |
| | | trigger: "blur" |
| | | } |
| | | ]; |
| | | |
| | | // 清除之前的校验状态 |
| | | if (crudRef.value) { |
| | | crudRef.value.clearValidate('itemName'); |
| | | } |
| | | |
| | | if (val.value === '1') { |
| | | if (form.value.itemName !== '' && form.value.itemName !== undefined) { |
| | | |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "物品名称不能为空", trigger: "blur" |
| | | message: itemTypeIcon.value, trigger: "blur" |
| | | } |
| | | ], |
| | | change: (val: any) => { |
| | |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | addDisplay: true, // 新增时不显示 |
| | | minWidth: 200, |
| | | rules: [ |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "领取截止时间不能为空", trigger: "change" |
| | |
| | | handleBeforeOpenFunc: (done: Function, type: string) => { |
| | | if (done == 'add') { |
| | | option.value.column.lockerNo.value = '接驳站智能钥匙柜' |
| | | option.value.column.deadlineTime.value =formatDateTime(new Date(Date.now() + 24 * 60 * 60 * 1000)); |
| | | |
| | | |
| | | option.value.column.deadlineTime.value = formatDateTime(new Date(Date.now() + 24 * 60 * 60 * 1000)); |
| | | |
| | | |
| | | } |
| | | }, |
| | | handleSelectionChangeFunc: (selection: any) => { |
| | |
| | | } |
| | | }) |
| | | |
| | | const formatDateTime = (date) => { |
| | | const formatDateTime = (date) => { |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, '0'); |
| | | const day = String(date.getDate()).padStart(2, '0'); |
| | |
| | | if (form.value.itemType === '0' && val) { |
| | | // 在这里添加你的请求接口逻辑 |
| | | smartLockerApplicationQuery({ licensePlateNumber: val }).then(response => { |
| | | if(response.code == 200){ |
| | | form.value.lockerPort = response.data || ''; |
| | | if (response.code == 200) { |
| | | form.value.lockerPort = response.data || ''; |
| | | } |
| | | // 处理响应 |
| | | }) |
| | |
| | | }) |
| | | |
| | | } |
| | | const handleEditBtn = (row, index) => { |
| | | const handleEditBtn = (row:any, index:any) => { |
| | | crudRef.value.rowEdit(row, index) |
| | | // option.value.editBtn = true; |
| | | } |